Public Types | Public Member Functions | List of all members
gazebo::transport::TopicManager Class Reference

Manages topics and their subscriptions. More...

#include <transport/transport.hh>

Inheritance diagram for gazebo::transport::TopicManager:
Inheritance graph
[legend]

Public Types

typedef std::map< std::string,
std::list< NodePtr > > 
SubNodeMap
 A map of string->list of Node pointers. More...
 

Public Member Functions

void AddNode (NodePtr _node)
 Add a node to the manager. More...
 
void AddNodeToProcess (NodePtr _ptr)
 Add a node to the list of nodes that requires processing. More...
 
template<typename M >
PublisherPtr Advertise (const std::string &_topic, unsigned int _queueLimit, double _hzRate)
 Advertise on a topic. More...
 
void ClearBuffers ()
 Clear all buffers. More...
 
void ConnectPubToSub (const std::string &_topic, const SubscriptionTransportPtr _sublink)
 Connection a local Publisher to a remote Subscriber. More...
 
void ConnectSubscribers (const std::string &_topic)
 Connect all subscribers on a topic to known publishers. More...
 
void ConnectSubToPub (const msgs::Publish &_pub)
 Connect a local Subscriber to a remote Publisher. More...
 
void DisconnectPubFromSub (const std::string &_topic, const std::string &_host, unsigned int _port)
 Disconnect a local publisher from a remote subscriber. More...
 
void DisconnectSubFromPub (const std::string &_topic, const std::string &_host, unsigned int _port)
 Disconnect all local subscribers from a remote publisher. More...
 
PublicationPtr FindPublication (const std::string &_topic)
 Find a publication object by topic. More...
 
void Fini ()
 Finalize the manager. More...
 
void GetTopicNamespaces (std::list< std::string > &_namespaces)
 Get all the topic namespaces. More...
 
void Init ()
 Initialize the manager. More...
 
bool IsAdvertised (const std::string &_topic)
 Has the topic been advertised? More...
 
void PauseIncoming (bool _pause)
 Pause or unpause processing of incoming messages. More...
 
void ProcessNodes (bool _onlyOut=false)
 Process all nodes under management. More...
 
void Publish (const std::string &_topic, MessagePtr _message, boost::function< void(uint32_t)> _cb, uint32_t _id)
 Send a message. More...
 
void RegisterTopicNamespace (const std::string &_name)
 Register a new topic namespace. More...
 
void RemoveNode (unsigned int _id)
 Remove a node by its id. More...
 
SubscriberPtr Subscribe (const SubscribeOptions &_options)
 Subscribe to a topic. More...
 
void Unadvertise (const std::string &_topic)
 Unadvertise a topic. More...
 
void Unadvertise (PublisherPtr _pub)
 Unadvertise a publisher. More...
 
void Unsubscribe (const std::string &_topic, const NodePtr &_sub)
 Unsubscribe from a topic. More...
 
PublicationPtr UpdatePublications (const std::string &_topic, const std::string &_msgType)
 Update our list of advertised topics. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from SingletonT< TopicManager >
static TopicManager * Instance ()
 Get an instance of the singleton. More...
 
- Protected Member Functions inherited from SingletonT< TopicManager >
 SingletonT ()
 Constructor. More...
 
virtual ~SingletonT ()
 Destructor. More...
 

Detailed Description

Manages topics and their subscriptions.

Member Typedef Documentation

typedef std::map<std::string, std::list<NodePtr> > gazebo::transport::TopicManager::SubNodeMap

A map of string->list of Node pointers.

Member Function Documentation

void gazebo::transport::TopicManager::AddNode ( NodePtr  _node)

Add a node to the manager.

Parameters
[in,out]_nodeThe node to be added
void gazebo::transport::TopicManager::AddNodeToProcess ( NodePtr  _ptr)

Add a node to the list of nodes that requires processing.

Parameters
[in]_ptrNode to process.
template<typename M >
PublisherPtr gazebo::transport::TopicManager::Advertise ( const std::string &  _topic,
unsigned int  _queueLimit,
double  _hzRate 
)
inline

Advertise on a topic.

Parameters
[in]_topicThe name of the topic
[in]_queueLimitThe maximum number of outgoing messages to queue
[in]_hzUpdate rate for the publisher. Units are 1.0/seconds.
Returns
Pointer to the newly created Publisher

References GZ_ASSERT, gzthrow, SingletonT< ConnectionManager >::Instance(), and NULL.

void gazebo::transport::TopicManager::ClearBuffers ( )

Clear all buffers.

void gazebo::transport::TopicManager::ConnectPubToSub ( const std::string &  _topic,
const SubscriptionTransportPtr  _sublink 
)

Connection a local Publisher to a remote Subscriber.

Parameters
[in]_topicThe topic to use
[in]_sublinkThe subscription transport object to use
void gazebo::transport::TopicManager::ConnectSubscribers ( const std::string &  _topic)

Connect all subscribers on a topic to known publishers.

Parameters
[in]_topicThe topic to be connected
void gazebo::transport::TopicManager::ConnectSubToPub ( const msgs::Publish &  _pub)

Connect a local Subscriber to a remote Publisher.

Parameters
[in]_pubThe publish object to use
void gazebo::transport::TopicManager::DisconnectPubFromSub ( const std::string &  _topic,
const std::string &  _host,
unsigned int  _port 
)

Disconnect a local publisher from a remote subscriber.

Parameters
[in]_topicThe topic to be disconnected
[in]_hostThe host to be disconnected
[in]_portThe port to be disconnected
void gazebo::transport::TopicManager::DisconnectSubFromPub ( const std::string &  _topic,
const std::string &  _host,
unsigned int  _port 
)

Disconnect all local subscribers from a remote publisher.

Parameters
[in]_topicThe topic to be disconnected
[in]_hostThe host to be disconnected
[in]_portThe port to be disconnected
PublicationPtr gazebo::transport::TopicManager::FindPublication ( const std::string &  _topic)

Find a publication object by topic.

Parameters
[in]_topicThe topic to search for
Returns
Pointer to the publication object, if found (can be null)
void gazebo::transport::TopicManager::Fini ( )

Finalize the manager.

void gazebo::transport::TopicManager::GetTopicNamespaces ( std::list< std::string > &  _namespaces)

Get all the topic namespaces.

Parameters
[out]_namespacesThe list of namespaces will be written here
void gazebo::transport::TopicManager::Init ( )

Initialize the manager.

bool gazebo::transport::TopicManager::IsAdvertised ( const std::string &  _topic)

Has the topic been advertised?

Parameters
[in]_topicThe name of the topic to check
Returns
true if the topic has been advertised, false otherwise
void gazebo::transport::TopicManager::PauseIncoming ( bool  _pause)

Pause or unpause processing of incoming messages.

Parameters
[in]_pauseIf true pause processing; otherwse unpause
void gazebo::transport::TopicManager::ProcessNodes ( bool  _onlyOut = false)

Process all nodes under management.

Parameters
[in]_onlyOutTrue means only outbound messages on nodes will be sent. False means nodes process both outbound and inbound messages
void gazebo::transport::TopicManager::Publish ( const std::string &  _topic,
MessagePtr  _message,
boost::function< void(uint32_t)>  _cb,
uint32_t  _id 
)

Send a message.

Use a Publisher instead of calling this function directly.

Parameters
[in]_topicName of the topic
[in]_messageThe message to send.
[in]_cbCallback, used when the publish is completed.
[in]_idID associated with the message.
void gazebo::transport::TopicManager::RegisterTopicNamespace ( const std::string &  _name)

Register a new topic namespace.

Parameters
[in]_nameThe name of the new namespace
void gazebo::transport::TopicManager::RemoveNode ( unsigned int  _id)

Remove a node by its id.

Parameters
[in]_idThe ID of the node to be removed
SubscriberPtr gazebo::transport::TopicManager::Subscribe ( const SubscribeOptions _options)

Subscribe to a topic.

Parameters
[in]_optionsThe options to use for the subscription
Returns
Pointer to the newly created subscriber
void gazebo::transport::TopicManager::Unadvertise ( const std::string &  _topic)

Unadvertise a topic.

Parameters
[in]_topicThe topic to be unadvertised
void gazebo::transport::TopicManager::Unadvertise ( PublisherPtr  _pub)

Unadvertise a publisher.

Parameters
[in]_pubPublisher to unadvertise.
void gazebo::transport::TopicManager::Unsubscribe ( const std::string &  _topic,
const NodePtr _sub 
)

Unsubscribe from a topic.

Use a Subscriber rather than calling this function directly

Parameters
[in]_topicThe topic to unsubscribe from
[in]_subThe node to unsubscribe
PublicationPtr gazebo::transport::TopicManager::UpdatePublications ( const std::string &  _topic,
const std::string &  _msgType 
)

Update our list of advertised topics.

Parameters
[in]_topicThe topic to be updated
[in]_msgTypeThe type of the topic to be updated
Returns
True if the provided params define a new publisher, false otherwise

The documentation for this class was generated from the following file: