18 #ifndef _PUBLICATION_HH_
19 #define _PUBLICATION_HH_
22 #include <boost/shared_ptr.hpp>
23 #include <boost/thread/mutex.hpp>
48 const std::string &_msgType);
116 boost::function<
void(uint32_t)> _cb,
128 public:
bool HasTransport(
const std::string &_host,
unsigned int _port);
135 private:
void RemoveNodes();
138 private:
unsigned int id;
141 private:
static unsigned int idCounter;
144 private: std::string topic;
147 private: std::string msgType;
150 private: std::list<CallbackHelperPtr> callbacks;
153 private: std::list<NodePtr> nodes;
156 private: std::list<unsigned int> removeNodes;
159 private: std::list<std::pair<std::string, unsigned int> > removeCallbacks;
162 private: std::list<PublicationTransportPtr> transports;
165 private: std::vector<PublisherPtr> publishers;
168 private:
bool locallyAdvertised;
171 private:
mutable boost::mutex nodeMutex;
174 private:
mutable boost::mutex callbackMutex;
177 private:
mutable boost::mutex nodeRemoveMutex;