Transport

Files

file  TransportTypes.hh
 Forward declarations for transport.
 

Classes

class  CallbackHelper
 A helper class to handle callbacks when messages arrive. More...
 
class  CallbackHelperT< M >
 Callback helper Template. More...
 
class  Connection
 Single TCP/IP connection manager. More...
 
class  ConnectionManager
 Manager of connections. More...
 
class  IOManager
 Manages boost::asio IO. More...
 
class  Node
 A node can advertise and subscribe topics, publish on advertised topics and listen to subscribed topics. More...
 
class  Publication
 A publication for a topic. More...
 
class  PublicationTransport
 transport/transport.hh More...
 
class  Publisher
 A publisher of messages on a topic. More...
 
class  RawCallbackHelper
 Used to connect publishers to subscribers, where the subscriber wants the raw data from the publisher. More...
 
class  SubscribeOptions
 Options for a subscription. More...
 
class  Subscriber
 A subscriber to a topic. More...
 
class  SubscriptionTransport
 transport/transport.hh More...
 
class  TopicManager
 Manages topics and their subscriptions. More...
 

Typedefs

typedef boost::shared_ptr< CallbackHelperCallbackHelperPtr
 boost shared pointer to transport::CallbackHelper
 

Functions

void clear_buffers ()
 Clear any remaining communication buffers.
 
transport::ConnectionPtr connectToMaster ()
 Create a connection to master.
 
void fini ()
 Cleanup the transport component.
 
bool get_master_uri (std::string &_master_host, unsigned int &_master_port)
 Get the hostname and port of the master from the GAZEBO_MASTER_URI environment variable.
 
void get_topic_namespaces (std::list< std::string > &_namespaces)
 Return all the namespace (world names) on the master.
 
std::map< std::string, std::list< std::string > > getAdvertisedTopics ()
 Get a list of all the topics and their message types.
 
std::list< std::string > getAdvertisedTopics (const std::string &_msgType)
 Get a list of all the unique advertised topic names.
 
bool getMinimalComms ()
 Get whether minimal comms has been enabled.
 
std::string getTopicMsgType (const std::string &_topicName)
 Get the message typename that is published on the given topic.
 
bool init (const std::string &_masterHost="", unsigned int _masterPort=0, uint32_t _timeoutIterations=30)
 Initialize the transport system.
 
bool is_stopped ()
 Is the transport system stopped?
 
void pause_incoming (bool _pause)
 Pause or unpause incoming messages.
 
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.
 
boost::shared_ptr< msgs::Response > request (const std::string &_worldName, const std::string &_request, const std::string &_data="", const common::Time &_timeout=-1)
 Send a request and receive a response.
 
void requestNoReply (const std::string &_worldName, const std::string &_request, const std::string &_data="")
 Send a request and don't wait for a response.
 
void requestNoReply (NodePtr _node, const std::string &_request, const std::string &_data="")
 Send a request and don't wait for a response.
 
void run ()
 Run the transport component.
 
void setMinimalComms (bool _enabled)
 Set whether minimal comms should be used.
 
void stop ()
 Stop the transport component from running.
 
bool waitForNamespaces (const gazebo::common::Time &_maxWait)
 Blocks while waiting for topic namespaces from the Master.
 

Detailed Description

Handles transportation of messages .

Remarks
Environment Variables:
  • GAZEBO_IP_WHITE_LIST: Comma separated list of valid IPs. Leave this empty to accept connections from all addresses.
  • GAZEBO_IP: IP address to export. This will override the default IP lookup.
  • GAZEBO_HOSTNAME: Hostame to export. Setting this will override both GAZEBO_IP and the default IP lookup.

Typedef Documentation

◆ CallbackHelperPtr

typedef boost::shared_ptr<CallbackHelper> CallbackHelperPtr

boost shared pointer to transport::CallbackHelper

Function Documentation

◆ clear_buffers()

void clear_buffers ( )

Clear any remaining communication buffers.

◆ connectToMaster()

transport::ConnectionPtr connectToMaster ( )

Create a connection to master.

Returns
Connection to the master, NULL on error.

◆ fini()

void fini ( )

Cleanup the transport component.

◆ get_master_uri()

bool get_master_uri ( std::string & _master_host,
unsigned int & _master_port )

Get the hostname and port of the master from the GAZEBO_MASTER_URI environment variable.

Parameters
[out]_master_hostThe hostname of the master is set to this param
[out]_master_portThe port of the master is set to this param
Returns
true if GAZEBO_MASTER_URI was successfully parsed; false otherwise (in which case output params are not set)

◆ get_topic_namespaces()

void get_topic_namespaces ( std::list< std::string > & _namespaces)

Return all the namespace (world names) on the master.

Parameters
[out]_namespacesThe list of namespace will be written here

◆ getAdvertisedTopics() [1/2]

std::map< std::string, std::list< std::string > > getAdvertisedTopics ( )

Get a list of all the topics and their message types.

Returns
A map where keys are message types, and values are a list of topic names.

◆ getAdvertisedTopics() [2/2]

std::list< std::string > getAdvertisedTopics ( const std::string & _msgType)

Get a list of all the unique advertised topic names.

Parameters
[in]_msgTypeType of message to filter the result on. If empty, then a list of all the topics is returned.
Returns
A list of the advertised topics that publish messages of the type specified by _msgType.

◆ getMinimalComms()

bool getMinimalComms ( )

Get whether minimal comms has been enabled.

Returns
True if minimal comms is enabled.

◆ getTopicMsgType()

std::string getTopicMsgType ( const std::string & _topicName)

Get the message typename that is published on the given topic.

Parameters
[in]_topicNameName of the topic to query.
Returns
The message type, or empty string if the topic is not valid.

◆ init()

bool init ( const std::string & _masterHost = "",
unsigned int _masterPort = 0,
uint32_t _timeoutIterations = 30 )

Initialize the transport system.

Parameters
[in]_masterHostThe hostname or IP of the master. Leave empty to use pull address from the GAZEBO_MASTER_URI env var.
[in]_masterPortThe port of the master. Leave empty to use pull address from the GAZEBO_MASTER_URI env var.
[in]_timeoutIterationsNumber of times to wait for a connection to master.
Returns
true if initialization succeeded; false otherwise

◆ is_stopped()

bool is_stopped ( )
extern

Is the transport system stopped?

Returns
true if the transport system is stopped; false otherwise

◆ pause_incoming()

void pause_incoming ( bool _pause)

Pause or unpause incoming messages.

When paused, messages are queued for later delivery

Parameters
[in]_pauseIf true, pause; otherwise unpause

◆ publish()

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.

This is inefficient, compared to Node::Advertise followed by Publisher::Publish. This function should only be used when sending a message very infrequently.

Parameters
[in]_topicThe topic to advertise
[in]_messageMessage to be published

◆ request()

boost::shared_ptr< msgs::Response > request ( const std::string & _worldName,
const std::string & _request,
const std::string & _data = "",
const common::Time & _timeout = -1 )

Send a request and receive a response.

This call will block until a response is received.

Parameters
[in]_worldNameThe name of the world to which the request should be sent
[in]_requestThe type request.
[in]_dataOptional data string.
[in]_timeoutMaxiumum time to wait. Use a negative time value to wait forever.
Returns
The response to the request. Can be empty.

◆ requestNoReply() [1/2]

void requestNoReply ( const std::string & _worldName,
const std::string & _request,
const std::string & _data = "" )

Send a request and don't wait for a response.

This is non-blocking.

Parameters
[in]_worldNameThe name of the world to which the request should be sent.
[in]_requestThe type request.
[in]_dataOptional data string.

◆ requestNoReply() [2/2]

void requestNoReply ( NodePtr _node,
const std::string & _request,
const std::string & _data = "" )

Send a request and don't wait for a response.

This is non-blocking.

Parameters
[in]_nodePointer to a node that provides communication.
[in]_requestThe type request.
[in]_dataOptional data string.

◆ run()

void run ( )

Run the transport component.

Creates a thread to handle message passing. This call will block until the master can be contacted or until a retry limit is reached

◆ setMinimalComms()

void setMinimalComms ( bool _enabled)

Set whether minimal comms should be used.

This will be used to reduce network traffic.

◆ stop()

void stop ( )

Stop the transport component from running.

◆ waitForNamespaces()

bool waitForNamespaces ( const gazebo::common::Time & _maxWait)

Blocks while waiting for topic namespaces from the Master.

This function will wait a maximum of _maxWait.

Returns
True if namespaces were found before _maxWait time.