Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ChildExpandableSource< VAL > Class Template Referenceabstract

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

Description

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.

Remarks
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.
Todo:
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 944 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 ( )
inlineprotected
Note
mix-in interface, not meant to handle objects

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

Member Function Documentation

virtual VAL* expandChildren ( )
pure virtual
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: