Lumiera  0.pre.03
ChildExpandableSource< VAL > Class Template Referenceabstract

#include "lib/iter-tree-explorer.hpp"


template<typename VAL>
class lib::iter_explorer::ChildExpandableSource< VAL >

Interface to indicate and expose the ability for child expansion.

This interface is used when packaging a TreeExplorer pipeline opaquely into IterSource.

the depth() call indicates the depth of the child expansion tree. This information can be used by a "downstream" consumer to react according to a nested scope structure.
expandChildren() should not return the value pointer. This is just a workaround to cope with the design mismatch in IterSource; the fact that latter just passes around a pointer into the implementation is ugly, dangerous and plain silly. ////////////////////////////////////////////////////////////TICKET #1125 Incidentally, this is also the sole reason why this interface is templated with VAL

Definition at line 1186 of file iter-tree-explorer.hpp.

Public Member Functions

virtual size_t depth () const =0
virtual VAL * expandChildren ()=0

Protected Member Functions

 ~ChildExpandableSource ()

Constructor & Destructor Documentation

◆ ~ChildExpandableSource()

~ChildExpandableSource ( )
mix-in interface, not meant to handle objects

Definition at line 1189 of file iter-tree-explorer.hpp.

Member Function Documentation

◆ expandChildren()

virtual VAL* expandChildren ( )
pure virtual

◆ depth()

virtual size_t depth ( ) const
pure virtual
+ Inheritance diagram for ChildExpandableSource< VAL >:
+ Collaboration diagram for ChildExpandableSource< VAL >:

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