Public Member Functions | List of all members
ignition::transport::TopicStorage< T > Class Template Reference

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

#include <ignition/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...
 
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...
 
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 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 ignition::transport::TopicStorage< T >

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

Constructor & Destructor Documentation

◆ TopicStorage()

template<typename T>
ignition::transport::TopicStorage< T >::TopicStorage ( )
default

Constructor.

◆ ~TopicStorage()

template<typename T>
virtual ignition::transport::TopicStorage< T >::~TopicStorage ( )
virtualdefault

Destructor.

Member Function Documentation

◆ AddPublisher()

template<typename T>
bool ignition::transport::TopicStorage< T >::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).

◆ DelPublisherByNode()

template<typename T>
bool ignition::transport::TopicStorage< T >::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.

◆ DelPublishersByProc()

template<typename T>
bool ignition::transport::TopicStorage< T >::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.

◆ HasAnyPublishers()

template<typename T>
bool ignition::transport::TopicStorage< T >::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.

◆ HasPublisher()

template<typename T>
bool ignition::transport::TopicStorage< T >::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()

template<typename T>
bool ignition::transport::TopicStorage< T >::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.

◆ Print()

template<typename T>
void ignition::transport::TopicStorage< T >::Print ( ) const
inline

Print all the information for debugging purposes.

◆ Publisher()

template<typename T>
bool ignition::transport::TopicStorage< T >::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

◆ Publishers()

template<typename T>
bool ignition::transport::TopicStorage< T >::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.

◆ PublishersByProc()

template<typename T>
void ignition::transport::TopicStorage< T >::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
_pUuidProcess UUID.
_pubsMap of publishers where the keys are the node UUIDs and the value is its address information.

◆ TopicList()

template<typename T>
void ignition::transport::TopicStorage< T >::TopicList ( std::vector< std::string > &  _topics) const
inline

Get the list of topics currently stored.

Parameters
[out]_topicsList of stored topics.

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