Class ServiceActionResolver

Inheritance Relationships

Derived Type

Class Documentation

class ServiceActionResolver

Lookup interface for resolving services / actions by component namespace + operation name.

Decouples OperationManager from DiscoveryManager so the manager body compiles inside the neutral core layer without pulling rclcpp through the discovery_manager.hpp transitive include chain. DiscoveryManager implements this interface, but mock resolvers in unit tests can also.

Subclassed by ros2_medkit_gateway::DiscoveryManager

Public Functions

ServiceActionResolver() = default
ServiceActionResolver(const ServiceActionResolver&) = delete
ServiceActionResolver &operator=(const ServiceActionResolver&) = delete
ServiceActionResolver(ServiceActionResolver&&) = delete
ServiceActionResolver &operator=(ServiceActionResolver&&) = delete
virtual ~ServiceActionResolver() = default
virtual std::optional<ServiceInfo> find_service(const std::string &component_ns, const std::string &operation_name) const = 0

Resolve a service by component namespace + operation name.

Returns:

ServiceInfo if a match exists, std::nullopt otherwise.

virtual std::optional<ActionInfo> find_action(const std::string &component_ns, const std::string &operation_name) const = 0

Resolve an action by component namespace + operation name.

Returns:

ActionInfo if a match exists, std::nullopt otherwise.