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

Public Types

using timeout_callback_t = typename impl_class_t::timeout_callback_t
 
using message_callback_t = typename impl_class_t::message_callback_t
 
- Public Types inherited from mrs_lib::SubscriberHandler< MessageType >::Impl< MessageType >
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

 ImplThreadsafe (const SubscriberHandlerOptions &options, const message_callback_t &message_callback=message_callback_t())
 
virtual bool hasMsg () const override
 
virtual bool newMsg () const override
 
virtual bool usedMsg () const override
 
virtual MessageType::ConstSharedPtr getMsg () override
 
virtual MessageType::ConstSharedPtr peekMsg () const override
 
virtual rclcpp::Time lastMsgTime () const override
 
virtual std::string topicName () const override
 
virtual void start () override
 
virtual void stop () override
 
- Public Member Functions inherited from mrs_lib::SubscriberHandler< MessageType >::Impl< MessageType >
 Impl (const SubscriberHandlerOptions &options, const message_callback_t &message_callback=message_callback_t())
 
virtual MessageType::ConstSharedPtr waitForNew (const rclcpp::Duration &timeout)
 
virtual uint32_t getNumPublishers () const
 
virtual void setNoMessageTimeout (const rclcpp::Duration &timeout)
 

Protected Member Functions

virtual void data_callback (const typename MessageType::ConstSharedPtr &msg) override
 
- Protected Member Functions inherited from mrs_lib::SubscriberHandler< MessageType >::Impl< MessageType >
void default_timeout_callback (const std::string &topic_name, const rclcpp::Time &last_msg)
 
void process_new_message (const typename MessageType::ConstSharedPtr &msg)
 

Friends

class SubscriberHandler< MessageType >
 

Additional Inherited Members

- Protected Attributes inherited from mrs_lib::SubscriberHandler< MessageType >::Impl< MessageType >
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
 

Member Function Documentation

◆ data_callback()

template<typename MessageType >
template<typename MessageType >
virtual void mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::data_callback ( const typename MessageType::ConstSharedPtr &  msg)
inlineoverrideprotectedvirtual

◆ getMsg()

template<typename MessageType >
template<typename MessageType >
virtual MessageType::ConstSharedPtr mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::getMsg ( )
inlineoverridevirtual

◆ hasMsg()

template<typename MessageType >
template<typename MessageType >
virtual bool mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::hasMsg ( ) const
inlineoverridevirtual

◆ lastMsgTime()

template<typename MessageType >
template<typename MessageType >
virtual rclcpp::Time mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::lastMsgTime ( ) const
inlineoverridevirtual

◆ newMsg()

template<typename MessageType >
template<typename MessageType >
virtual bool mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::newMsg ( ) const
inlineoverridevirtual

◆ peekMsg()

template<typename MessageType >
template<typename MessageType >
virtual MessageType::ConstSharedPtr mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::peekMsg ( ) const
inlineoverridevirtual

◆ start()

template<typename MessageType >
template<typename MessageType >
virtual void mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::start ( )
inlineoverridevirtual

◆ stop()

template<typename MessageType >
template<typename MessageType >
virtual void mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::stop ( )
inlineoverridevirtual

◆ topicName()

template<typename MessageType >
template<typename MessageType >
virtual std::string mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::topicName ( ) const
inlineoverridevirtual

◆ usedMsg()

template<typename MessageType >
template<typename MessageType >
virtual bool mrs_lib::SubscriberHandler< MessageType >::ImplThreadsafe< MessageType >::usedMsg ( ) const
inlineoverridevirtual

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