All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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...
 
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 ignition::transport::TopicStorage< T >

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

Constructor & Destructor Documentation

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

Constructor.

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

Destructor.

Member Function Documentation

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).
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.
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.
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.
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.
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.
template<typename T>
bool ignition::transport::TopicStorage< T >::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.
template<typename T>
void ignition::transport::TopicStorage< T >::Print ( ) const
inline

Print all the information for debugging purposes.

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