Class ROSClientsCache
Defined in File ros_clients_cache.hpp
Class Documentation
-
class ROSClientsCache
Centralized cache for managing ROS 2 client objects.
This class provides a thread-safe cache for storing and reusing ROS 2 client objects such as publishers, service clients, and action clients. This helps reduce resource usage and improves performance by avoiding duplicate creation of client objects.
The cache is organized by client type and uses unique keys based on:
Node name
Message/Service/Action type
Topic/Service/Action name
Callback group name
QoS profile
All methods are thread-safe using internal locking mechanisms.
Public Static Functions
Get an existing action client from the cache or create a new one.
- Template Parameters:
ActionT – The type of the action.
- Parameters:
node – The ROS 2 node to use.
action_name – The name of the action.
callback_group – The callback group for the action client (optional).
- Returns:
A shared pointer to the cached or newly created action client.
Get an existing service client from the cache or create a new one.
- Template Parameters:
ServiceT – The type of the service.
- Parameters:
node – The ROS 2 node to use.
service_name – The name of the service.
callback_group – The callback group for the service client (optional).
- Returns:
A shared pointer to the cached or newly created service client.
Get an existing publisher from the cache or create a new one.
- Template Parameters:
MsgT – The type of the message.
- Parameters:
node – The ROS 2 node to use.
topic_name – The name of the topic.
qos_profile – The QoS profile for the publisher.
callback_group – The callback group for the publisher (optional).
- Returns:
A shared pointer to the cached or newly created publisher.
-
static void clear_action_clients()
Clear the action clients cache.
-
static void clear_service_clients()
Clear the service clients cache.
-
static void clear_publishers()
Clear the publishers cache.
-
static void clear_all()
Clear all clients caches.
-
static size_t get_action_clients_count()
Get the number of cached action clients.
- Returns:
The number of cached action clients.
-
static size_t get_service_clients_count()
Get the number of cached service clients.
- Returns:
The number of cached service clients.
-
static size_t get_publishers_count()
Get the number of cached publishers.
- Returns:
The number of cached publishers.
-
static std::map<std::string, size_t> get_cache_stats()
Get statistics about all caches.
- Returns:
A map with cache statistics.