Go to the documentation of this file.
24 #ifndef GOBY_MIDDLEWARE_APPLICATION_SIMPLE_THREAD_H
25 #define GOBY_MIDDLEWARE_APPLICATION_SIMPLE_THREAD_H
42 template <
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>>>
Implements the forwarder concept for the intervehicle layer.
The global namespace for the Goby project.
const Config & cfg() const
A transporter for the interthread layer.
void set_transporter(InterVehicleForwarder< InterProcessForwarder< InterThreadTransporter > > *transporter)
InterProcessForwarder< InterThreadTransporter > & interprocess()
Access the transporter on the interprocess layer (which wraps interthread)
Implements Thread for a three layer middleware setup ([ intervehicle [ interprocess [ interthread ] ]...
Represents a thread of execution within the Goby middleware, interleaving periodic events (loop()) wi...
InterVehicleForwarder< InterProcessForwarder< InterThreadTransporter > > & transporter() const
InnerTransporter & inner()
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)
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...
InterVehicleForwarder< InterProcessForwarder< InterThreadTransporter > > & intervehicle()
Access the transporter on the intervehicle layer (which wraps interprocess and interthread)