Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
PackagedIterExplorerSource< SRC > Class Template Reference

#include "lib/iter-explorer.hpp"

Description

template<class SRC>
class lib::iter_explorer::PackagedIterExplorerSource< SRC >

Decorator to package a whole IterExplorer pipeline suitably to be handled through an IterSource based front-end. Such packaging is performed by the IterExplorer::asIterSource() terminal builder function. In addition to wrapping the iterator, the expandChildren() operation is exposed as virtual function, to allow invocation through the type-erased front-end, without any knowledge about the concrete implementation type of the wrapped TreeIterator pipeline.

Definition at line 1444 of file iter-explorer.hpp.

Public Member Functions

virtual ValexpandChildren () override
 
virtual size_t depth () const override
 
- Public Member Functions inherited from WrappedLumieraIter< SRC >
 WrappedLumieraIter (SRC const &orig)
 
 WrappedLumieraIter (SRC &&orig)
 
- Public Member Functions inherited from IterSource< TY >
virtual ~IterSource ()
 
virtual operator string () const
 is ABC
 

Private Types

using Parent = WrappedLumieraIter< SRC >
 
using Val = SRC::value_type
 

Private Member Functions

 ~PackagedIterExplorerSource ()
 

Additional Inherited Members

- Public Types inherited from IterSource< TY >
using value_type = TY
 
using reference = TY &
 
using pointer = TY *
 
- Static Public Attributes inherited from IterSource< TY >
static iterator EMPTY_SOURCE = iterator()
 storage for the empty data-source constant
 
- Static Public Member Functions inherited from IterSource< TY >
static iterator build (IterSource &sourceImpl)
 build an iterator frontend for the given source,
 
static iterator build (IterSource *sourceImplObject)
 build an iterator frontend, thereby managing the given heap allocated source object instance.
 
- Protected Types inherited from WrappedLumieraIter< SRC >
using Pos = ISO::Pos
 
- Protected Types inherited from IterSource< TY >
using Pos = TY *
 
using DataHandle = shared_ptr< IterSource >
 
- Protected Member Functions inherited from WrappedLumieraIter< SRC >
Pos firstResult ()
 iteration start: prepare the first element.
 
void nextResult (Pos &pos)
 
SRC & wrappedIter ()
 
SRC const & wrappedIter () const
 
- Protected Member Functions inherited from IterSource< TY >
virtual void nextResult (Pos &pos)=0
 iteration step: switch on to the next element.
 
virtual void disconnect ()
 disconnect the data source / iteration frontend.
 
- Protected Member Functions inherited from ChildExpandableSource< SRC::value_type >
 ~ChildExpandableSource ()
 

Constructor & Destructor Documentation

◆ ~PackagedIterExplorerSource()

template<class SRC >
~PackagedIterExplorerSource ( )
inlineprivate

Definition at line 1451 of file iter-explorer.hpp.

Member Typedef Documentation

◆ Parent

template<class SRC >
using Parent = WrappedLumieraIter<SRC>
private

Definition at line 1448 of file iter-explorer.hpp.

◆ Val

template<class SRC >
using Val = SRC::value_type
private

Definition at line 1449 of file iter-explorer.hpp.

Member Function Documentation

◆ expandChildren()

template<class SRC >
virtual Val * expandChildren ( )
inlineoverridevirtual

Implements ChildExpandableSource< SRC::value_type >.

Definition at line 1456 of file iter-explorer.hpp.

References WrappedLumieraIter< SRC >::wrappedIter().

+ Here is the call graph for this function:

◆ depth()

template<class SRC >
virtual size_t depth ( ) const
inlineoverridevirtual

Implements ChildExpandableSource< SRC::value_type >.

Definition at line 1464 of file iter-explorer.hpp.

References WrappedLumieraIter< SRC >::wrappedIter().

+ Here is the call graph for this function:
+ Inheritance diagram for PackagedIterExplorerSource< SRC >:
+ Collaboration diagram for PackagedIterExplorerSource< SRC >:

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