All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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.
 

Public Member Functions

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

Additional Inherited Members

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

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
template<typename M >
PublisherPtr gazebo::transport::TopicManager::Advertise ( const std::string &  _topic,
unsigned int  _queueLimit,
bool  _latch 
)
inline

Advertise on a topic.

Parameters
[in]_topicThe name of the topic
[in]_queueLimitThe maximum number of outgoing messages to queue
[in]_latchIf true, latch the latest message; if false, don't latch
Returns
Pointer to the newly created Publisher

References gazebo::transport::Publication::AddPublisher(), gazebo::transport::Publication::AddSubscription(), FindPublication(), gazebo::transport::Publication::GetLocallyAdvertised(), gzthrow, SingletonT< T >::Instance(), NULL, gazebo::transport::Publication::SetLocallyAdvertised(), and UpdatePublications().

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)

Referenced by Advertise().

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,
const google::protobuf::Message &  _message,
const boost::function< void()> &  _cb = NULL 
)

Send a message.

Use a Publisher instead of calling this function directly.

Parameters
_topicName of the topic
_messageThe message to send.
_cbCallback, used when the publish is completed.
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::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

Referenced by Advertise().


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