From 686c1ebee948a20193df1411d478693a29a0f658 Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Mon, 17 Nov 2008 23:21:42 +0000 Subject: added OnConnect Callback --- src/syncOnConnect.hpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/syncOnConnect.hpp (limited to 'src/syncOnConnect.hpp') diff --git a/src/syncOnConnect.hpp b/src/syncOnConnect.hpp new file mode 100644 index 0000000..35aa93a --- /dev/null +++ b/src/syncOnConnect.hpp @@ -0,0 +1,45 @@ + +void syncOnConnect(SyncTcpConnection * connptr) +{ + ConnectionList & cl_(gConnectionList); + ConnectionMap::iterator cit = cl_.getBeginUnlocked(); + for (;cit!=cl_.getEndUnlocked();++cit) + { + std::ostringstream sout; + boost::archive::text_oarchive oa(sout); + const SyncCommand scom(cl_,cit->first); + oa << scom; + std::stringstream lengthout; + lengthout << std::setw(5) << std::setfill('0') << sout.str().size()<< ' '; + connptr->Send(lengthout.str()); + connptr->Send(sout.str()); + } + //TODO Locking here + RoutingMap::iterator it = gRoutingTable.getBeginUnlocked(); + for (;it!=gRoutingTable.getEndUnlocked();++it) + { + NetworkPrefix tmp(it->first); + std::ostringstream sout; + boost::archive::text_oarchive oa(sout); + const SyncCommand scom(tmp); + oa << scom; + std::stringstream lengthout; + lengthout << std::setw(5) << std::setfill('0') << sout.str().size()<< ' '; + connptr->Send(lengthout.str()); + connptr->Send(sout.str()); + } + //TODO Locking here + RtpSessionMap::iterator rit = gRtpSessionTable.getBeginUnlocked(); + for (;rit!=gRtpSessionTable.getEndUnlocked();++rit) + { + std::ostringstream sout; + boost::archive::text_oarchive oa(sout); + const SyncCommand scom(rit->first); + oa << scom; + std::stringstream lengthout; + lengthout << std::setw(5) << std::setfill('0') << sout.str().size()<< ' '; + connptr->Send(lengthout.str()); + connptr->Send(sout.str()); + } +} + -- cgit v1.2.3