Gazebo Transport

API Reference

13.4.0
TopicStorage< T > Class Template Reference

Store address information about topics and provide convenient methods for adding new topics, removing them, etc. More...

#include <gz/transport/TopicStorage.hh>

Public Member Functions

 TopicStorage ()=default
 Constructor. More...
 
virtual ~TopicStorage ()=default
 Destructor. More...
 
bool AddPublisher (const T &_publisher)
 Add a new address associated to a given topic and node UUID. More...
 
void Clear ()
 Clear the content. More...
 
bool DelPublisherByNode (const std::string &_topic, const std::string &_pUuid, const std::string &_nUuid)
 Remove a publisher associated to a given topic and UUID pair. More...
 
bool DelPublishersByProc (const std::string &_pUuid)
 Remove all the publishers associated to a given process. More...
 
bool HasAnyPublishers (const std::string &_topic, const std::string &_pUuid) const
 Return if there is any publisher stored for the given topic and process UUID. More...
 
bool HasPublisher (const std::string &_addr) const
 Return if the requested publisher's address is stored. More...
 
bool HasTopic (const std::string &_topic) const
 Return if there is any publisher stored for the given topic. More...
 
bool HasTopic (const std::string &_topic, const std::string &_type) const
 Return if there is any publisher stored for the given topic and type. More...
 
void Print () const
 Print all the information for debugging purposes. More...
 
bool Publisher (const std::string &_topic, const std::string &_pUuid, const std::string &_nUuid, T &_publisher) const
 Get the address information for a given topic and node UUID. More...
 
bool Publishers (const std::string &_topic, std::map< std::string, std::vector< T >> &_info) const
 Get the map of publishers stored for a given topic. More...
 
void PublishersByNode (const std::string &_pUuid, const std::string &_nUuid, std::vector< T > &_pubs) const
 Given a process UUID and the node UUID, the function returns the list of publishers contained in the node. More...
 
void PublishersByProc (const std::string &_pUuid, std::map< std::string, std::vector< T >> &_pubs) const
 Given a process UUID, the function returns the list of publishers contained in this process UUID with its address information. More...
 
void TopicList (std::vector< std::string > &_topics) const
 Get the list of topics currently stored. More...
 

Detailed Description

template<typename T>
class gz::transport::TopicStorage< T >

Store address information about topics and provide convenient methods for adding new topics, removing them, etc.

Constructor & Destructor Documentation

◆ TopicStorage()

TopicStorage ( )
default

Constructor.

◆ ~TopicStorage()

virtual ~TopicStorage ( )
virtualdefault

Destructor.

Member Function Documentation

◆ AddPublisher()

bool AddPublisher ( const T &  _publisher)
inline

Add a new address associated to a given topic and node UUID.

Parameters
[in]_publisherNew publisher.
Returns
true if the new entry is added or false if not (because it was already stored).

References map< K, T >::find(), and std::find_if().

Referenced by Discovery< Pub >::Advertise().

◆ Clear()

void Clear ( )
inline

Clear the content.

References map< K, T >::clear().

Referenced by Discovery< Pub >::TopicList().

◆ DelPublisherByNode()

bool DelPublisherByNode ( const std::string _topic,
const std::string _pUuid,
const std::string _nUuid 
)
inline

Remove a publisher associated to a given topic and UUID pair.

Parameters
[in]_topicTopic name
[in]_pUuidProcess UUID of the publisher.
[in]_nUuidNode UUID of the publisher.
Returns
True when the publisher was removed or false otherwise.

References map< K, T >::erase(), map< K, T >::find(), std::remove_if(), and map< K, T >::size().

Referenced by Discovery< Pub >::Unadvertise().

◆ DelPublishersByProc()

bool DelPublishersByProc ( const std::string _pUuid)
inline

Remove all the publishers associated to a given process.

Parameters
[in]_pUuidProcess' UUID of the publisher.
Returns
True when at least one address was removed or false otherwise.

References map< K, T >::begin(), and map< K, T >::erase().

◆ HasAnyPublishers()

bool HasAnyPublishers ( const std::string _topic,
const std::string _pUuid 
) const
inline

Return if there is any publisher stored for the given topic and process UUID.

Parameters
[in]_topicTopic name.
[in]_pUuidProcess UUID of the publisher.
Returns
True if there is at least one address stored for the topic and process UUID.

References map< K, T >::at(), and TopicStorage< T >::HasTopic().

◆ HasPublisher()

bool HasPublisher ( const std::string _addr) const
inline

Return if the requested publisher's address is stored.

Parameters
[in]_addrPublisher's address requested
Returns
true if the publisher's address is stored.

◆ HasTopic() [1/2]

bool HasTopic ( const std::string _topic) const
inline

Return if there is any publisher stored for the given topic.

Parameters
[in]_topicTopic name.
Returns
True if there is at least one entry stored for the topic.

References map< K, T >::end(), and map< K, T >::find().

Referenced by TopicStorage< T >::HasAnyPublishers(), TopicStorage< T >::HasTopic(), and TopicStorage< T >::Publishers().

◆ HasTopic() [2/2]

bool HasTopic ( const std::string _topic,
const std::string _type 
) const
inline

Return if there is any publisher stored for the given topic and type.

Parameters
[in]_topicTopic name.
[in]_typeTopic type.
Returns
True if there is at least one entry stored for the topic and type.

References map< K, T >::at(), std::find_if(), and TopicStorage< T >::HasTopic().

◆ Print()

void Print ( ) const
inline

Print all the information for debugging purposes.

References std::endl().

Referenced by Discovery< Pub >::PrintCurrentState().

◆ Publisher()

bool Publisher ( const std::string _topic,
const std::string _pUuid,
const std::string _nUuid,
T &  _publisher 
) const
inline

Get the address information for a given topic and node UUID.

Parameters
[in]_topicTopic name.
[in]_pUuidProcess UUID of the publisher.
[in]_nUuidNode UUID of the publisher.
[out]_publisherPublisher's information requested.
Returns
true if a publisher is found for the given topic and UUID pair

References map< K, T >::at(), map< K, T >::find(), and std::find_if().

Referenced by Discovery< Pub >::Unadvertise().

◆ Publishers()

bool Publishers ( const std::string _topic,
std::map< std::string, std::vector< T >> &  _info 
) const
inline

Get the map of publishers stored for a given topic.

Parameters
[in]_topicTopic name.
[out]_infoMap of publishers requested.
Returns
true if at least there is one publisher stored.

References map< K, T >::at(), and TopicStorage< T >::HasTopic().

Referenced by Discovery< Pub >::Discover(), Discovery< Pub >::Publishers(), and Discovery< Pub >::RemoteSubscribers().

◆ PublishersByNode()

void PublishersByNode ( const std::string _pUuid,
const std::string _nUuid,
std::vector< T > &  _pubs 
) const
inline

Given a process UUID and the node UUID, the function returns the list of publishers contained in the node.

Parameters
[in]_pUuidProcess UUID.
[in]_nUuidNode UUID.
[out]_pubsVector of publishers.

References vector< T >::clear(), and vector< T >::push_back().

◆ PublishersByProc()

void PublishersByProc ( const std::string _pUuid,
std::map< std::string, std::vector< T >> &  _pubs 
) const
inline

Given a process UUID, the function returns the list of publishers contained in this process UUID with its address information.

Parameters
[in]_pUuidProcess UUID.
[out]_pubsMap of publishers where the keys are the node UUIDs and the value is its address information.

◆ TopicList()

void TopicList ( std::vector< std::string > &  _topics) const
inline

Get the list of topics currently stored.

Parameters
[out]_topicsList of stored topics.

References vector< T >::push_back().

Referenced by Discovery< Pub >::TopicList().


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