##

Transport

Handles transportation of messages. More...

## 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. This facilitates transport of messages. More...
class | PublicationTransport
| Reads data from a remote advertiser, and passes the data along to local subscribers. 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. Raw means that the data has not been converted into a protobuf message. More...
class | SubscribeOptions
| Options for a subscription. More...
class | Subscriber
| A subscriber to a topic. More...
class | SubscriptionTransport
| Handles sending data over the wire to remote subscribers. More...
class | TopicManager
| Manages topics and their subscriptions. More...

## Typedefs

typedef boost::shared_ptr< CallbackHelper > | CallbackHelperPtr
| boost shared pointer to transport::CallbackHelper More...

## Functions

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

## 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 gazebo::transport::clear_buffers | ( |  | ) |

Clear any remaining communication buffers.

## connectToMaster()

transport::ConnectionPtr gazebo::transport::connectToMaster | ( |  | ) |

Create a connection to master.

Returns
  Connection to the master, NULL on error.

## fini()

void gazebo::transport::fini | ( |  | ) |

Cleanup the transport component.

## get_master_uri()

bool gazebo::transport::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_host | The hostname of the master is set to this param
  [out] | _master_port | The 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 gazebo::transport::get_topic_namespaces | ( | std::list< std::string > & | _namespaces | ) |

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

Parameters

  [out] | _namespaces | The list of namespace will be written here

## getAdvertisedTopics() [1/2]

std::map<std::string, std::list<std::string> > gazebo::transport::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> gazebo::transport::getAdvertisedTopics | ( | const std::string & | _msgType | ) |

Get a list of all the unique advertised topic names.

Parameters

  [in] | _msgType | Type 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 gazebo::transport::getMinimalComms | ( |  | ) |

Get whether minimal comms has been enabled.

Returns
  True if minimal comms is enabled.

## getTopicMsgType()

std::string gazebo::transport::getTopicMsgType | ( | const std::string & | _topicName | ) |

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

Parameters

  [in] | _topicName | Name of the topic to query.

Returns
  The message type, or empty string if the topic is not valid.

## init()

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

Initialize the transport system.

Parameters

  [in] | _masterHost | The hostname or IP of the master. Leave empty to use pull address from the GAZEBO_MASTER_URI env var.
  [in] | _masterPort | The port of the master. Leave empty to use pull address from the GAZEBO_MASTER_URI env var.
  [in] | _timeoutIterations | Number of times to wait for a connection to master.

Returns
  true if initialization succeeded; false otherwise

## is_stopped()

bool is_stopped | ( |  | ) |

Is the transport system stopped?

Returns
  true if the transport system is stopped; false otherwise

## pause_incoming()

void gazebo::transport::pause_incoming | ( | bool | _pause | ) |

Pause or unpause incoming messages.

When paused, messages are queued for later delivery

Parameters

  [in] | _pause | If true, pause; otherwise unpause

## publish()

void gazebo::transport::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] | _topic | The topic to advertise
  [in] | _message | Message to be published

## request()

boost::shared_ptr<msgs::Response> gazebo::transport::request | ( | const std::string & | _worldName,
|  | const std::string & | _request,
|  | const std::string & | _data = `""`
| ) |  |

Send a request and receive a response.

This call will block until a response is received.

Parameters

  [in] | _worldName | The name of the world to which the request should be sent
  [in] | _request | The type request.
  [in] | _data | Optional data string.

Returns
  The response to the request. Can be empty.

## requestNoReply() [1/2]

void gazebo::transport::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] | _worldName | The name of the world to which the request should be sent.
  [in] | _request | The type request.
  [in] | _data | Optional data string.

## requestNoReply() [2/2]

void gazebo::transport::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] | _node | Pointer to a node that provides communication.
  [in] | _request | The type request.
  [in] | _data | Optional data string.

## run()

void gazebo::transport::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 gazebo::transport::setMinimalComms | ( | bool | _enabled | ) |

Set whether minimal comms should be used.

This will be used to reduce network traffic.

## stop()

void gazebo::transport::stop | ( |  | ) |

Stop the transport component from running.

## waitForNamespaces()

bool gazebo::transport::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.