diff options
Diffstat (limited to 'src/task.h')
-rw-r--r-- | src/task.h | 138 |
1 files changed, 7 insertions, 131 deletions
@@ -3,9 +3,9 @@ /*************************************************************************** * task.h * - * Fri Feb 24 08:16:29 CET 2012 - * Copyright 2012 Bent Bisballe Nyeng - * deva@aasimon.org + * Tue Mar 27 11:41:34 CEST 2012 + * Copyright 2012 Jonas Suhr Christensen + * jsc@umbraculum.org ****************************************************************************/ /* @@ -28,140 +28,16 @@ #ifndef __MUNIA_TASK_H__ #define __MUNIA_TASK_H__ -#include <list> #include <string> -#include <stdio.h> -#include <assert.h> -//#include <queue> -/* -Task: - id - subtasks -// tags - title - description -// primary_assignment -// secondary_assignment - - -Protocol: - -Server -> client: - update [id] [title] [description]; - move [id] [x] [y]; - add [id] [title] [description] [x] [y]; - del [id] +typedef unsigned int taskid_t; +typedef std::list<taskid_t> TaskIdList; -Client -> server: - update [id] [title] [description]; - move [id] [x] [y]; - add [title] [description] [x] [y]; - del [id] - -title and description are " encapsulated utf-8 string with " escaped with a backslash. -x and y are integers as strings -id are an integer as a string - */ - -/* typedef struct { - int x, y; - int id; + taskid_t id; +// int parentid; std::string title; std::string desc; } task_t; -*/ -/* -protocol: - add_task title description parent_id - del_task id - update_task id title description - move_task id parent - copy_task id parent -*/ - -typedef struct { - int id; - int parent_id; - std::string title; - std::string desc; -} task_t; - - -//typedef std::list<task_t> TaskList; - -class CompareByParentid { -public: - bool operator()(const task_t &a, const task_t &b) const { - return a.parent_id < b.parent_id; - } -}; - - - - -class TaskList : public std::list<task_t>{ -public: - TaskList() {} - ~TaskList(){} - - void insert(task_t t) { - if(t.id == t.parent_id) return; - printf("inserting task %d with parent %d\n", t.id, t.parent_id); - - if(t.parent_id == -1) { - std::list<task_t>::push_front(t); - return; - } - - std::list<task_t>::iterator it; - for(it = begin(); it != end(); ++it) { - printf("\tcomparing %d and %d\n", t.parent_id, it->id); - if(t.parent_id == it->id) { - break; - } - } - assert(it != end()); - - std::list<task_t>::insert(++it, t); - -// std::list<task_t>::push_back(t); -// std::list<task_t>::sort(CompareByParentid()); - - } - - void move(task_t t) { - std::list<task_t>::iterator it; - for(it = begin(); it != end(); it++) { - if(t.id == it->id) { - break; - } - } - assert(it != end()); - // if(it != end()) { - std::list<task_t>::erase(it); - // } - insert(t); - } - - void push_back(task_t t) { - insert(t); - } - -private: - std::list<task_t> list; -}; - - -extern TaskList tasklist; - -//typedef std::priority_queue<task_t, std::vector<task_t>, CompareByParentid> TaskList; - -task_t create_task(std::string title, std::string desc, - /*int x, int y*/ int parent_id); - -TaskList load_tasklist_from_file(std::string file); -bool save_tasklist_to_file(TaskList t, std::string file); #endif/*__MUNIA_TASK_H__*/ |