Capabilities2 0.3.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
capabilities2_runner::TopicRunner< TopicT > Class Template Reference

Topic runner base class. More...

#include "topic_runner.hpp"

Inheritance diagram for capabilities2_runner::TopicRunner< TopicT >:
Inheritance graph
[legend]
Collaboration diagram for capabilities2_runner::TopicRunner< TopicT >:
Collaboration graph
[legend]

Public Member Functions

 TopicRunner ()
 Constructor which needs to be empty due to plugin semantics.
 
virtual void init_subscriber (rclcpp::Node::SharedPtr node, const runner_opts &run_config, const std::string &topic_name)
 Initializer function for initializing the topic runner in place of constructor due to plugin semantics.
 
virtual void stop (const std::string &bond_id, const std::string &instance_id="") override
 stop function to cease functionality and shutdown
 
- Public Member Functions inherited from capabilities2_runner::ThreadTriggerRunner
 ThreadTriggerRunner ()
 
 ~ThreadTriggerRunner ()
 
virtual void trigger (capabilities2_events::EventParameters &parameters, const std::string &bond_id, const std::string &instance_id) override
 Trigger the runner.
 
- Public Member Functions inherited from capabilities2_runner::RunnerBase
 RunnerBase ()
 
 ~RunnerBase ()=default
 
virtual void start (rclcpp::Node::SharedPtr node, const runner_opts &run_config, const std::string &bond_id)=0
 start the runner
 
void init_base (rclcpp::Node::SharedPtr node, const runner_opts &run_config)
 Initializer function for initializing the base runner in place of constructor due to plugin semantics.
 
void enable_events (std::shared_ptr< capabilities2_events::EventBase > events)
 enable events system for this runner
 
void add_connection (const std::string &connection_id, const capabilities2_msgs::msg::CapabilityEventCode &type, const capabilities2_msgs::msg::Capability &target, std::function< void(const std::string &, const std::string &, const std::string &, capabilities2_events::EventParameters)> callback)
 make EventNode::add_connection public method on runner api.
 
const std::string get_package_name ()
 get the package name to which the runner belong to.
 
const std::string & get_interface () const
 get the interface of the runner.
 
const std::string & get_provider () const
 get the provider of the runner.
 
const std::string & get_started_by () const
 get the starter of the runner.
 
const std::string & get_pid () const
 get the pid of the runner.
 
- Public Member Functions inherited from capabilities2_events::EventNode
 EventNode (std::shared_ptr< EventBase > event_emitter=nullptr)
 
virtual ~EventNode ()=default
 
void emit_event (const std::string &bond_id, const std::string &instance_id, const uint8_t &event_type, capabilities2_events::EventParameters parameters=capabilities2_events::EventParameters())
 emit an event from this event node to all matching connections
 

Protected Member Functions

virtual void execution (capabilities2_events::EventParameters parameters, const std::string &thread_id) override
 Trigger process to be executed.
 
void callback (const typename TopicT::SharedPtr &msg)
 Callback to be executed when receiving a message.
 
- Protected Member Functions inherited from capabilities2_runner::RunnerBase
virtual capabilities2_events::EventParameters param_on_started ()
 Update on_started event parameters with new data if available.
 
virtual capabilities2_events::EventParameters param_on_stopped ()
 Update on_stopped event parameters with new data if available.
 
virtual capabilities2_events::EventParameters param_on_failure ()
 Update on_failure event parameters with new data if available.
 
virtual capabilities2_events::EventParameters param_on_success ()
 Update on_success event parameters with new data if available.
 
const std::string get_resource_name_by_type (const std::string &resource_type, const std::string &msg_type) const
 Get a resource name by data type from the config.
 
const std::string get_parameter_name_by_type (const std::string &param_type) const
 Get a parameter name by type.
 
const std::string get_topic_name_by_type (const std::string &topic_type) const
 Get a topic name by type.
 
const std::string get_service_name_by_type (const std::string &srv_type) const
 Get a service name by type.
 
const std::string get_action_name_by_type (const std::string &action_type) const
 Get the action name by type object.
 
const std::string get_first_resource_name (const std::string &resource_type) const
 get first name of a given resource
 
const std::string get_first_parameter_name () const
 Get the first parameter name.
 
const std::string get_first_topic_name () const
 Get the first topic name.
 
const std::string get_first_service_name () const
 Get the first service name.
 
const std::string get_first_action_name () const
 Get the first action name.
 
void emit_started (const std::string &bond_id, const std::string &instance_id, capabilities2_events::EventParameters parameters=capabilities2_events::EventParameters())
 emit STARTED event
 
void emit_stopped (const std::string &bond_id, const std::string &instance_id, capabilities2_events::EventParameters parameters=capabilities2_events::EventParameters())
 emit STOPPED event
 
void emit_succeeded (const std::string &bond_id, const std::string &instance_id, capabilities2_events::EventParameters parameters=capabilities2_events::EventParameters())
 emit SUCCEEDED event
 
void emit_failed (const std::string &bond_id, const std::string &instance_id, capabilities2_events::EventParameters parameters=capabilities2_events::EventParameters())
 emit FAILED event
 
- Protected Member Functions inherited from capabilities2_events::EventNode
void set_source (const capabilities2_msgs::msg::Capability &src)
 Set the source object.
 
void set_event_emitter (std::shared_ptr< EventBase > event_emitter)
 event emitter for this event node
 
void add_connection (const std::string &connection_id, const capabilities2_msgs::msg::CapabilityEventCode &type, const capabilities2_msgs::msg::Capability &target, EventBase::event_callback_t event_cb)
 make EventNode::add_connection public method on runner api.
 
void remove_connection (const std::string &connection_id)
 Remove a connection by its id.
 
void clear_connections ()
 clear all connections from this event node
 
std::vector< capabilities2_msgs::msg::CapabilityConnection > list_connections () const
 List all connections from this event node.
 
bool has_connection (const std::string &connection_id) const
 Check if a connection exists.
 
size_t connection_count () const
 current connection count
 
const std::string & get_id () const
 unique id of this event node
 
const capabilities2_msgs::msg::Capability & get_source () const
 source capability of this event node
 
bool is_event_emitter_set () const
 event emitter is set on this node
 

Protected Attributes

rclcpp::Subscription< TopicT >::SharedPtr subscription_
 parameter to be used in the on_started event emission
 
TopicT::SharedPtr latest_message_
 parameter to store the latest message received in the callback for use in the trigger execution
 
std::condition_variable cv_
 condition variable and mutex for synchronizing the callback and trigger execution
 
std::mutex block_mutex_
 
bool completed_
 
- Protected Attributes inherited from capabilities2_runner::ThreadTriggerRunner
std::map< std::string, std::thread > execution_thread_pool_
 dictionary of threads that executes the execute function
 
std::mutex mutex_
 mutex for threadpool synchronisation.
 
std::atomic< bool > execution_should_stop_
 flag to signal execution threads to stop.
 
- Protected Attributes inherited from capabilities2_runner::RunnerBase
rclcpp::Node::SharedPtr node_
 shared pointer to the capabilities node Allows to use ros node related functionalities
 
runner_opts run_config_
 run_config_ runner configuration
 

Additional Inherited Members

- Static Public Member Functions inherited from capabilities2_runner::ThreadTriggerRunner
static const std::string bond_from_thread_id (const std::string &thread_id)
 helper function to extract bond_id from thread_id
 
static const std::string instance_from_thread_id (const std::string &thread_id)
 helper function to extract instance_id from thread_id
 

Detailed Description

template<typename TopicT>
class capabilities2_runner::TopicRunner< TopicT >

Topic runner base class.

Create an topic subsriber for data grabbing capability

Constructor & Destructor Documentation

◆ TopicRunner()

template<typename TopicT >
capabilities2_runner::TopicRunner< TopicT >::TopicRunner ( )
inline

Constructor which needs to be empty due to plugin semantics.

Member Function Documentation

◆ callback()

template<typename TopicT >
void capabilities2_runner::TopicRunner< TopicT >::callback ( const typename TopicT::SharedPtr &  msg)
inlineprotected

Callback to be executed when receiving a message.

This function is used grab the messages from the callback queue into a class parameter so that it can be used later on dering trigger

Parameters
msgmessage parameter

◆ execution()

template<typename TopicT >
virtual void capabilities2_runner::TopicRunner< TopicT >::execution ( capabilities2_events::EventParameters  parameters,
const std::string &  thread_id 
)
inlineoverrideprotectedvirtual

Trigger process to be executed.

This method utilizes paramters set via the trigger() function

Parameters
parameterspointer to tinyxml2::XMLElement that contains parameters
thread_idunique identifier for the execution thread

Implements capabilities2_runner::ThreadTriggerRunner.

◆ init_subscriber()

template<typename TopicT >
virtual void capabilities2_runner::TopicRunner< TopicT >::init_subscriber ( rclcpp::Node::SharedPtr  node,
const runner_opts run_config,
const std::string &  topic_name 
)
inlinevirtual

Initializer function for initializing the topic runner in place of constructor due to plugin semantics.

Parameters
nodeshared pointer to the capabilities node. Allows to use ros node related functionalities
run_configrunner configuration loaded from the yaml file
topic_nametopic name used in the yaml file, used to load specific configuration from the run_config

◆ stop()

template<typename TopicT >
virtual void capabilities2_runner::TopicRunner< TopicT >::stop ( const std::string &  bond_id,
const std::string &  instance_id = "" 
)
inlineoverridevirtual

stop function to cease functionality and shutdown

Implements capabilities2_runner::RunnerBase.

Member Data Documentation

◆ block_mutex_

template<typename TopicT >
std::mutex capabilities2_runner::TopicRunner< TopicT >::block_mutex_
protected

◆ completed_

template<typename TopicT >
bool capabilities2_runner::TopicRunner< TopicT >::completed_
protected

◆ cv_

template<typename TopicT >
std::condition_variable capabilities2_runner::TopicRunner< TopicT >::cv_
protected

condition variable and mutex for synchronizing the callback and trigger execution

◆ latest_message_

template<typename TopicT >
TopicT::SharedPtr capabilities2_runner::TopicRunner< TopicT >::latest_message_
mutableprotected

parameter to store the latest message received in the callback for use in the trigger execution

◆ subscription_

template<typename TopicT >
rclcpp::Subscription<TopicT>::SharedPtr capabilities2_runner::TopicRunner< TopicT >::subscription_
protected

parameter to be used in the on_started event emission


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