summaryrefslogtreecommitdiff
path: root/src/syncOnConnect.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/syncOnConnect.hpp')
-rw-r--r--src/syncOnConnect.hpp45
1 files changed, 45 insertions, 0 deletions
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());
+ }
+}
+