Goby3
3.1.5a
2024.05.23
|
Base class for creating multiple thread applications. More...
#include <goby/middleware/application/multi_thread.h>
Public Member Functions | |
template<typename ThreadType > | |
void | launch_thread () |
template<typename ThreadType > | |
void | launch_thread (int index) |
template<typename ThreadType , typename ThreadConfig > | |
void | launch_thread (const ThreadConfig &cfg) |
template<typename ThreadType , typename ThreadConfig > | |
void | launch_thread (int index, const ThreadConfig &cfg) |
template<typename ThreadType > | |
void | launch_thread_without_cfg () |
template<typename ThreadType > | |
void | launch_thread_without_cfg (int index) |
template<typename ThreadType > | |
void | join_thread (int index=-1) |
template<int i> | |
void | launch_timer (boost::units::quantity< boost::units::si::frequency > freq, std::function< void()> on_expire) |
template<int i> | |
void | join_timer () |
int | running_thread_count () |
Public Member Functions inherited from goby::middleware::Application< Config > | |
Application () | |
virtual | ~Application () |
Public Member Functions inherited from goby::middleware::Thread< Config, Transporter > | |
Thread (const Config &cfg, Transporter *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, Transporter *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, Transporter *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) |
Protected Types | |
using | MainThreadBase = Thread< Config, Transporter > |
Protected Member Functions | |
MultiThreadApplicationBase (boost::units::quantity< boost::units::si::frequency > loop_freq, Transporter *transporter) | |
virtual | ~MultiThreadApplicationBase () |
InterThreadTransporter & | interthread () |
virtual void | post_finalize () override |
Called just after finalize. More... | |
std::map< std::type_index, std::map< int, ThreadManagement > > & | threads () |
void | join_all_threads () |
Protected Member Functions inherited from goby::middleware::Application< Config > | |
virtual void | pre_initialize () |
Called just before initialize. More... | |
virtual void | initialize () |
Perform any initialize tasks that couldn't be done in the constructor. More... | |
virtual void | post_initialize () |
Called just after initialize. More... | |
virtual void | pre_finalize () |
Called just before finalize. More... | |
virtual void | finalize () |
Perform any final cleanup actions just before the destructor is called. More... | |
void | quit (int return_value=0) |
Requests a clean exit. More... | |
const Config & | app_cfg () |
Accesses configuration object passed at launch. More... | |
const util::UTMGeodesy & | geodesy () |
Accesses the geodetic conversion tool if lat_origin and lon_origin were provided. More... | |
bool | has_geodesy () |
Returns if the geodesy tool is configured with a datum. More... | |
std::string | app_name () |
void | configure_geodesy (goby::util::UTMGeodesy::LatLonPoint datum) |
Protected Member Functions inherited from goby::middleware::Thread< Config, Transporter > | |
Thread (const Config &cfg, boost::units::quantity< boost::units::si::frequency > loop_freq, int index=-1) | |
void | set_transporter (Transporter *transporter) |
virtual void | loop () |
double | loop_frequency_hertz () const |
decltype(loop_frequency_) | loop_frequency () const |
double | loop_max_frequency () const |
void | run_once () |
Transporter & | transporter () const |
const Config & | cfg () 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. More... | |
void | thread_quit () |
bool | alive () |
Additional Inherited Members | |
Public Types inherited from goby::middleware::Application< Config > | |
using | ConfigType = Config |
Public Types inherited from goby::middleware::Thread< Config, Transporter > | |
using | Transporter = Transporter |
Static Public Attributes inherited from goby::middleware::Thread< Config, Transporter > | |
static constexpr goby::middleware::Group | shutdown_group_ |
static constexpr goby::middleware::Group | joinable_group_ |
Base class for creating multiple thread applications.
Config | Configuration type |
Transporter | Transporter type |
Definition at line 97 of file multi_thread.h.
|
protected |
Definition at line 180 of file multi_thread.h.
|
inlineprotected |
Definition at line 182 of file multi_thread.h.
|
inlineprotectedvirtual |
Definition at line 194 of file multi_thread.h.
|
inlineprotected |
Definition at line 196 of file multi_thread.h.
|
inlineprotected |
Definition at line 201 of file multi_thread.h.
|
inline |
Definition at line 158 of file multi_thread.h.
|
inline |
Definition at line 175 of file multi_thread.h.
|
inline |
Definition at line 129 of file multi_thread.h.
|
inline |
Definition at line 139 of file multi_thread.h.
|
inline |
Definition at line 133 of file multi_thread.h.
|
inline |
Definition at line 144 of file multi_thread.h.
|
inline |
Definition at line 149 of file multi_thread.h.
|
inline |
Definition at line 153 of file multi_thread.h.
|
inline |
Definition at line 167 of file multi_thread.h.
|
inlineoverrideprotectedvirtual |
Called just after finalize.
Reimplemented from goby::middleware::Application< Config >.
Definition at line 197 of file multi_thread.h.
|
inline |
Definition at line 177 of file multi_thread.h.
|
inlineprotected |
Definition at line 199 of file multi_thread.h.