DART  6.10.1
dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties > Class Template Reference

#include <AspectWithVersion.hpp>

Inheritance diagram for dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >:
dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > >, DerivedT, PropertiesDataT, Composite, &detail::NoOp< DerivedT * > > dart::common::detail::AspectWithState< BaseT, DerivedT, StateDataT, CompositeT, updateState >

Public Types

using Derived = DerivedT
 
using StateData = StateDataT
 
using PropertiesData = PropertiesDataT
 
using CompositeType = CompositeT
 
using State = common::Aspect::MakeState< StateData >
 
using Properties = common::Aspect::MakeProperties< PropertiesData >
 
using AspectStateImpl = common::AspectWithState< Derived, StateData, CompositeType, updateState >
 
using AspectPropertiesImpl = detail::AspectWithVersionedProperties< AspectStateImpl, Derived, PropertiesData, CompositeType, updateProperties >
 
using AspectImpl = AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >
 
using Base = AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > >
 
using AspectImplementation = AspectWithVersionedProperties< Base, Derived, PropertiesData, Composite, updateProperties >
 

Public Member Functions

 AspectWithStateAndVersionedProperties (const AspectWithStateAndVersionedProperties &)=delete
 
 AspectWithStateAndVersionedProperties (const StateData &state=StateData(), const PropertiesData &properties=PropertiesData())
 Construct using a StateData and a PropertiesData instance. More...
 
 AspectWithStateAndVersionedProperties (const PropertiesData &properties, const StateData &state=StateData())
 Construct using a PropertiesData and a StateData instance. More...
 
std::unique_ptr< AspectcloneAspect () const override
 
void setAspectProperties (const Aspect::Properties &someProperties) override final
 
const Aspect::PropertiesgetAspectProperties () const override final
 
void setProperties (const PropertiesData &properties)
 Set the Properties of this Aspect. More...
 
const PropertiesgetProperties () const
 Get the Properties of this Aspect. More...
 
std::size_t incrementVersion ()
 Increment the version of this Aspect and its Composite. More...
 
void notifyPropertiesUpdate ()
 Call UpdateProperties(this) and incrementVersion() More...
 
void notifyPropertiesUpdated ()
 Call UpdateProperties(this) and incrementVersion() More...
 
void setAspectState (const Aspect::State &otherState) override final
 
const Aspect::StategetAspectState () const override final
 
void setState (const StateData &state)
 Set the State of this Aspect. More...
 
const StategetState () const
 Get the State of this Aspect. More...
 

Static Public Attributes

constexpr static void(* UpdateState )(Derived *) = updateState
 
constexpr static void(* UpdateProperties )(Derived *) = updateProperties
 

Protected Attributes

Properties mProperties
 Properties of this Aspect. More...
 
State mState
 State of this Aspect. More...
 

Member Typedef Documentation

◆ AspectImpl

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::AspectImpl = AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties>

◆ AspectImplementation

using dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesDataT, Composite , updateProperties >::AspectImplementation = AspectWithVersionedProperties< Base, Derived, PropertiesData, Composite , updateProperties>
inherited

◆ AspectPropertiesImpl

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::AspectPropertiesImpl = detail::AspectWithVersionedProperties< AspectStateImpl, Derived, PropertiesData, CompositeType, updateProperties>

◆ AspectStateImpl

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::AspectStateImpl = common::AspectWithState<Derived, StateData, CompositeType, updateState>

◆ Base

using dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesDataT, Composite , updateProperties >::Base = AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > >
inherited

◆ CompositeType

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::CompositeType = CompositeT

◆ Derived

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::Derived = DerivedT

◆ Properties

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::Properties = common::Aspect::MakeProperties<PropertiesData>

◆ PropertiesData

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::PropertiesData = PropertiesDataT

◆ State

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::State = common::Aspect::MakeState<StateData>

◆ StateData

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
using dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::StateData = StateDataT

Constructor & Destructor Documentation

◆ AspectWithStateAndVersionedProperties() [1/3]

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::AspectWithStateAndVersionedProperties ( const AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties > &  )
delete

◆ AspectWithStateAndVersionedProperties() [2/3]

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::AspectWithStateAndVersionedProperties ( const StateData state = StateData(),
const PropertiesData properties = PropertiesData() 
)
inline

Construct using a StateData and a PropertiesData instance.

◆ AspectWithStateAndVersionedProperties() [3/3]

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::AspectWithStateAndVersionedProperties ( const PropertiesData properties,
const StateData state = StateData() 
)
inline

Construct using a PropertiesData and a StateData instance.

Member Function Documentation

◆ cloneAspect()

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
std::unique_ptr<Aspect> dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::cloneAspect ( ) const
inlineoverride

◆ getAspectProperties()

const Aspect::Properties * dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::getAspectProperties
finaloverrideinherited

◆ getAspectState()

template<class BaseT , class DerivedT , typename StateData , class CompositeT , void(*)(DerivedT *) updateState>
const Aspect::State * dart::common::detail::AspectWithState< BaseT, DerivedT, StateData, CompositeT, updateState >::getAspectState
finaloverrideinherited

◆ getProperties()

auto dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::getProperties
inherited

Get the Properties of this Aspect.

◆ getState()

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

Get the State of this Aspect.

◆ incrementVersion()

std::size_t dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::incrementVersion
inherited

Increment the version of this Aspect and its Composite.

◆ notifyPropertiesUpdate()

void dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::notifyPropertiesUpdate
inherited

Call UpdateProperties(this) and incrementVersion()

◆ notifyPropertiesUpdated()

void dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::notifyPropertiesUpdated
inherited

Call UpdateProperties(this) and incrementVersion()

◆ setAspectProperties()

void dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::setAspectProperties ( const Aspect::Properties someProperties)
finaloverrideinherited

◆ setAspectState()

template<class BaseT , class DerivedT , typename StateData , class CompositeT , void(*)(DerivedT *) updateState>
void dart::common::detail::AspectWithState< BaseT, DerivedT, StateData, CompositeT, updateState >::setAspectState ( const Aspect::State otherState)
finaloverrideinherited

◆ setProperties()

void dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesData, Composite , updateProperties >::setProperties ( const PropertiesData properties)
inherited

Set the Properties of this Aspect.

◆ setState()

template<class BaseT , class DerivedT , typename StateData , class CompositeT , void(*)(DerivedT *) updateState>
void dart::common::detail::AspectWithState< BaseT, DerivedT, StateData, CompositeT, updateState >::setState ( const StateData state)
inherited

Set the State of this Aspect.

Member Data Documentation

◆ mProperties

Properties dart::common::detail::AspectWithVersionedProperties< AspectWithState< DerivedT, StateDataT, Composite, &detail::NoOp< DerivedT * > > , DerivedT, PropertiesDataT, Composite , updateProperties >::mProperties
protectedinherited

Properties of this Aspect.

◆ mState

template<class BaseT , class DerivedT , typename StateDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &NoOp<DerivedT*>>
State dart::common::detail::AspectWithState< BaseT, DerivedT, StateDataT, CompositeT, updateState >::mState
protectedinherited

State of this Aspect.

◆ UpdateProperties

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
constexpr static void(* dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::UpdateProperties) (Derived *) = updateProperties
staticconstexpr

◆ UpdateState

template<class DerivedT , typename StateDataT , typename PropertiesDataT , class CompositeT = Composite, void(*)(DerivedT *) updateState = &detail::NoOp<DerivedT*>, void(*)(DerivedT *) updateProperties = updateState>
constexpr static void(* dart::common::AspectWithStateAndVersionedProperties< DerivedT, StateDataT, PropertiesDataT, CompositeT, updateState, updateProperties >::UpdateState) (Derived *) = updateState
staticconstexpr