Go to the documentation of this file.
24 #ifndef GOBY_MIDDLEWARE_APPLICATION_SINGLE_THREAD_H
25 #define GOBY_MIDDLEWARE_APPLICATION_SINGLE_THREAD_H
27 #include <boost/units/systems/si.hpp>
52 public Thread<Config, InterVehicleForwarder<InterProcessPortal<>>>,
59 InterProcessPortal<> interprocess_;
81 intervehicle_(interprocess_)
88 this->
interprocess().template subscribe<goby::middleware::groups::datum_update>(
95 this->
interprocess().template publish<goby::middleware::groups::configuration>(
SingleThreadApplication(double loop_freq_hertz=0)
Construct the application calling loop() at the given frequency (double overload)
Implements the forwarder concept for the intervehicle layer.
The global namespace for the Goby project.
virtual void health(goby::middleware::protobuf::ThreadHealth &health) override
Called when HealthRequest is made by goby_coroner.
int run(const goby::middleware::ConfiguratorInterface< typename App::ConfigType > &cfgtor)
Run a Goby application using the provided Configurator.
virtual void post_initialize() override
Assume all required subscriptions are done in the Constructor or in initialize(). If this isn't the c...
detail namespace with internal helper functions
void set_state(::goby::middleware::protobuf::HealthState value)
SingleThreadApplication(boost::units::quantity< boost::units::si::frequency > loop_freq)
Construct the application calling loop() at the given frequency (boost::units overload)
virtual ~SingleThreadApplication()
void set_transporter(InterVehicleForwarder< InterProcessPortal<> > *transporter)
InterProcessPortalImplementation< InnerTransporter, middleware::InterProcessPortalBase > InterProcessPortal
InterVehicleForwarder< InterProcessPortal<> > & intervehicle()
void configure_geodesy(goby::util::UTMGeodesy::LatLonPoint datum)
Represents a thread of execution within the Goby middleware, interleaving periodic events (loop()) wi...
Config make_interprocess_config(Config cfg, std::string app_name)
const Config & app_cfg()
Accesses configuration object passed at launch.
constexpr goby::middleware::Group datum_update
InterProcessPortal & interprocess()
void subscribe_terminate(bool do_quit=true)
const ::goby::middleware::protobuf::LatLonPoint & datum() const
Implements an Application for a two layer middleware setup ([ intervehicle [ interprocess ] ]) based ...
Base class for Goby applications. Generally you will want to use SingleThreadApplication or MultiThre...