159 void notifyPropertiesUpdated();
175template <class BaseT, class DerivedT, typename StateDataT,
176 class CompositeT,
void (*updateState)(DerivedT*)>
178 BaseT, DerivedT, StateDataT, CompositeT, updateState>::UpdateState)(
182template <class BaseT, class DerivedT, typename StateDataT,
183 class CompositeT,
void (*updateState)(DerivedT*)>
193template <
class BaseT,
class DerivedT,
typename StateData,
194 class CompositeT, void (*updateState)(DerivedT*)>
198 setState(
static_cast<const State&
>(otherState));
202template <
class BaseT,
class DerivedT,
typename StateData,
203 class CompositeT, void (*updateState)(DerivedT*)>
206getAspectState() const
212template <
class BaseT,
class DerivedT,
typename StateData,
213 class CompositeT, void (*updateState)(DerivedT*)>
218 UpdateState(
static_cast<Derived*
>(
this));
222template <
class BaseT,
class DerivedT,
typename StateDataT,
223 class CompositeT, void (*updateState)(DerivedT*)>
225getState() const -> const
State&
231template <
class BaseT,
class DerivedT,
typename StateData,
232 class CompositeT, void (*updateState)(DerivedT*)>
233std::unique_ptr<Aspect>
237 return common::make_unique<Derived>(mState);
247template <
class BaseT,
class DerivedT,
typename PropertiesDataT,
248 class CompositeT, void (*updateProperties)(DerivedT*)>
250 CompositeT, updateProperties>::
251UpdateProperties)(DerivedT*);
254template <
class BaseT,
class DerivedT,
typename PropertiesDataT,
255 class CompositeT, void (*updateProperties)(DerivedT*)>
257 CompositeT, updateProperties>::
266template <
class BaseT,
class DerivedT,
typename PropertiesData,
267 class CompositeT, void (*updateProperties)(DerivedT*)>
269 CompositeT, updateProperties>::
272 setProperties(
static_cast<const Properties&
>(someProperties));
276template <
class BaseT,
class DerivedT,
typename PropertiesData,
277 class CompositeT, void (*updateProperties)(DerivedT*)>
280 CompositeT, updateProperties>::
281getAspectProperties() const
287template <
class BaseT,
class DerivedT,
typename PropertiesData,
288 class CompositeT, void (*updateProperties)(DerivedT*)>
290 CompositeT, updateProperties>::
294 this->notifyPropertiesUpdated();
298template <
class BaseT,
class DerivedT,
typename PropertiesData,
299 class CompositeT, void (*updateProperties)(DerivedT*)>
301 CompositeT, updateProperties>::
308template <
class BaseT,
class DerivedT,
typename PropertiesData,
309 class CompositeT, void (*updateProperties)(DerivedT*)>
310std::unique_ptr<Aspect>
312 CompositeT, updateProperties>::
315 return common::make_unique<Derived>(mProperties);
319template <
class BaseT,
class DerivedT,
typename PropertiesData,
320 class CompositeT, void (*updateProperties)(DerivedT*)>
322 CompositeT, updateProperties>::incrementVersion()
331template <
class BaseT,
class DerivedT,
typename PropertiesData,
332 class CompositeT, void (*updateProperties)(DerivedT*)>
334 BaseT, DerivedT, PropertiesData,
335 CompositeT, updateProperties>::notifyPropertiesUpdate()
337 notifyPropertiesUpdated();
341template <
class BaseT,
class DerivedT,
typename PropertiesData,
342 class CompositeT, void (*updateProperties)(DerivedT*)>
344 BaseT, DerivedT, PropertiesData,
345 CompositeT, updateProperties>::notifyPropertiesUpdated()
347 UpdateProperties(
static_cast<Derived*
>(
this));
348 this->incrementVersion();