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... | |
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()
|
default |
Constructor.
◆ ~TopicStorage()
|
virtualdefault |
Destructor.
Member Function Documentation
◆ AddPublisher()
|
inline |
Add a new address associated to a given topic and node UUID.
- Parameters
-
[in] _publisher New publisher.
- Returns
- true if the new entry is added or false if not (because it was already stored).
Referenced by Discovery< Pub >::Advertise().
◆ DelPublisherByNode()
|
inline |
Remove a publisher associated to a given topic and UUID pair.
- Parameters
-
[in] _topic Topic name [in] _pUuid Process UUID of the publisher. [in] _nUuid Node UUID of the publisher.
- Returns
- True when the publisher was removed or false otherwise.
Referenced by Discovery< Pub >::Unadvertise().
◆ DelPublishersByProc()
|
inline |
Remove all the publishers associated to a given process.
- Parameters
-
[in] _pUuid Process' UUID of the publisher.
- Returns
- True when at least one address was removed or false otherwise.
◆ HasAnyPublishers()
|
inline |
Return if there is any publisher stored for the given topic and process UUID.
- Parameters
-
[in] _topic Topic name. [in] _pUuid Process UUID of the publisher.
- Returns
- True if there is at least one address stored for the topic and process UUID.
◆ HasPublisher()
|
inline |
Return if the requested publisher's address is stored.
- Parameters
-
[in] _addr Publisher's address requested
- Returns
- true if the publisher's address is stored.
◆ HasTopic() [1/2]
|
inline |
Return if there is any publisher stored for the given topic.
- Parameters
-
[in] _topic Topic name.
- Returns
- True if there is at least one entry stored for the topic.
Referenced by TopicStorage< Pub >::HasAnyPublishers(), TopicStorage< Pub >::HasTopic(), and TopicStorage< Pub >::Publishers().
◆ HasTopic() [2/2]
|
inline |
Return if there is any publisher stored for the given topic and type.
- Parameters
-
[in] _topic Topic name. [in] _type Topic type.
- Returns
- True if there is at least one entry stored for the topic and type.
◆ Print()
|
inline |
Print all the information for debugging purposes.
Referenced by Discovery< Pub >::PrintCurrentState().
◆ Publisher()
|
inline |
Get the address information for a given topic and node UUID.
- Parameters
-
[in] _topic Topic name. [in] _pUuid Process UUID of the publisher. [in] _nUuid Node UUID of the publisher. [out] _publisher Publisher's information requested.
- Returns
- true if a publisher is found for the given topic and UUID pair
Referenced by Discovery< Pub >::Unadvertise().
◆ Publishers()
|
inline |
Get the map of publishers stored for a given topic.
- Parameters
-
[in] _topic Topic name. [out] _info Map of publishers requested.
- Returns
- true if at least there is one publisher stored.
Referenced by Discovery< Pub >::Discover(), and Discovery< Pub >::Publishers().
◆ PublishersByNode()
|
inline |
Given a process UUID and the node UUID, the function returns the list of publishers contained in the node.
- Parameters
-
[in] _pUuid Process UUID. [in] _nUuid Node UUID. [out] _pubs Vector of publishers.
◆ PublishersByProc()
|
inline |
Given a process UUID, the function returns the list of publishers contained in this process UUID with its address information.
- Parameters
-
[in] _pUuid Process UUID. [out] _pubs Map of publishers where the keys are the node UUIDs and the value is its address information.
◆ TopicList()
|
inline |
Get the list of topics currently stored.
- Parameters
-
[out] _topics List of stored topics.
Referenced by Discovery< Pub >::TopicList().
The documentation for this class was generated from the following file: