The MAUVE Toolchain
mauve::runtime Namespace Reference

The runtime namespace contains the core elements of the MAUVE middleware for designing and deploying real-time architectures. More...

Classes

class  AbstractComponent
 Abstract Component class. More...
 
class  AbstractCore
 The Core defines the methods of the component. More...
 
class  AbstractDeployer
 Abstract Deployer class. More...
 
class  AbstractFiniteStateMachine
 A Finite State Machine describes the component behavior. More...
 
class  AbstractFloatingPointProperty
 Abstract class for a Floating point property. More...
 
class  AbstractIntegralProperty
 Abstract class for a Integral property. More...
 
class  AbstractInterface
 Abstract Interface class. More...
 
class  AbstractLogger
 Class of a generic MAUVE logger. More...
 
class  AbstractPort
 Abstract Port class. More...
 
class  AbstractProperty
 Abstract property class. More...
 
class  AbstractResource
 Abstract Resource class. More...
 
class  AbstractState
 Abstract State class. More...
 
struct  AllreadyDefinedService
 Exception for Already Defined Services. More...
 
struct  AllreadyDefinedState
 Exception for Already Defined States. More...
 
struct  AlreadyDefinedPort
 Exception for Already Defined Ports. More...
 
struct  AlreadyDefinedProperty
 Exception for Already Defined Properties. More...
 
class  Architecture
 Architecture class. More...
 
class  CallPort
 A Port to call a service. More...
 
class  CallService
 Class of a Call service. More...
 
class  CallServiceImpl
 Call Service implementation. More...
 
class  CategoryLogger
 Class of a MAUVE logger for a custom category. More...
 
class  Component
 Component class. More...
 
class  ComponentLogger
 Class of a MAUVE logger for a component. More...
 
struct  Configurable
 Configurable trait. More...
 
class  Core
 The Core defines the methods of the component. More...
 
struct  CoreContainer
 Core container. More...
 
class  Deployer
 Deployer class deploying a specific architecture. More...
 
class  DeployerLogger
 Class of a MAUVE logger for the deployer. More...
 
class  EventPort
 
class  EventService
 
class  EventServiceImpl
 
class  ExecState
 
class  FiniteStateMachine
 
class  FloatingPointProperty
 
struct  FSMContainer
 
class  HasPort
 
class  HasProperty
 
class  HasShell
 
class  IntegralProperty
 
class  Interface
 
struct  InterfaceContainer
 
class  Manager
 
class  mauve_formatter
 Formatter for MAUVE loggers. More...
 
class  OtherProperty
 
class  Port
 
struct  property_t
 
struct  property_t< I, F, true, T >
 
struct  property_t< I, true, S, T >
 
struct  property_t< true, F, S, T >
 
class  ReadPort
 
class  ReadService
 
class  ReadServiceImpl
 
class  Resource
 
class  ResourceLogger
 Class of a MAUVE logger for a resrouce. More...
 
class  RingBuffer
 
class  rosjson_sink
 
class  RtMutex
 
class  Service
 A Service. More...
 
struct  ServiceContainer
 
struct  SharedDataCore
 
struct  SharedDataInterface
 
struct  SharedDataShell
 
class  Shell
 A Shell is the interface of a component. More...
 
struct  ShellContainer
 
class  State
 
struct  StatusValue
 
class  StringProperty
 
class  SynchroState
 
class  Task
 A system Task that executes a component. More...
 
class  Transition
 
struct  WithAbstractCore
 Trait for objects with an abstract Core. More...
 
struct  WithAbstractFSM
 Trait for objects with an abstract FSM. More...
 
struct  WithAbstractInterface
 Trait for objects with an abstract Interface. More...
 
struct  WithAbstractShell
 Trait for objects with an abstract Shell. More...
 
struct  WithCore
 Object with a Core. More...
 
struct  WithFSM
 Object with a FiniteStateMachine. More...
 
struct  WithHook
 Objects with hooks. More...
 
struct  WithInterface
 Object with an Interface. More...
 
struct  WithLogger
 Object with a Logger. More...
 
struct  WithName
 Object with a name. More...
 
struct  WithShell
 Object with a Shell. More...
 
struct  WithShellAndCore
 Objects wite a Shell and a Core. More...
 
class  WritePort
 
class  WriteService
 
class  WriteServiceImpl
 

Typedefs

template<typename T >
using Property = typename property_t< std::is_integral< T >::value, std::is_floating_point< T >::value, std::is_same< T, std::string >::value, T >::type
 
template<typename T >
using SharedData = Resource< SharedDataShell< T >, SharedDataCore< T >, SharedDataInterface< T >>
 
using task_id_t = int32_t
 
using time_ns_t = uint64_t
 
using version_t = uint32_t
 

Enumerations

enum  connection_type { EVENT, READ, WRITE, CALL }
 Port types.
 
enum  DataStatus { NO_DATA, NEW_DATA, OLD_DATA }
 
enum  property_type { INTEGRAL, FLOATING_POINT, STRING, OTHER }
 Property types.
 
enum  TaskStatus { CREATED, ACTIVATED, RUNNING }
 

Functions

std::string default_file_name ()
 Default log file name. More...
 
template<typename ARCHI >
AbstractDeployermk_abstract_deployer (ARCHI *architecture, Manager< ARCHI > *manager=nullptr)
 Build the application Deployer from an architecture. More...
 
template<typename ARCHI >
Deployer< ARCHI > * mk_deployer (ARCHI *architecture, Manager< ARCHI > *manager=nullptr)
 
std::shared_ptr< spdlog::logger > mk_logger (const std::string &label, const std::string &type, const YAML::Node &args)
 Create a logger from its type. More...
 
void mk_python_deployer ()
 Create the Deployer for access from the python binding.
 
constexpr time_ns_t ms_to_ns (time_ns_t ms)
 
void ns_to_itimerspec (time_ns_t period, time_ns_t value, struct itimerspec *its)
 
constexpr time_ns_t ns_to_sec (time_ns_t ns)
 
void ns_to_timespec (time_ns_t ns, struct timespec *ts)
 
std::ostream & operator<< (std::ostream &out, DataStatus status)
 
template<typename T >
std::ostream & operator<< (std::ostream &out, StatusValue< T > status_value)
 
std::ostream & operator<< (std::ostream &out, struct timespec const &ts)
 
std::ostream & operator<< (std::ostream &out, AbstractState const &state)
 
std::ostream & operator<< (std::ostream &out, struct itimerspec const &its)
 
std::ostream & operator<< (std::ostream &out, Shell const &shell)
 Stream a shell to an output stream. More...
 
constexpr time_ns_t sec_to_ms (time_ns_t sec)
 
constexpr time_ns_t sec_to_ns (time_ns_t sec)
 
constexpr time_ns_t sec_to_us (time_ns_t sec)
 
constexpr time_ns_t timespec_to_ns (const struct timespec &ts)
 
void trace_component_start (AbstractComponent *c)
 
void trace_execution_begin (AbstractComponent *c, AbstractState *s)
 
void trace_execution_end (AbstractComponent *c, AbstractState *s)
 
void trace_service_begin (const std::string &resource_name, const std::string &service_name)
 
void trace_service_end (const std::string &resource_name, const std::string &service_name)
 
void trace_synchronization_begin (AbstractComponent *c, AbstractState *s)
 
void trace_synchronization_end (AbstractComponent *c, AbstractState *s)
 

Variables

 container { container }
 
 status { DataStatus::NO_DATA }
 

Detailed Description

The runtime namespace contains the core elements of the MAUVE middleware for designing and deploying real-time architectures.

Function Documentation

std::string mauve::runtime::default_file_name ( )

Default log file name.

Returns
the default MAUVE log file name in /tmp
template<typename ARCHI >
AbstractDeployer * mauve::runtime::mk_abstract_deployer ( ARCHI *  architecture,
Manager< ARCHI > *  manager = nullptr 
)

Build the application Deployer from an architecture.

Template Parameters
ARCHIArchitecture type
Parameters
architectureThe architecture executed by the Deployer
managerA manager of the architecture
Returns
a pointer on the application Deployer.
std::shared_ptr<spdlog::logger> mauve::runtime::mk_logger ( const std::string &  label,
const std::string &  type,
const YAML::Node &  args 
)

Create a logger from its type.

Parameters
labellabel of the logger
typetype of the logger
argslogger arguments
Returns
a pointer to the logger
std::ostream& mauve::runtime::operator<< ( std::ostream &  out,
Shell const &  shell 
)

Stream a shell to an output stream.

Parameters
outthe output stream
shellthe shell to be streamed
Returns
out