Gazebo Transport

API Reference

14.0.0
HandlerStorage< T > Class Template Reference

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

#include <HandlerStorage.hh>

Public Member Functions

 HandlerStorage ()=default
 Constructor.
 
virtual ~HandlerStorage ()=default
 Destructor.
 
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.
 
TopicServiceCalls_MAllHandlers ()
 Get a reference to all the handlers.
 
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.
 
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.
 
bool Handler (const std::string &_topic, const std::string &_nUuid, const std::string &_hUuid, std::shared_ptr< T > &_handler) const
 Get a specific handler.
 
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.
 
bool HasHandlersForNode (const std::string &_topic, const std::string &_nUuid) const
 Check if a node has at least one handler.
 
bool HasHandlersForTopic (const std::string &_topic) const
 Return true if we have stored at least one request for the topic.
 
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.
 
bool RemoveHandlersForNode (const std::string &_topic, const std::string &_nUuid)
 Remove all the handlers from a given node.
 

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()

template<typename T >
HandlerStorage ( )
default

Constructor.

◆ ~HandlerStorage()

template<typename T >
virtual ~HandlerStorage ( )
virtualdefault

Destructor.

Member Function Documentation

◆ AddHandler()

template<typename T >
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()

template<typename T >
TopicServiceCalls_M & AllHandlers ( )
inline

Get a reference to all the handlers.

Returns
All the handlers.

◆ FirstHandler() [1/2]

template<typename T >
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]

template<typename T >
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()

template<typename T >
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()

template<typename T >
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()

template<typename T >
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()

template<typename T >
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()

template<typename T >
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()

template<typename T >
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: