A publication for a topic. More...
#include <transport/transport.hh>
Inherits enable_shared_from_this< Publication >.
Public Member Functions | |
Publication (const std::string &_topic, const std::string &_msgType) | |
Constructor. More... | |
virtual | ~Publication () |
Destructor. More... | |
void | AddPublisher (PublisherPtr _pub) |
Add a publisher. More... | |
void | AddSubscription (const CallbackHelperPtr _callback) |
Subscribe a callback to our topic. More... | |
void | AddSubscription (const NodePtr &_node) |
Subscribe a node to our topic. More... | |
void | AddTransport (const PublicationTransportPtr &_publink) |
Add a transport. More... | |
void | ClearPrevMsgs () |
Clear all previous messages for a publisher. More... | |
unsigned int | GetCallbackCount () const |
Get the number of callbacks. More... | |
bool | GetLocallyAdvertised () const |
Was the topic has been advertised from this process? More... | |
std::string | GetMsgType () const |
Get the type of message. More... | |
unsigned int | GetNodeCount () const |
Get the number of nodes. More... | |
MessagePtr | GetPrevMsg (uint32_t _pubId) |
Get a previous message for a publisher. More... | |
unsigned int | GetRemoteSubscriptionCount () |
Get the number of remote subscriptions. More... | |
unsigned int | GetTransportCount () const |
Get the number of transports. More... | |
bool | HasTransport (const std::string &_host, unsigned int _port) |
Does a given transport exist? More... | |
void | LocalPublish (const std::string &_data) |
Publish data to local subscribers (skip serialization) More... | |
int | Publish (MessagePtr _msg, boost::function< void(uint32_t)> _cb, uint32_t _id) |
Publish data to remote subscribers. More... | |
unsigned int | PublisherCount () const |
Get the number of publishers. More... | |
void | RemovePublisher (PublisherPtr _pub) |
Remove a publisher. More... | |
bool | RemovePublisher (const uint32_t id) |
Remove a publisher, based on a publisher ID. More... | |
void | RemoveSubscription (const NodePtr &_node) |
Unsubscribe a node from our topic. More... | |
void | RemoveSubscription (const std::string &_host, unsigned int _port) |
Unsubscribe a a node by host/port from our topic. More... | |
void | RemoveTransport (const std::string &_host, unsigned int _port) |
Remove a transport. More... | |
void | SetLocallyAdvertised (bool _value) |
Set whether this topic has been advertised from this process. More... | |
void | SetPrevMsg (uint32_t _pubId, MessagePtr _msg) |
Set the previous message for a publisher. More... | |
A publication for a topic.
This facilitates transport of messages
Publication | ( | const std::string & | _topic, |
const std::string & | _msgType | ||
) |
Constructor.
[in] | _topic | The topic we're publishing |
[in] | _msgType | The type of the topic we're publishing |
|
virtual |
Destructor.
void AddPublisher | ( | PublisherPtr | _pub | ) |
Add a publisher.
[in,out] | _pub | Pointer to publisher object to be added |
void AddSubscription | ( | const CallbackHelperPtr | _callback | ) |
Subscribe a callback to our topic.
[in] | _callback | The callback |
void AddSubscription | ( | const NodePtr & | _node | ) |
Subscribe a node to our topic.
[in] | _node | The node |
void AddTransport | ( | const PublicationTransportPtr & | _publink | ) |
Add a transport.
[in] | _publink | Pointer to publication transport object to be added |
void ClearPrevMsgs | ( | ) |
Clear all previous messages for a publisher.
unsigned int GetCallbackCount | ( | ) | const |
Get the number of callbacks.
bool GetLocallyAdvertised | ( | ) | const |
Was the topic has been advertised from this process?
std::string GetMsgType | ( | ) | const |
Get the type of message.
unsigned int GetNodeCount | ( | ) | const |
Get the number of nodes.
MessagePtr GetPrevMsg | ( | uint32_t | _pubId | ) |
Get a previous message for a publisher.
[in] | _pubId | ID of the publisher. |
unsigned int GetRemoteSubscriptionCount | ( | ) |
Get the number of remote subscriptions.
unsigned int GetTransportCount | ( | ) | const |
Get the number of transports.
bool HasTransport | ( | const std::string & | _host, |
unsigned int | _port | ||
) |
Does a given transport exist?
[in] | _host | Hostname of the transport |
[in] | _port | Port of the transport |
void LocalPublish | ( | const std::string & | _data | ) |
Publish data to local subscribers (skip serialization)
[in] | _data | The data to be published |
int Publish | ( | MessagePtr | _msg, |
boost::function< void(uint32_t)> | _cb, | ||
uint32_t | _id | ||
) |
Publish data to remote subscribers.
[in] | _msg | Message to be published |
[in] | _cb | Callback to be invoked after publishing is completed |
unsigned int PublisherCount | ( | ) | const |
Get the number of publishers.
void RemovePublisher | ( | PublisherPtr | _pub | ) |
Remove a publisher.
[in] | _pub | Pointer to publisher object to remove. |
bool RemovePublisher | ( | const uint32_t | id | ) |
Remove a publisher, based on a publisher ID.
[in] | _id | ID of the publisher to remove. |
void RemoveSubscription | ( | const NodePtr & | _node | ) |
Unsubscribe a node from our topic.
[in] | _node | The node |
void RemoveSubscription | ( | const std::string & | _host, |
unsigned int | _port | ||
) |
Unsubscribe a a node by host/port from our topic.
[in] | _host | The node's hostname |
[in] | _port | The node's port |
void RemoveTransport | ( | const std::string & | _host, |
unsigned int | _port | ||
) |
Remove a transport.
[in] | _host | The transport's hostname |
[in] | _port | The transport's port |
void SetLocallyAdvertised | ( | bool | _value | ) |
Set whether this topic has been advertised from this process.
[in] | _value | If true, the topic was locally advertise, otherwise it was not |
void SetPrevMsg | ( | uint32_t | _pubId, |
MessagePtr | _msg | ||
) |
Set the previous message for a publisher.
[in] | _pubId | ID of the publisher. |
[in] | _msg | The previous message. |