diff options
author | Jonas Suhr Christensen <jsc@umbraculum.org> | 2012-04-12 15:12:18 +0200 |
---|---|---|
committer | Jonas Suhr Christensen <jsc@umbraculum.org> | 2012-04-12 15:12:18 +0200 |
commit | e3c0c95f2ad3d25411c007ce4ffdb25084a1bc0d (patch) | |
tree | 6e4179bac871a91b842ccfff4aa69466f0787ad8 /src/connectionhandler.cc | |
parent | fd373d0b0f580b56f3350e92207cfa499806ca4d (diff) |
Added observer id as prefix to server->client commands.
Diffstat (limited to 'src/connectionhandler.cc')
-rw-r--r-- | src/connectionhandler.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/connectionhandler.cc b/src/connectionhandler.cc index 85ae4a7..56c465f 100644 --- a/src/connectionhandler.cc +++ b/src/connectionhandler.cc @@ -65,18 +65,27 @@ void ConnectionHandler::unobserve(clientid_t clientid, taskid_t taskid) connlist[clientid].erase(taskid); } -std::set<clientid_t> ConnectionHandler::observerlist(TaskIdList tasks) +std::list<std::pair<clientid_t, taskid_t> > +ConnectionHandler::observerlist(TaskIdList tasks) { printf("Observerlist request\n"); - std::set<clientid_t> clients; + std::list<std::pair<clientid_t, taskid_t> > 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(); ci != connlist.end(); ci++) { std::set<taskid_t>::iterator ti = ci->second.find(tid); - if(ti != ci->second.end()) clients.insert(ci->first); + if(ti != ci->second.end()) { + std::pair<clientid_t, taskid_t> m; + m.first = ci->first; + m.second = tid; + clients.push_back(m); + } } } |