Lumiera  0.pre.03
GenNodeLocationQuery::GenNodeNavigator< PAR > Class Template Reference


template<class PAR>
class gui::interact::GenNodeLocationQuery::GenNodeNavigator< PAR >

Helper to navigate a tree topology represented as GenNode tree.

Basically this is a lib::IterSource<Literal> to encapsulate a sequence of sibling nodes. A "current element" representation is layered on top to allow to expand one level deeper on demand. This "child expansion" is triggered by invoking the expandChildren() function on the iterator front-end provided as LocationQuery::ChildIter

Definition at line 244 of file gen-node-location-query.hpp.

Public Member Functions

template<class IT >
 GenNodeNavigator (Rec const &node, size_t depth, IT &&rawChildIter)

Private Types

using Pos = typename PAR::Pos

Private Member Functions

virtual TreeStructureNavigatorexpandChildren () const override
virtual Pos firstResult () override
virtual void nextResult (Pos &pos) override

Private Attributes

Literal currentChild_
size_t depth_
Rec const & pos_

Member Typedef Documentation

◆ Pos

using Pos = typename PAR::Pos

Definition at line 264 of file gen-node-location-query.hpp.

Constructor & Destructor Documentation

◆ GenNodeNavigator()

GenNodeNavigator ( Rec const &  node,
size_t  depth,
IT &&  rawChildIter 

Definition at line 285 of file gen-node-location-query.hpp.

Member Function Documentation

◆ expandChildren()

virtual TreeStructureNavigator* expandChildren ( ) const

Definition at line 251 of file gen-node-location-query.hpp.

References GenNodeLocationQuery::childNavigator(), GenNodeLocationQuery::GenNodeNavigator< PAR >::currentChild_, and GenNodeLocationQuery::descendInto().

+ Here is the call graph for this function:

◆ firstResult()

virtual Pos firstResult ( )

Definition at line 267 of file gen-node-location-query.hpp.

◆ nextResult()

virtual void nextResult ( Pos pos)

Definition at line 275 of file gen-node-location-query.hpp.

Member Data Documentation

◆ pos_

Rec const& pos_

Definition at line 247 of file gen-node-location-query.hpp.

◆ depth_

size_t depth_

Definition at line 248 of file gen-node-location-query.hpp.

◆ currentChild_

Literal currentChild_
+ Inheritance diagram for GenNodeLocationQuery::GenNodeNavigator< PAR >:
+ Collaboration diagram for GenNodeLocationQuery::GenNodeNavigator< PAR >:

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