Implements an Application for a two layer middleware setup ([ intervehicle [ interprocess ] ]) based around InterVehicleForwarder without any interthread communications layer. This class isn't used directly by user applications, for that use a specific implementation, e.g. zeromq::SingleThreadApplication.
More...
#include <goby/middleware/application/single_thread.h>
|
| SingleThreadApplication (double loop_freq_hertz=0) |
| Construct the application calling loop() at the given frequency (double overload) More...
|
|
| SingleThreadApplication (boost::units::quantity< boost::units::si::frequency > loop_freq) |
| Construct the application calling loop() at the given frequency (boost::units overload) More...
|
|
virtual | ~SingleThreadApplication () |
|
| Application () |
|
virtual | ~Application () |
|
| Thread (const Config &cfg, InterVehicleForwarder< InterProcessPortal<> > *transporter, int index) |
| Construct a thread with a given configuration, underlying transporter, and index (for multiple instantiations), but without any loop() frequency. More...
|
|
| Thread (const Config &cfg, InterVehicleForwarder< InterProcessPortal<> > *transporter, double loop_freq_hertz=0, int index=-1) |
| Construct a thread with all possible metadata (using double to specify frequency in Hertz) More...
|
|
| Thread (const Config &cfg, InterVehicleForwarder< InterProcessPortal<> > *transporter, boost::units::quantity< boost::units::si::frequency > loop_freq, int index=-1) |
| Construct a thread with all possible metadata (using boost::units to specify frequency) More...
|
|
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. More...
|
|
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) |
|
template<class Config, template< class=NullTransporter > class InterProcessPortal>
class goby::middleware::SingleThreadApplication< Config, InterProcessPortal >
Implements an Application for a two layer middleware setup ([ intervehicle [ interprocess ] ]) based around InterVehicleForwarder without any interthread communications layer. This class isn't used directly by user applications, for that use a specific implementation, e.g. zeromq::SingleThreadApplication.
- Template Parameters
-
Definition at line 50 of file single_thread.h.
◆ SingleThreadApplication() [1/2]
template<class Config , template< class=NullTransporter > class InterProcessPortal>
Construct the application calling loop() at the given frequency (double overload)
- Parameters
-
loop_freq_hertz | The frequency at which to attempt to call loop(), assuming the main thread isn't blocked handling transporter callbacks (e.g. subscribe callbacks). Zero or negative indicates loop() will never be called. |
Definition at line 69 of file single_thread.h.
◆ SingleThreadApplication() [2/2]
template<class Config , template< class=NullTransporter > class InterProcessPortal>
Construct the application calling loop() at the given frequency (boost::units overload)
- Parameters
-
loop_freq | The frequency at which to attempt to call loop(), assuming the main thread isn't blocked handling transporter callbacks (e.g. subscribe callbacks). Zero or negative indicates loop() will never be called. |
Definition at line 77 of file single_thread.h.
◆ ~SingleThreadApplication()
template<class Config , template< class=NullTransporter > class InterProcessPortal>
◆ health()
template<class Config , template< class=NullTransporter > class InterProcessPortal>
|
inlineoverrideprotectedvirtual |
◆ interprocess()
template<class Config , template< class=NullTransporter > class InterProcessPortal>
◆ intervehicle()
template<class Config , template< class=NullTransporter > class InterProcessPortal>
◆ post_initialize()
template<class Config , template< class=NullTransporter > class InterProcessPortal>
|
inlineoverrideprotectedvirtual |
◆ coroner::Application< SingleThreadApplication< Config, InterProcessPortal > >
template<class Config , template< class=NullTransporter > class InterProcessPortal>
◆ terminate::Application< SingleThreadApplication< Config, InterProcessPortal > >
template<class Config , template< class=NullTransporter > class InterProcessPortal>
The documentation for this class was generated from the following file: