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

AspectWithProtectedProperties generates implementations of the Property managing functions for an Aspect class. More...

#include <AspectWithVersion.hpp>

Inheritance diagram for dart::common::detail::AspectWithVersionedProperties< BaseT, DerivedT, PropertiesDataT, CompositeT, updateProperties >:
Inheritance graph
[legend]
Collaboration diagram for dart::common::detail::AspectWithVersionedProperties< BaseT, DerivedT, PropertiesDataT, CompositeT, updateProperties >:
Collaboration graph
[legend]

Public Types

using Base = BaseT
 
using Derived = DerivedT
 
using PropertiesData = PropertiesDataT
 
using CompositeType = CompositeT
 
using Properties = Aspect::MakeProperties< PropertiesData >
 
using AspectImplementation = AspectWithVersionedProperties< Base, Derived, PropertiesData, CompositeT, updateProperties >
 

Public Member Functions

 AspectWithVersionedProperties (const AspectWithVersionedProperties &)=delete
 
 AspectWithVersionedProperties (const PropertiesData &properties=PropertiesData())
 Construct using a PropertiesData instance.
 
template<typename... BaseArgs>
 AspectWithVersionedProperties (const PropertiesData &properties, BaseArgs &&... args)
 Construct this Aspect and pass args into the constructor of the Base class.
 
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.
 
const PropertiesgetProperties () const
 Get the Properties of this Aspect.
 
std::unique_ptr< AspectcloneAspect () const override
 
std::size_t incrementVersion ()
 Increment the version of this Aspect and its Composite.
 
void notifyPropertiesUpdate ()
 Call UpdateProperties(this) and incrementVersion()
 
void notifyPropertiesUpdated ()
 Call UpdateProperties(this) and incrementVersion()
 

Static Public Attributes

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

Protected Attributes

Properties mProperties
 Properties of this Aspect.
 

Detailed Description

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

AspectWithProtectedProperties generates implementations of the Property managing functions for an Aspect class.


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