score::PolymorphicComponentHierarchyManager< ParentComponent_T, ChildModel_T, ChildComponent_T, ChildComponentFactoryList_T, HasOwnership > Class Template Reference

Manages polymorphic hierarchies of components. More...

Inheritance diagram for score::PolymorphicComponentHierarchyManager< ParentComponent_T, ChildModel_T, ChildComponent_T, ChildComponentFactoryList_T, HasOwnership >:
Execution::IntervalComponent Execution::StateComponent LocalTree::Interval RemoteControl::Interval

Detailed Description

template<typename ParentComponent_T, typename ChildModel_T, typename ChildComponent_T, typename ChildComponentFactoryList_T, bool HasOwnership = true>
class score::PolymorphicComponentHierarchyManager< ParentComponent_T, ChildModel_T, ChildComponent_T, ChildComponentFactoryList_T, HasOwnership >

Manages polymorphic hierarchies of components.

Like ComponentHierarchyManager, but used when the components of the child class are polymorphic. For instance, if we have a Process, we want to create components that will be specific to each Process type. But then we have to source them from a factory somehow.

Classes

struct  ChildPair
 

Public Types

using hierarchy_t = PolymorphicComponentHierarchyManager
 

Public Member Functions

template<typename... Args>
 PolymorphicComponentHierarchyManager (Args &&... args)
 
template<typename... Args>
 PolymorphicComponentHierarchyManager (lazy_init_t, Args &&... args)
 
void init_hierarchy ()
 
const auto & children () const
 
void add (ChildModel_T &element)
 
void remove (const ChildModel_T &model)
 
void clear ()
 

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