17 #ifndef _CONNECTION_MANAGER_HH_
18 #define _CONNECTION_MANAGER_HH_
21 #include <boost/shared_ptr.hpp>
22 #include <boost/thread.hpp>
54 public:
bool Init(
const std::string &_masterHost,
55 unsigned int _masterPort);
76 public:
void Subscribe(
const std::string &_topic,
77 const std::string &_msgType,
82 public:
void Unsubscribe(
const msgs::Subscribe &_sub);
88 const std::string &_msgType);
93 public:
void Advertise(
const std::string &_topic,
94 const std::string &_msgType);
98 public:
void Unadvertise(
const std::string &_topic);
120 private:
ConnectionPtr FindConnection(
const std::string &_host,
133 private:
void OnMasterRead(
const std::string &_data);
143 const std::string &_data);
147 private:
void ProcessMessage(
const std::string &_packet);
155 private: std::list<ConnectionPtr> connections;
158 private:
bool initialized;
159 private:
bool stop, stopped;
160 private: boost::thread *thread;
162 private:
unsigned int tmpIndex;
163 private: boost::recursive_mutex *listMutex;
166 private: boost::mutex namespaceMutex;
167 private: boost::recursive_mutex *masterMessagesMutex;
168 private: boost::recursive_mutex *connectionMutex;
170 private: std::list<msgs::Publish> publishers;
171 private: std::list<std::string> namespaces;
172 private: std::list<std::string> masterMessages;
175 private: boost::condition_variable namespaceCondition;