1 #ifndef __RTFX_POSTOFFICE__
2 #define __RTFX_POSTOFFICE__
15 #include <boost/bind.hpp>
16 #include <boost/shared_ptr.hpp>
17 #include <boost/enable_shared_from_this.hpp>
18 #include <boost/asio.hpp>
20 #include "RTFXDebug.h"
22 #include "RTFXParcel.h"
24 #include "RTFXMailbox.h"
28 using boost::asio::ip::tcp;
32 typedef boost::shared_ptr<RTFXParticipant> RTFXParticipant_ptr;
38 bool operator() (
const char * a,
const char * b )
const
40 if ( memcmp( a, b, 16 ) < 0 )
return true;
58 debug( ostringstream().flush() <<
"RTFXPostOffice Constructor" << endl );
59 compressionType =
NONE;
65 map<const char *, RTFXMailbox *, MailboxNameComparison>::iterator iter_ = mailboxes.begin();
66 while ( iter_ != mailboxes.end() )
69 mailboxes.erase( iter_ );
81 void Join( RTFXParticipant_ptr _participant );
86 void Leave( RTFXParticipant_ptr _particpant );
92 void RemoveAll( boost::uuids::uuid _owner,
char * _mailboxName );
95 void SendMailbox( RTFXParticipant_ptr _participant );
100 if ( mailboxes.find( _mailboxName ) == mailboxes.end() )
102 return mailboxes[ _mailboxName ];
109 compressionType = _tmp;
110 map<const char *, RTFXMailbox *, MailboxNameComparison >::iterator iter_ = mailboxes.begin();
111 while ( iter_ != mailboxes.end() )
113 ((*iter_).second)->SetDefaultCompressionType( compressionType );
119 void SetOwnerID( boost::uuids::uuid _id )
125 boost::uuids::uuid GetOwnerID()
141 boost::uuids::uuid
id;
147 std::map<const char *, RTFXMailbox *, MailboxNameComparison >
mailboxes;