mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
Loading...
Searching...
No Matches
mrs_lib::SubscriberHandler< MessageType >::Impl< MessageType > Class Template Reference
+ Inheritance diagram for mrs_lib::SubscriberHandler< MessageType >::Impl< MessageType >:

Public Types

using timeout_callback_t = typename SubscriberHandler< MessageType >::timeout_callback_t
 
using message_callback_t = typename SubscriberHandler< MessageType >::message_callback_t
 
using data_callback_t = std::function< void(const typename MessageType::ConstSharedPtr &)>
 

Public Member Functions

 Impl (const SubscriberHandlerOptions &options, const message_callback_t &message_callback=message_callback_t())
 
virtual MessageType::ConstSharedPtr getMsg ()
 
virtual MessageType::ConstSharedPtr peekMsg () const
 
virtual bool hasMsg () const
 
virtual bool newMsg () const
 
virtual bool usedMsg () const
 
virtual MessageType::ConstSharedPtr waitForNew (const rclcpp::Duration &timeout)
 
virtual rclcpp::Time lastMsgTime () const
 
virtual std::string topicName () const
 
virtual uint32_t getNumPublishers () const
 
virtual void setNoMessageTimeout (const rclcpp::Duration &timeout)
 
virtual void start ()
 
virtual void stop ()
 

Protected Member Functions

void default_timeout_callback (const std::string &topic_name, const rclcpp::Time &last_msg)
 
void process_new_message (const typename MessageType::ConstSharedPtr &msg)
 
virtual void data_callback (const typename MessageType::ConstSharedPtr &msg)
 

Protected Attributes

rclcpp::Node::SharedPtr m_node
 
rclcpp::Subscription< MessageType >::SharedPtr m_sub
 
rclcpp::QoS m_qos = rclcpp::SystemDefaultsQoS()
 
rclcpp::SubscriptionOptions m_sub_opts
 
std::string m_topic_name
 
std::string m_node_name
 
bool m_got_data
 
std::mutex m_new_data_mtx
 
std::condition_variable m_new_data_cv
 
bool m_new_data
 
bool m_used_data
 
std::shared_ptr< mrs_lib::TimeoutManagerm_timeout_manager
 
std::optional< mrs_lib::TimeoutManager::timeout_id_t > m_timeout_id
 
mrs_lib::TimeoutManager::callback_t m_timeout_mgr_callback
 
rclcpp::Time m_latest_message_time
 
MessageType::ConstSharedPtr m_latest_message
 
message_callback_t m_message_callback
 

Friends

class SubscriberHandler< MessageType >
 

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