$darkmode
stack.hpp File Reference
#include <map>
#include <memory>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include <boost/filesystem/path.hpp>
#include <boost/optional.hpp>
#include <fable/schema/boost_optional.hpp>
#include <fable/schema/boost_path.hpp>
#include <fable/schema/custom.hpp>
#include <fable/schema/factory.hpp>
#include <cloe/component.hpp>
#include <cloe/controller.hpp>
#include <cloe/core.hpp>
#include <cloe/simulator.hpp>
#include <cloe/trigger.hpp>
#include <cloe/utility/command.hpp>
#include "plugin.hpp"
Include dependency graph for stack.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cloe::PersistentConfable
 
struct  cloe::LoggingConf
 
struct  cloe::ServerConf
 
struct  cloe::PluginConf
 
struct  cloe::DefaultConf
 
class  cloe::FactoryPlugin< C, F >
 
struct  cloe::SimulatorConf
 
class  cloe::SimulatorSchema
 
struct  cloe::ControllerConf
 
class  cloe::ControllerSchema
 
struct  cloe::FromSimulator
 
struct  cloe::ComponentConf
 
class  cloe::ComponentSchema
 
struct  cloe::VehicleConf
 
class  cloe::VehicleSchema
 
struct  cloe::TriggerConf
 
struct  cloe::SimulationConf
 
class  cloe::StackIncompleteError
 
class  cloe::Stack
 

Macros

#define CLOE_STACK_VERSION   "4.1"
 
#define CLOE_STACK_SUPPORTED_VERSIONS    { "4", "4.0", "4.1" }
 
#define CLOE_XDG_SUFFIX   "cloe"
 
#define CLOE_CONFIG_HOME   "${XDG_CONFIG_HOME-${HOME}/.config}/" CLOE_XDG_SUFFIX
 
#define CLOE_DATA_HOME   "${XDG_DATA_HOME-${HOME}/.local/share}/" CLOE_XDG_SUFFIX
 
#define CLOE_SIMULATION_UUID_VAR   "CLOE_SIMULATION_UUID"
 

Typedefs

using cloe::IncludeConf = boost::filesystem::path
 
using cloe::IncludeSchema = decltype(schema::make_schema(static_cast< IncludeConf * >(nullptr), ""))
 
using cloe::IncludesSchema = schema::Vector< IncludeConf, IncludeSchema >
 
using cloe::PluginsSchema = schema_type< std::vector< PluginConf > >::type
 
using cloe::EngineSchema = (WatchdogMode,({ {WatchdogMode::Off, "off"}, {WatchdogMode::Log, "log"}, {WatchdogMode::Abort, "abort"}, {WatchdogMode::Kill, "kill"}, })) struct EngineConf schema_type< EngineConf >::type
 
using cloe::ConfReader = std::function< Conf(const std::string &)>
 

Enumerations

enum class  cloe::WatchdogMode { Off , Log , Abort , Kill }
 

Functions

auto cloe::id_prototype (std::string desc="")
 
auto cloe::id_path_prototype (std::string desc="")
 

Detailed Description

Typedef Documentation

◆ IncludeConf

using cloe::IncludeConf = typedef boost::filesystem::path

IncludeConf is a relative or absolute filepath that should be included in the stack configuration.

Enumeration Type Documentation

◆ WatchdogMode

enum cloe::WatchdogMode
strong

The mode that the watchdog operates in.

If not set to Off, each state is launched asynchronously and the mode determines what happens when the operation times out.

Enumerator
Off 

Disable the watchdog entirely.

Log 

Log infractions but nothing else.

Abort 

Abort after the state returns.

Kill 

Kill the program immediately.