![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/iter-explorer.hpp"
Decorator for IterExplorer to map a transformation function on all results. The transformation function is invoked on demand, and only once per item to be treated, storing the treated result into an universal value holder buffer. The given functor is adapted in a similar way as the "expand functor", so to detect and convert the expected input on invocation.
reference, even when the TransformFunctor produces a value; otherwise we can not provide a safe operator-> on any iterator downstream. This is also the reason why the ItemWrapper is necessary, precisely because we want to support functions producing a value; it provides a safe location for this value to persist. Definition at line 782 of file iter-explorer.hpp.
Public Types | |
| using | value_type = meta::ValueTypeBinding< RES >::value_type |
| using | reference = meta::ValueTypeBinding< RES >::reference |
| using | pointer = meta::ValueTypeBinding< RES >::pointer |
Public Member Functions | |
| template<typename FUN > | |
| Transformer (SRC &&dataSrc, FUN &&transformFunctor) | |
| Transformer ()=default | |
| Transformer (Transformer const &o) | |
| Transformer (Transformer &&o) | |
| Transformer & | operator= (Transformer changed) |
| void | expandChildren () |
| refresh state when other layers manipulate the source sequence | |
| bool | checkPoint () const |
| reference | yield () const |
| void | iterNext () |
Friends | |
| void | swap (Transformer &t1, Transformer &t2) |
Private Types | |
| using | TransformFunctor = function< RES(SRC &)> |
| using | TransformedItem = wrapper::ItemWrapper< RES > |
Private Member Functions | |
| SRC & | srcIter () const |
| reference | invokeTransformation () |
Private Attributes | |
| TransformFunctor | trafo_ |
| TransformedItem | treated_ |
|
inline |
Definition at line 800 of file iter-explorer.hpp.
|
default |
|
inline |
Definition at line 806 of file iter-explorer.hpp.
|
inline |
Definition at line 811 of file iter-explorer.hpp.
|
private |
Definition at line 787 of file iter-explorer.hpp.
|
private |
Definition at line 788 of file iter-explorer.hpp.
| using value_type = meta::ValueTypeBinding<RES>::value_type |
Definition at line 794 of file iter-explorer.hpp.
| using reference = meta::ValueTypeBinding<RES>::reference |
Definition at line 795 of file iter-explorer.hpp.
| using pointer = meta::ValueTypeBinding<RES>::pointer |
Definition at line 796 of file iter-explorer.hpp.
|
inline |
Definition at line 817 of file iter-explorer.hpp.
References Transformer< SRC, RES >::swap.
|
inline |
refresh state when other layers manipulate the source sequence
Definition at line 838 of file iter-explorer.hpp.
References ItemWrapper< TY >::reset(), and Transformer< SRC, RES >::treated_.
Here is the call graph for this function:
|
inline |
Definition at line 847 of file iter-explorer.hpp.
References Transformer< SRC, RES >::srcIter().
Here is the call graph for this function:
|
inline |
Definition at line 853 of file iter-explorer.hpp.
|
inline |
Definition at line 859 of file iter-explorer.hpp.
References ItemWrapper< TY >::reset(), Transformer< SRC, RES >::srcIter(), and Transformer< SRC, RES >::treated_.
Here is the call graph for this function:
|
inlineprivate |
Definition at line 867 of file iter-explorer.hpp.
Referenced by Transformer< SRC, RES >::checkPoint(), Transformer< SRC, RES >::invokeTransformation(), and Transformer< SRC, RES >::iterNext().
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 873 of file iter-explorer.hpp.
References Transformer< SRC, RES >::srcIter(), Transformer< SRC, RES >::trafo_, and Transformer< SRC, RES >::treated_.
Here is the call graph for this function:
|
private |
Definition at line 790 of file iter-explorer.hpp.
Referenced by Transformer< SRC, RES >::invokeTransformation().
|
private |
Definition at line 791 of file iter-explorer.hpp.
Referenced by Transformer< SRC, RES >::expandChildren(), Transformer< SRC, RES >::invokeTransformation(), and Transformer< SRC, RES >::iterNext().
|
friend |
Definition at line 823 of file iter-explorer.hpp.
Referenced by Transformer< SRC, RES >::operator=().
Inheritance diagram for Transformer< SRC, RES >:
Collaboration diagram for Transformer< SRC, RES >: