diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-05-04 08:50:20 +0200 | 
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-05-04 08:50:20 +0200 | 
| commit | 7be1c348e6323889479639df6b7d5b4d6a972b65 (patch) | |
| tree | d38d1f5191d9b5d40d0f21849549afeffda4743b | |
| parent | eda2fb1e00b925730e9b999ad593c80d2f724689 (diff) | |
Make TaskManager and ConnectionHandler objects global.
| -rw-r--r-- | src/connectionhandler.cc | 24 | ||||
| -rw-r--r-- | src/connectionhandler.h | 3 | ||||
| -rw-r--r-- | src/messagehandler.cc | 15 | ||||
| -rw-r--r-- | src/munia_proto.cc | 5 | ||||
| -rw-r--r-- | src/taskmanager.cc | 3 | ||||
| -rw-r--r-- | src/taskmanager.h | 2 | 
6 files changed, 28 insertions, 24 deletions
| diff --git a/src/connectionhandler.cc b/src/connectionhandler.cc index 56c465f..b2b6973 100644 --- a/src/connectionhandler.cc +++ b/src/connectionhandler.cc @@ -29,6 +29,9 @@  #include <stdio.h> +// Defines global task_manager object +#include "taskmanager.h" +  // Global ConnectionHandler.  ConnectionHandler connection_handler; @@ -65,16 +68,13 @@ void ConnectionHandler::unobserve(clientid_t clientid, taskid_t taskid)    connlist[clientid].erase(taskid);  } -std::list<std::pair<clientid_t, taskid_t> >  -ConnectionHandler::observerlist(TaskIdList tasks) +ObserverList ConnectionHandler::observerlist(TaskIdList tasks)  {    printf("Observerlist request\n"); -  std::list<std::pair<clientid_t, taskid_t> > clients; +  ObserverList clients;    for(TaskIdList::iterator i = tasks.begin(); i != tasks.end(); i++) {      taskid_t tid = *i; -    //    std::set<clientid_t> clientList; -    //    std::map<clientid_t, taskid_t>      printf("Locating observers of node %d\n", tid);      for(ConnectionList::iterator ci = connlist.begin(); @@ -118,7 +118,7 @@ h.observe((clientid_t)3, (taskid_t)3);  {    TaskIdList tasks;    tasks.push_back((taskid_t)1); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_TRUE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_TRUE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); @@ -128,7 +128,7 @@ h.observe((clientid_t)3, (taskid_t)3);  {    TaskIdList tasks;    tasks.push_back((taskid_t)3); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_FALSE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_FALSE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); @@ -138,7 +138,7 @@ h.observe((clientid_t)3, (taskid_t)3);  {    TaskIdList tasks;    tasks.push_back((taskid_t)4); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_FALSE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_FALSE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); @@ -150,7 +150,7 @@ h.observe((clientid_t)3, (taskid_t)3);    tasks.push_back((taskid_t)1);    tasks.push_back((taskid_t)2);    tasks.push_back((taskid_t)3); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_TRUE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_TRUE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); @@ -163,7 +163,7 @@ h.close((clientid_t)1);    tasks.push_back((taskid_t)1);    tasks.push_back((taskid_t)2);    tasks.push_back((taskid_t)3); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_FALSE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_TRUE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); @@ -176,7 +176,7 @@ h.close((clientid_t)2);    tasks.push_back((taskid_t)1);    tasks.push_back((taskid_t)2);    tasks.push_back((taskid_t)3); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_FALSE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_FALSE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); @@ -189,7 +189,7 @@ h.close((clientid_t)3);    tasks.push_back((taskid_t)1);    tasks.push_back((taskid_t)2);    tasks.push_back((taskid_t)3); -  std::set<clientid_t> clst = h.observerlist(tasks); +  ObserverList clst = h.observerlist(tasks);    TEST_FALSE(clst.find((clientid_t)1) != clst.end(), "Got client 1?");    TEST_FALSE(clst.find((clientid_t)2) != clst.end(), "Got client 2?"); diff --git a/src/connectionhandler.h b/src/connectionhandler.h index b09e944..7779b1f 100644 --- a/src/connectionhandler.h +++ b/src/connectionhandler.h @@ -39,6 +39,7 @@  typedef struct libwebsocket* clientid_t;  typedef std::map<clientid_t, std::set<taskid_t> > ConnectionList; +typedef std::list<std::pair<clientid_t, taskid_t> > ObserverList;  class ConnectionHandler {  public: @@ -50,7 +51,7 @@ public:    void unobserve(clientid_t clientid, taskid_t taskid); -  std::list<std::pair<clientid_t, taskid_t> > observerlist(TaskIdList tasklist); +  ObserverList observerlist(TaskIdList tasklist);  private:    ConnectionList connlist; diff --git a/src/messagehandler.cc b/src/messagehandler.cc index 89b476a..18d5fed 100644 --- a/src/messagehandler.cc +++ b/src/messagehandler.cc @@ -28,10 +28,9 @@  #include "messagehandler.h"  #include "debug.h" +// Defines global task_manager object  #include "taskmanager.h" -TaskManager taskman; -  MessageList handle_msg(MessageList msgList, clientid_t wsi) {    MessageList::iterator it; @@ -44,11 +43,11 @@ MessageList handle_msg(MessageList msgList, clientid_t wsi) {      case cmd::add:         {          INFO(messagehandler, "Handling add command\n"); -        task_t t = taskman.createTask(); +        task_t t = task_manager.createTask();          t.title = m.add.title;          t.desc = m.add.desc;          try { -         it->nodes = taskman.addTask(t, m.add.parentid); +         it->nodes = task_manager.addTask(t, m.add.parentid);          }          catch (std::exception& e) {            DEBUG(messagehandler, "Error adding task\n"); @@ -59,7 +58,7 @@ MessageList handle_msg(MessageList msgList, clientid_t wsi) {        {          INFO(messagehandler, "Handling del command\n");          try { -          it->nodes = taskman.deleteTask(m.del.id); +          it->nodes = task_manager.deleteTask(m.del.id);          }          catch (std::exception& e) {            DEBUG(messagehandler, "Error deleting task\n"); @@ -70,7 +69,7 @@ MessageList handle_msg(MessageList msgList, clientid_t wsi) {        {          INFO(messagehandler, "Handling move command\n");          try { -          it->nodes = taskman.moveTask(m.move.id, m.move.parentid); +          it->nodes = task_manager.moveTask(m.move.id, m.move.parentid);          }          catch (std::exception& e) {            DEBUG(messagehandler, "Error moving task\n"); @@ -90,7 +89,7 @@ MessageList handle_msg(MessageList msgList, clientid_t wsi) {            task_t t;            t.title = m.update.title;            t.desc = m.update.desc; -          it->nodes = taskman.updateTask(m.update.id, t); +          it->nodes = task_manager.updateTask(m.update.id, t);          }          catch (std::exception& e) {            DEBUG(messagehandler, "Error updating task\n"); @@ -101,7 +100,7 @@ MessageList handle_msg(MessageList msgList, clientid_t wsi) {        WARN(messagehandler, "!!! Unknown command\n");        break;      } -    taskman.tree.toStdOut(); +    task_manager.tree.toStdOut();      printf("%d affected nodes registered\n", m.nodes.size());    } diff --git a/src/munia_proto.cc b/src/munia_proto.cc index b801009..a91c204 100644 --- a/src/munia_proto.cc +++ b/src/munia_proto.cc @@ -38,10 +38,9 @@  #include "messagehandler.h"  #include "connectionhandler.h" +// Defines global task_manager object  #include "taskmanager.h" -extern TaskManager taskman; -  #if 0  static void dump_handshake_info(struct lws_tokens *lwst)  { @@ -89,7 +88,7 @@ int callback_lws_task(struct libwebsocket_context * context,                        enum libwebsocket_callback_reasons reason,                        void *user, void *in, size_t len)  { -  taskman.tree.toStdOut(); +  task_manager.tree.toStdOut();    printf("Callback on %p\n", wsi); diff --git a/src/taskmanager.cc b/src/taskmanager.cc index a197a79..f757694 100644 --- a/src/taskmanager.cc +++ b/src/taskmanager.cc @@ -29,6 +29,9 @@  #include <stdio.h> +// Global TaskManager object. +TaskManager task_manager; +  #define ROOT_ID 0  #define LOSTFOUND_ID 1  #define FINISHED_ID 2 diff --git a/src/taskmanager.h b/src/taskmanager.h index d6a418b..6b24208 100644 --- a/src/taskmanager.h +++ b/src/taskmanager.h @@ -55,6 +55,8 @@ private:    taskid_t idCount;  }; +extern TaskManager task_manager; +  #if 0  /* | 
