24#ifndef GOBY_MIDDLEWARE_APPLICATION_SIMPLE_THREAD_H
25#define GOBY_MIDDLEWARE_APPLICATION_SIMPLE_THREAD_H
42template <
typename Config>
44 :
public Thread<Config, InterVehicleForwarder<InterProcessForwarder<InterThreadTransporter>>>,
68 SimpleThread(
const Config&
cfg, boost::units::quantity<boost::units::si::frequency> loop_freq,
99 std::unique_ptr<InterThreadTransporter> interthread_;
100 std::unique_ptr<InterProcessForwarder<InterThreadTransporter>> interprocess_;
101 std::unique_ptr<InterVehicleForwarder<InterProcessForwarder<InterThreadTransporter>>>
InnerTransporter & inner()
Implements the forwarder concept for the interprocess layer.
A transporter for the interthread layer.
Implements the forwarder concept for the intervehicle layer.
Implements Thread for a three layer middleware setup ([ intervehicle [ interprocess [ interthread ] ]...
InterProcessForwarder< InterThreadTransporter > & interprocess()
Access the transporter on the interprocess layer (which wraps interthread)
SimpleThread(const Config &cfg, double loop_freq_hertz=0, int index=-1)
Construct a thread with a given configuration, optionally a loop frequency and/or index.
InterThreadTransporter & interthread()
Access the transporter on the interthread layer (this is the innermost transporter)
InterVehicleForwarder< InterProcessForwarder< InterThreadTransporter > > & intervehicle()
Access the transporter on the intervehicle layer (which wraps interprocess and interthread)
SimpleThread(const Config &cfg, boost::units::quantity< boost::units::si::frequency > loop_freq, int index=-1)
Construct a thread with a given configuration, a loop frequency (using boost::units) and optionally a...
Represents a thread of execution within the Goby middleware, interleaving periodic events (loop()) wi...
void set_transporter(InterVehicleForwarder< InterProcessForwarder< InterThreadTransporter > > *transporter)
InterVehicleForwarder< InterProcessForwarder< InterThreadTransporter > > & transporter() const
const Config & cfg() const
The global namespace for the Goby project.