![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
#include "lib/diff/tree-mutator-collection-binding.hpp"
Attach to collection: Concrete binding setup.
This record holds all the actual binding and closures used to attach the tree mutator to an external pre-existing STL container with child elements/objects. It serves as flexible connection, configuration and adaptation element, and will be embedded as a whole into the (ChildCollectionMutator), which in turn implements the TreeMutator interface. The resulting compound is able to consume tree diff messages and apply the respective changes and mutations to an otherwise opaque implementation data structure.
| COLL | a STL compliant collection type holding "child elements" |
| MAT | a functor to determine if a child matches a diff spec (GenNode) |
| CTR | a functor to construct a new child element from a given diff spec |
| SEL | predicate to determine if this binding layer has to process a diff message |
| ASS | a functor to assign / set a new value from a given diff spec |
| MUT | a functor to construct a nested mutator for some child element |
Definition at line 188 of file tree-mutator-collection-binding.hpp.
Public Types | |
| using | Coll = Strip< COLL >::TypeReferred |
| using | Elm = Coll::value_type |
| using | Trait = ContainerTraits< Coll > |
| using | iterator = lib::iter_stl::_SeqT< Coll >::Range |
| using | const_iterator = lib::iter_stl::_SeqT< const Coll >::Range |
Public Attributes | |
| Coll & | collection |
| MAT | matches |
| CTR | construct |
| SEL | isApplicable |
| ASS | assign |
| MUT | openSub |
| Coll | contentBuffer |
Public Member Functions | |
| CollectionBinding (Coll &coll, MAT m, CTR c, SEL s, ASS a, MUT u) | |
| iterator | initMutation () |
| void | inject (Elm &&elm) |
| iterator | search (GenNode const &targetSpec, iterator pos) |
| iterator | locate (GenNode const &targetSpec) |
| locate element for assignment or mutation, with special shortcut to the recently inserted element | |
Private Member Functions | |
| iterator | recentElmIter () |
| Elm & | recentElm () |
Additional Inherited Members | |
Protected Member Functions inherited from MoveOnly | |
| ~MoveOnly ()=default | |
| MoveOnly ()=default | |
| MoveOnly (MoveOnly &&)=default | |
| MoveOnly (MoveOnly const &)=delete | |
| MoveOnly & | operator= (MoveOnly &&)=delete |
| MoveOnly & | operator= (MoveOnly const &)=delete |
|
inline |
Definition at line 214 of file tree-mutator-collection-binding.hpp.
| using Coll = Strip<COLL>::TypeReferred |
Definition at line 191 of file tree-mutator-collection-binding.hpp.
| using Elm = Coll::value_type |
Definition at line 192 of file tree-mutator-collection-binding.hpp.
| using Trait = ContainerTraits<Coll> |
Definition at line 193 of file tree-mutator-collection-binding.hpp.
| using iterator = lib::iter_stl::_SeqT<Coll>::Range |
Definition at line 195 of file tree-mutator-collection-binding.hpp.
| using const_iterator = lib::iter_stl::_SeqT<const Coll>::Range |
Definition at line 196 of file tree-mutator-collection-binding.hpp.
|
inline |
Definition at line 233 of file tree-mutator-collection-binding.hpp.
References lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection().
Here is the call graph for this function:
|
inline |
Definition at line 241 of file tree-mutator-collection-binding.hpp.
References lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection().
Here is the call graph for this function:
|
inline |
Definition at line 247 of file tree-mutator-collection-binding.hpp.
|
inline |
locate element for assignment or mutation, with special shortcut to the recently inserted element
Definition at line 257 of file tree-mutator-collection-binding.hpp.
References lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection().
Here is the call graph for this function:
|
inlineprivate |
technicality Our iterator is actually a Lumiera RangeIter, and thus we need to construct a raw collection iterator pointing to the aftmost element and then create a range from this iterator and the end() iterator.
Definition at line 275 of file tree-mutator-collection-binding.hpp.
References lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection().
Here is the call graph for this function:
|
inlineprivate |
Definition at line 281 of file tree-mutator-collection-binding.hpp.
References lib::diff::anonymous_namespace{tree-mutator-collection-binding.hpp}::collection().
Here is the call graph for this function:| Coll& collection |
Definition at line 206 of file tree-mutator-collection-binding.hpp.
| MAT matches |
Definition at line 208 of file tree-mutator-collection-binding.hpp.
| CTR construct |
Definition at line 209 of file tree-mutator-collection-binding.hpp.
| SEL isApplicable |
Definition at line 210 of file tree-mutator-collection-binding.hpp.
| ASS assign |
Definition at line 211 of file tree-mutator-collection-binding.hpp.
| MUT openSub |
Definition at line 212 of file tree-mutator-collection-binding.hpp.
| Coll contentBuffer |
Definition at line 230 of file tree-mutator-collection-binding.hpp.
Inheritance diagram for CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >:
Collaboration diagram for CollectionBinding< COLL, MAT, CTR, SEL, ASS, MUT >: