dart
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
dart::common::detail::AspectWithState< BaseT, DerivedT, StateDataT, CompositeT, updateState > Class Template Reference

AspectWithProtectedState generates implementations of the State managing functions for an Aspect class. More...

#include <AspectWithVersion.hpp>

Inheritance diagram for dart::common::detail::AspectWithState< BaseT, DerivedT, StateDataT, CompositeT, updateState >:
Inheritance graph
[legend]
Collaboration diagram for dart::common::detail::AspectWithState< BaseT, DerivedT, StateDataT, CompositeT, updateState >:
Collaboration graph
[legend]

Public Types

using Base = BaseT
 
using Derived = DerivedT
 
using StateData = StateDataT
 
using CompositeType = CompositeT
 
using State = Aspect::MakeState< StateData >
 
using AspectImplementation = AspectWithState< Base, Derived, StateData, CompositeT, updateState >
 

Public Member Functions

 AspectWithState (const AspectWithState &)=delete
 
 AspectWithState (const StateData &state=StateData())
 Construct using a StateData instance.
 
template<typename... BaseArgs>
 AspectWithState (const StateData &state, BaseArgs &&... args)
 Construct this Aspect and pass args into the constructor of the Base class.
 
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.
 
const StategetState () const
 Get the State of this Aspect.
 
std::unique_ptr< AspectcloneAspect () const override
 

Static Public Attributes

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

Protected Attributes

State mState
 State of this Aspect.
 

Detailed Description

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

AspectWithProtectedState generates implementations of the State managing functions for an Aspect class.


The documentation for this class was generated from the following file: