A node can advertise and subscribe topics, publish on advertised topics and listen to subscribed topics. More...
#include <transport/transport.hh>
Inherits enable_shared_from_this< Node >.
Public Member Functions | |
| Node () | |
| Constructor. More... | |
| virtual | ~Node () |
| Destructor. More... | |
| template<typename M > | |
| transport::PublisherPtr | Advertise (const std::string &_topic, unsigned int _queueLimit=1000, double _hzRate=0) |
| Adverise a topic. More... | |
| std::string | DecodeTopicName (const std::string &_topic) |
| Decode a topic name. More... | |
| std::string | EncodeTopicName (const std::string &_topic) |
| Encode a topic name. More... | |
| void | Fini () |
| Finalize the node. More... | |
| unsigned int | GetId () const |
| Get the unique ID of the node. More... | |
| std::string | GetMsgType (const std::string &_topic) const |
| Get the message type for a topic. More... | |
| std::string | GetTopicNamespace () const |
| Get the topic namespace for this node. More... | |
| bool | HandleData (const std::string &_topic, const std::string &_msg) |
| Handle incoming data. More... | |
| bool | HandleMessage (const std::string &_topic, MessagePtr _msg) |
| Handle incoming msg. More... | |
| bool | HasLatchedSubscriber (const std::string &_topic) const |
| Return true if a subscriber on a specific topic is latched. More... | |
| void | Init (const std::string &_space="") |
| Init the node. More... | |
| void | InsertLatchedMsg (const std::string &_topic, const std::string &_msg) |
| Add a latched message to the node for publication. More... | |
| void | InsertLatchedMsg (const std::string &_topic, MessagePtr _msg) |
| Add a latched message to the node for publication. More... | |
| void | ProcessIncoming () |
| Process incoming messages. More... | |
| void | ProcessPublishers () |
| Process all publishers, which has each publisher send it's most recent message over the wire. More... | |
| template<typename M > | |
| void | Publish (const std::string &_topic, const google::protobuf::Message &_message) |
| A convenience function for a one-time publication of a message. More... | |
| void | RemoveCallback (const std::string &_topic, unsigned int _id) |
| template<typename M , typename T > | |
| SubscriberPtr | Subscribe (const std::string &_topic, void(T::*_fp)(const boost::shared_ptr< M const > &), T *_obj, bool _latching=false) |
| Subscribe to a topic using a class method as the callback. More... | |
| template<typename M > | |
| SubscriberPtr | Subscribe (const std::string &_topic, void(*_fp)(const boost::shared_ptr< M const > &), bool _latching=false) |
| Subscribe to a topic using a bare function as the callback. More... | |
| template<typename T > | |
| SubscriberPtr | Subscribe (const std::string &_topic, void(T::*_fp)(const std::string &), T *_obj, bool _latching=false) |
| Subscribe to a topic using a class method as the callback. More... | |
| SubscriberPtr | Subscribe (const std::string &_topic, void(*_fp)(const std::string &), bool _latching=false) |
| Subscribe to a topic using a bare function as the callback. More... | |
A node can advertise and subscribe topics, publish on advertised topics and listen to subscribed topics.
| Node | ( | ) |
Constructor.
|
virtual |
Destructor.
|
inline |
Adverise a topic.
| [in] | _topic | The topic to advertise |
| [in] | _queueLimit | The maximum number of outgoing messages to queue for delivery |
| [in] | _hz | Update rate for the publisher. Units are 1.0/seconds. |
References Node::DecodeTopicName(), and SingletonT< TopicManager >::Instance().
| std::string DecodeTopicName | ( | const std::string & | _topic | ) |
Decode a topic name.
| [in] | The | encoded name |
Referenced by Node::Advertise(), and Node::Subscribe().
| std::string EncodeTopicName | ( | const std::string & | _topic | ) |
Encode a topic name.
| [in] | The | decoded name |
| void Fini | ( | ) |
Finalize the node.
| unsigned int GetId | ( | ) | const |
| std::string GetMsgType | ( | const std::string & | _topic | ) | const |
Get the message type for a topic.
| [in] | _topic | The topic |
| std::string GetTopicNamespace | ( | ) | const |
Get the topic namespace for this node.
| bool HandleData | ( | const std::string & | _topic, |
| const std::string & | _msg | ||
| ) |
Handle incoming data.
| [in] | _topic | Topic for which the data was received |
| [in] | _msg | The message that was received |
| bool HandleMessage | ( | const std::string & | _topic, |
| MessagePtr | _msg | ||
| ) |
Handle incoming msg.
| [in] | _topic | Topic for which the data was received |
| [in] | _msg | The message that was received |
| bool HasLatchedSubscriber | ( | const std::string & | _topic | ) | const |
Return true if a subscriber on a specific topic is latched.
| [in] | _topic | Name of the topic to check. |
| void Init | ( | const std::string & | _space = "" | ) |
Init the node.
| [in] | _space | Set the global namespace of all topics. If left blank, the topic will initialize to the first namespace on the Master |
| void InsertLatchedMsg | ( | const std::string & | _topic, |
| const std::string & | _msg | ||
| ) |
Add a latched message to the node for publication.
This is called when a subscription is connected to a publication.
| [in] | _topic | Name of the topic to publish data on. |
| [in] | _msg | The message to publish. |
| void InsertLatchedMsg | ( | const std::string & | _topic, |
| MessagePtr | _msg | ||
| ) |
Add a latched message to the node for publication.
This is called when a subscription is connected to a publication.
| [in] | _topic | Name of the topic to publish data on. |
| [in] | _msg | The message to publish. |
| void ProcessIncoming | ( | ) |
Process incoming messages.
| void ProcessPublishers | ( | ) |
Process all publishers, which has each publisher send it's most recent message over the wire.
This is for internal use only
|
inline |
A convenience function for a one-time publication of a message.
This is inefficient, compared to Node::Advertise followed by Publisher::Publish. This function should only be used when sending a message very infrequently.
| [in] | _topic | The topic to advertise |
| [in] | _message | Message to be published |
| void RemoveCallback | ( | const std::string & | _topic, |
| unsigned int | _id | ||
| ) |
|
inline |
Subscribe to a topic using a class method as the callback.
| [in] | _topic | The topic to subscribe to |
| [in] | _fp | Class method to be called on receipt of new message |
| [in] | _obj | Class instance to be used on receipt of new message |
| [in] | _latching | If true, latch latest incoming message; otherwise don't latch |
References Node::DecodeTopicName(), Node::GetId(), and SingletonT< TopicManager >::Instance().
|
inline |
Subscribe to a topic using a bare function as the callback.
| [in] | _topic | The topic to subscribe to |
| [in] | _fp | Function to be called on receipt of new message |
| [in] | _latching | If true, latch latest incoming message; otherwise don't latch |
References Node::DecodeTopicName(), Node::GetId(), and SingletonT< TopicManager >::Instance().
|
inline |
Subscribe to a topic using a class method as the callback.
| [in] | _topic | The topic to subscribe to |
| [in] | _fp | Class method to be called on receipt of new message |
| [in] | _obj | Class instance to be used on receipt of new message |
| [in] | _latching | If true, latch latest incoming message; otherwise don't latch |
References Node::DecodeTopicName(), Node::GetId(), SubscribeOptions::Init(), and SingletonT< TopicManager >::Instance().
|
inline |
Subscribe to a topic using a bare function as the callback.
| [in] | _topic | The topic to subscribe to |
| [in] | _fp | Function to be called on receipt of new message |
| [in] | _latching | If true, latch latest incoming message; otherwise don't latch |
References Node::DecodeTopicName(), Node::GetId(), SubscribeOptions::Init(), and SingletonT< TopicManager >::Instance().