Gazebo Transport

API Reference

13.4.0
HandlerStorage< T > Class Template Reference

Class to store and manage service call handlers. More...

#include <HandlerStorage.hh>

Public Member Functions

 HandlerStorage ()=default
 Constructor. More...
 
virtual ~HandlerStorage ()=default
 Destructor. More...
 
void AddHandler (const std::string &_topic, const std::string &_nUuid, const std::shared_ptr< T > &_handler)
 Add a request handler to a topic. A request handler stores the callback and types associated to a service call request. More...
 
TopicServiceCalls_MAllHandlers ()
 Get a reference to all the handlers. More...
 
bool FirstHandler (const std::string &_topic, const std::string &_msgTypeName, std::shared_ptr< T > &_handler) const
 Get the first handler for a topic that matches a specific message type. More...
 
bool FirstHandler (const std::string &_topic, const std::string &_reqTypeName, const std::string &_repTypeName, std::shared_ptr< T > &_handler) const
 Get the first handler for a topic that matches a specific pair of request/response types. More...
 
bool Handler (const std::string &_topic, const std::string &_nUuid, const std::string &_hUuid, std::shared_ptr< T > &_handler) const
 Get a specific handler. More...
 
bool Handlers (const std::string &_topic, std::map< std::string, std::map< std::string, std::shared_ptr< T > >> &_handlers) const
 Get the data handlers for a topic. A request handler stores the callback and types associated to a service call request. More...
 
bool HasHandlersForNode (const std::string &_topic, const std::string &_nUuid) const
 Check if a node has at least one handler. More...
 
bool HasHandlersForTopic (const std::string &_topic) const
 Return true if we have stored at least one request for the topic. More...
 
bool RemoveHandler (const std::string &_topic, const std::string &_nUuid, const std::string &_reqUuid)
 Remove a request handler. The node's uuid is used as a key to remove the appropriate request handler. More...
 
bool RemoveHandlersForNode (const std::string &_topic, const std::string &_nUuid)
 Remove all the handlers from a given node. More...
 

Detailed Description

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

Class to store and manage service call handlers.

gz/transport/HandlerStorage.hh

Constructor & Destructor Documentation

◆ HandlerStorage()

HandlerStorage ( )
default

Constructor.

◆ ~HandlerStorage()

virtual ~HandlerStorage ( )
virtualdefault

Destructor.

Member Function Documentation

◆ AddHandler()

void AddHandler ( const std::string _topic,
const std::string _nUuid,
const std::shared_ptr< T > &  _handler 
)
inline

Add a request handler to a topic. A request handler stores the callback and types associated to a service call request.

Parameters
[in]_topicTopic name.
[in]_nUuidNode's unique identifier.
[in]_handlerRequest handler.

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

◆ AllHandlers()

TopicServiceCalls_M& AllHandlers ( )
inline

Get a reference to all the handlers.

Returns
All the handlers.

◆ FirstHandler() [1/2]

bool FirstHandler ( const std::string _topic,
const std::string _msgTypeName,
std::shared_ptr< T > &  _handler 
) const
inline

Get the first handler for a topic that matches a specific message type.

Parameters
[in]_topicTopic name.
[in]_msgTypeNameType of the msg in string format.
[out]_handlerhandler.
Returns
true if a handler was found.

References map< K, T >::at(), map< K, T >::end(), map< K, T >::find(), and gz::transport::kGenericMessageType.

◆ FirstHandler() [2/2]

bool FirstHandler ( const std::string _topic,
const std::string _reqTypeName,
const std::string _repTypeName,
std::shared_ptr< T > &  _handler 
) const
inline

Get the first handler for a topic that matches a specific pair of request/response types.

Parameters
[in]_topicTopic name.
[in]_reqTypeNameType of the service request.
[in]_repTypeNameType of the service response.
[out]_handlerhandler.
Returns
true if a handler was found.

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

◆ Handler()

bool Handler ( const std::string _topic,
const std::string _nUuid,
const std::string _hUuid,
std::shared_ptr< T > &  _handler 
) const
inline

Get a specific handler.

Parameters
[in]_topicTopic name.
[in]_nUuidNode UUID of the handler.
[in]_hUuidHandler UUID.
[out]_handlerHandler requested.
Returns
true if the handler was found.

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

◆ Handlers()

bool Handlers ( const std::string _topic,
std::map< std::string, std::map< std::string, std::shared_ptr< T > >> &  _handlers 
) const
inline

Get the data handlers for a topic. A request handler stores the callback and types associated to a service call request.

Parameters
[in]_topicTopic name.
[out]_handlersRequest handlers. The key of _handlers is the topic name. The value is another map, where the key is the node UUID and the value is a smart pointer to the handler.
Returns
true if the topic contains at least one request.

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

◆ HasHandlersForNode()

bool HasHandlersForNode ( const std::string _topic,
const std::string _nUuid 
) const
inline

Check if a node has at least one handler.

Parameters
[in]_topicTopic name.
[in]_nUuidNode's unique identifier.
Returns
true if the node has at least one handler registered.

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

◆ HasHandlersForTopic()

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

Return true if we have stored at least one request for the topic.

Parameters
[in]_topicTopic name.
Returns
true if we have stored at least one request for the topic.

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

◆ RemoveHandler()

bool RemoveHandler ( const std::string _topic,
const std::string _nUuid,
const std::string _reqUuid 
)
inline

Remove a request handler. The node's uuid is used as a key to remove the appropriate request handler.

Parameters
[in]_topicTopic name.
[in]_nUuidNode's unique identifier.
[in]_reqUuidRequest's UUID to remove.
Returns
True when the handler is removed or false otherwise.

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

◆ RemoveHandlersForNode()

bool RemoveHandlersForNode ( const std::string _topic,
const std::string _nUuid 
)
inline

Remove all the handlers from a given node.

Parameters
[in]_topicTopic name.
[in]_nUuidNode's unique identifier.
Returns
True when at least one handler was removed or false otherwise.

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


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