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>(
92 {datum_update.
datum().lat_with_units(), datum_update.datum().lon_with_units()});
95 this->
interprocess().template publish<goby::middleware::groups::configuration>(
Base class for Goby applications. Generally you will want to use SingleThreadApplication or MultiThre...
void configure_geodesy(goby::util::UTMGeodesy::LatLonPoint datum)
const Config & app_cfg()
Accesses configuration object passed at launch.
Implements the forwarder concept for the intervehicle layer.
Implements an Application for a two layer middleware setup ([ intervehicle [ interprocess ] ]) based ...
SingleThreadApplication(boost::units::quantity< boost::units::si::frequency > loop_freq)
Construct the application calling loop() at the given frequency (boost::units overload)
virtual ~SingleThreadApplication()
virtual void post_initialize() override
Assume all required subscriptions are done in the Constructor or in initialize(). If this isn't the c...
InterProcessPortal & interprocess()
virtual void health(goby::middleware::protobuf::ThreadHealth &health) override
Called when HealthRequest is made by goby_coroner.
InterVehicleForwarder< InterProcessPortal<> > & intervehicle()
SingleThreadApplication(double loop_freq_hertz=0)
Construct the application calling loop() at the given frequency (double overload)
Represents a thread of execution within the Goby middleware, interleaving periodic events (loop()) wi...
void set_transporter(InterVehicleForwarder< InterProcessPortal<> > *transporter)
const ::goby::middleware::protobuf::LatLonPoint & datum() const
void set_state(::goby::middleware::protobuf::HealthState value)
void subscribe_terminate(bool do_quit=true)
detail namespace with internal helper functions
InterProcessPortalImplementation< InnerTransporter, middleware::InterProcessPortalBase > InterProcessPortal
The global namespace for the Goby project.