summaryrefslogtreecommitdiff
path: root/src/connectionhandler.cc
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2012-04-12 15:12:18 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2012-04-12 15:12:18 +0200
commite3c0c95f2ad3d25411c007ce4ffdb25084a1bc0d (patch)
tree6e4179bac871a91b842ccfff4aa69466f0787ad8 /src/connectionhandler.cc
parentfd373d0b0f580b56f3350e92207cfa499806ca4d (diff)
Added observer id as prefix to server->client commands.
Diffstat (limited to 'src/connectionhandler.cc')
-rw-r--r--src/connectionhandler.cc15
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);
+ }
}
}