Goby3 3.5.1
2026.06.04
Loading...
Searching...
No Matches
goby::middleware::intervehicle::ModemDriverThread< ImplementationTag > Class Template Reference

Provides the modem driver thread used by InterVehiclePortal, templated on ImplementationTag so it uses the same InterProcessForwarder prefix as the portal's InnerTransporter. More...

#include <goby/middleware/transport/intervehicle/driver_thread.h>

Inheritance diagram for goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >:
goby::middleware::Thread< intervehicle::protobuf::PortalConfig::LinkConfig, InterProcessForwarder< InterThreadTransporter, ImplementationTag > >

Public Types

using buffer_data_type = goby::middleware::protobuf::SerializerTransporterMessage
using modem_id_type = goby::acomms::DynamicBuffer<buffer_data_type>::modem_id_type
using subbuffer_id_type = goby::acomms::DynamicBuffer<buffer_data_type>::subbuffer_id_type
Public Types inherited from goby::middleware::Thread< intervehicle::protobuf::PortalConfig::LinkConfig, InterProcessForwarder< InterThreadTransporter, ImplementationTag > >
using Transporter

Public Member Functions

 ModemDriverThread (const intervehicle::protobuf::PortalConfig::LinkConfig &cfg)
void loop () override
int tx_queue_size ()
Public Member Functions inherited from goby::middleware::Thread< intervehicle::protobuf::PortalConfig::LinkConfig, InterProcessForwarder< InterThreadTransporter, ImplementationTag > >
 Thread (const intervehicle::protobuf::PortalConfig::LinkConfig &cfg, InterProcessForwarder< InterThreadTransporter, ImplementationTag > *transporter, int index)
 Construct a thread with a given configuration, underlying transporter, and index (for multiple instantiations), but without any loop() frequency.
virtual ~Thread ()
void run (std::atomic< bool > &alive)
 Run the thread until the boolean reference passed is set false. This call blocks, and should be run in a std::thread by the caller.
int index () const
std::type_index type_index ()
void set_type_index (std::type_index type_i)
std::string name ()
void set_name (const std::string &name)
int uid ()
void set_uid (int uid)
double loop_frequency_hertz () const
decltype(loop_frequency_) loop_frequency () const
void set_loop_frequency_hertz (double loop_freq_hertz)
void set_loop_frequency (boost::units::quantity< boost::units::si::frequency > loop_freq)

Additional Inherited Members

Static Public Attributes inherited from goby::middleware::Thread< intervehicle::protobuf::PortalConfig::LinkConfig, InterProcessForwarder< InterThreadTransporter, ImplementationTag > >
static constexpr goby::middleware::Group shutdown_group_
static constexpr goby::middleware::Group joinable_group_
Protected Member Functions inherited from goby::middleware::Thread< intervehicle::protobuf::PortalConfig::LinkConfig, InterProcessForwarder< InterThreadTransporter, ImplementationTag > >
void set_transporter (InterProcessForwarder< InterThreadTransporter, ImplementationTag > *transporter)
double loop_max_frequency () const
void run_once ()
InterProcessForwarder< InterThreadTransporter, ImplementationTag > & transporter () const
const intervehicle::protobuf::PortalConfig::LinkConfigcfg () const
virtual void initialize ()
virtual void finalize ()
void thread_health (goby::middleware::protobuf::ThreadHealth &health)
virtual void health (goby::middleware::protobuf::ThreadHealth &health)
 Called when HealthRequest is made by goby_coroner.
void thread_quit ()
bool alive ()

Detailed Description

template<typename ImplementationTag>
class goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >

Provides the modem driver thread used by InterVehiclePortal, templated on ImplementationTag so it uses the same InterProcessForwarder prefix as the portal's InnerTransporter.

Definition at line 132 of file driver_thread.h.

Member Typedef Documentation

◆ buffer_data_type

template<typename ImplementationTag>
using goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >::buffer_data_type = goby::middleware::protobuf::SerializerTransporterMessage

Definition at line 138 of file driver_thread.h.

◆ modem_id_type

template<typename ImplementationTag>
using goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >::modem_id_type = goby::acomms::DynamicBuffer<buffer_data_type>::modem_id_type

Definition at line 139 of file driver_thread.h.

◆ subbuffer_id_type

template<typename ImplementationTag>
using goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >::subbuffer_id_type = goby::acomms::DynamicBuffer<buffer_data_type>::subbuffer_id_type

Definition at line 140 of file driver_thread.h.

Constructor & Destructor Documentation

◆ ModemDriverThread()

template<typename ImplementationTag>
goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >::ModemDriverThread ( const intervehicle::protobuf::PortalConfig::LinkConfig & cfg)

Member Function Documentation

◆ loop()

◆ tx_queue_size()

template<typename ImplementationTag>
int goby::middleware::intervehicle::ModemDriverThread< ImplementationTag >::tx_queue_size ( )
inline

Definition at line 144 of file driver_thread.h.


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