DART  6.10.1
dart::common::detail Namespace Reference

Classes

class  AspectWithState
 AspectWithProtectedState generates implementations of the State managing functions for an Aspect class. More...
 
class  AspectWithVersionedProperties
 AspectWithProtectedProperties generates implementations of the Property managing functions for an Aspect class. More...
 
struct  GetAspectImpl
 
struct  GetAspectImpl< AspectOrComposite, false >
 
struct  GetAspect
 
struct  GetState
 
struct  GetProperties
 
class  CompositeData
 
class  ComposeData
 
struct  ComposeData< CompositeType, GetData, AspectT, Remainder... >
 
class  EmbeddedStateAspect
 
class  EmbeddedPropertiesAspect
 
struct  DefaultCreator
 The default creator. More...
 
struct  DefaultCreator< T, std::unique_ptr< T >, Args... >
 
struct  DefaultCreator< T, std::shared_ptr< T >, Args... >
 
class  ProxyStateAspect
 
class  ProxyPropertiesAspect
 
class  SharedLibraryManager
 

Typedefs

using CompositeStateMap = std::map< std::type_index, std::unique_ptr< Aspect::State > >
 
using CompositePropertiesMap = std::map< std::type_index, std::unique_ptr< Aspect::Properties > >
 
using CompositeState = CompositeData< CompositeStateMap, GetState >
 
using CompositeProperties = CompositeData< CompositePropertiesMap, GetProperties >
 
template<typename... Aspects>
using MakeCompositeState = ComposeData< CompositeState, GetState, Aspects... >
 
template<typename... Data>
using MakeCompositeProperties = ComposeData< CompositeProperties, GetProperties, Data... >
 

Functions

template<class AspectT , typename StateT >
void DefaultSetEmbeddedState (AspectT *aspect, const StateT &state)
 
template<class AspectT , typename StateT >
const StateT & DefaultGetEmbeddedState (const AspectT *aspect)
 
template<class AspectT , typename PropertiesT >
void DefaultSetEmbeddedProperties (AspectT *aspect, const PropertiesT &properties)
 
template<class AspectT , typename PropertiesT >
const PropertiesT & DefaultGetEmbeddedProperties (const AspectT *aspect)
 
template<typename... Args>
void NoOp (Args...)
 NoOp is short for "no operation". More...
 

Variables

template<class BaseT , class DerivedT , typename StateDataT , class CompositeT , void(*)(DerivedT *) updateState>
constexpr void(* AspectWithState )(DerivedT *)
 
template<class BaseT , class DerivedT , typename PropertiesDataT , class CompositeT , void(*)(DerivedT *) updateProperties>
constexpr void(* AspectWithVersionedProperties )(DerivedT *)
 
template<class BaseT , class DerivedT , typename StateDataT , typename StateT , void(*)(DerivedT *, const StateT &) setEmbeddedState, const StateT &(*)(const DerivedT *) getEmbeddedState>
constexpr void(* EmbeddedStateAspect )(DerivedT *, const StateT &)
 
template<class BaseT , class DerivedT , typename PropertiesDataT , typename PropertiesT , void(*)(DerivedT *, const PropertiesT &) setEmbeddedProperties, const PropertiesT &(*)(const DerivedT *) getEmbeddedProperties>
constexpr void(* EmbeddedPropertiesAspect )(DerivedT *, const PropertiesT &)
 

Typedef Documentation

◆ CompositeProperties

◆ CompositePropertiesMap

using dart::common::detail::CompositePropertiesMap = typedef std::map<std::type_index, std::unique_ptr<Aspect::Properties> >

◆ CompositeState

◆ CompositeStateMap

using dart::common::detail::CompositeStateMap = typedef std::map<std::type_index, std::unique_ptr<Aspect::State> >

◆ MakeCompositeProperties

template<typename... Data>
using dart::common::detail::MakeCompositeProperties = typedef ComposeData<CompositeProperties, GetProperties, Data...>

◆ MakeCompositeState

template<typename... Aspects>
using dart::common::detail::MakeCompositeState = typedef ComposeData<CompositeState, GetState, Aspects...>

Function Documentation

◆ DefaultGetEmbeddedProperties()

template<class AspectT , typename PropertiesT >
const PropertiesT& dart::common::detail::DefaultGetEmbeddedProperties ( const AspectT *  aspect)

◆ DefaultGetEmbeddedState()

template<class AspectT , typename StateT >
const StateT& dart::common::detail::DefaultGetEmbeddedState ( const AspectT *  aspect)

◆ DefaultSetEmbeddedProperties()

template<class AspectT , typename PropertiesT >
void dart::common::detail::DefaultSetEmbeddedProperties ( AspectT *  aspect,
const PropertiesT &  properties 
)

◆ DefaultSetEmbeddedState()

template<class AspectT , typename StateT >
void dart::common::detail::DefaultSetEmbeddedState ( AspectT *  aspect,
const StateT &  state 
)

◆ NoOp()

template<typename... Args>
void dart::common::detail::NoOp ( Args...  )

NoOp is short for "no operation".

This is a placeholder function that can be used in places where a function needs to be provided but you do not actually want the function to do anything.

Variable Documentation

◆ AspectWithState

template<class BaseT , class DerivedT , typename StateDataT , class CompositeT , void(*)(DerivedT *) updateState>
constexpr void( * dart::common::detail::AspectWithState) (DerivedT *) ( DerivedT *  )
constexpr

◆ AspectWithVersionedProperties

template<class BaseT , class DerivedT , typename PropertiesDataT , class CompositeT , void(*)(DerivedT *) updateProperties>
constexpr void(* dart::common::detail::AspectWithVersionedProperties) (DerivedT *) ( DerivedT *  )
constexpr

◆ EmbeddedPropertiesAspect

template<class BaseT , class DerivedT , typename PropertiesDataT , typename PropertiesT , void(*)(DerivedT *, const PropertiesT &) setEmbeddedProperties, const PropertiesT &(*)(const DerivedT *) getEmbeddedProperties>
constexpr const PropertiesT&(* dart::common::detail::EmbeddedPropertiesAspect) (const DerivedT *) ( DerivedT *  ,
const PropertiesT &   
)
constexpr

◆ EmbeddedStateAspect

template<class BaseT , class DerivedT , typename StateDataT , typename StateT , void(*)(DerivedT *, const StateT &) setEmbeddedState, const StateT &(*)(const DerivedT *) getEmbeddedState>
constexpr const StateT&(* dart::common::detail::EmbeddedStateAspect) (const DerivedT *) ( DerivedT *  ,
const StateT &   
)
constexpr