![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/diff/tree-diff-application.hpp"
Typical standard implementation of the ScopeManager.
Using Heap memory for the nested scopes, we create a stack of opaque InPlaceBuffers for each scope, which allows the PlantingHandle mechanism to let the target object corresponding to this scope build its own TreeMutator implementation into this buffer space for this scope.
Definition at line 170 of file tree-diff-application.hpp.
Public Member Functions | |
| StackScopeManager () | |
| TreeMutator & | currentScope () const |
| virtual TreeMutator::Handle | openScope () |
| virtual TreeMutator & | closeScope () |
| virtual void | clear () |
| virtual size_t | depth () const |
Public Member Functions inherited from ScopeManager | |
| virtual | ~ScopeManager () |
| this is an interface | |
Private Types | |
| using | MutatorBuffer = InPlaceBuffer< TreeMutator, buffSiz > |
| using | MutatorStack = std::stack< MutatorBuffer > |
Private Attributes | |
| MutatorStack | scopes_ |
| Allocate Heap Storage for nested TreeMutator(s) | |
|
inline |
Definition at line 181 of file tree-diff-application.hpp.
|
private |
Definition at line 173 of file tree-diff-application.hpp.
|
private |
Definition at line 174 of file tree-diff-application.hpp.
|
inline |
Definition at line 186 of file tree-diff-application.hpp.
References StackScopeManager< buffSiz >::depth(), and StackScopeManager< buffSiz >::scopes_.
Referenced by DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::initDiffApplication().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
treeMutatorSize(...) Implements ScopeManager.
Definition at line 199 of file tree-diff-application.hpp.
References PlantingHandle< BA, DEFAULT >::emplace(), and StackScopeManager< buffSiz >::scopes_.
Referenced by DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::buildMutator().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
Implements ScopeManager.
Definition at line 207 of file tree-diff-application.hpp.
References StackScopeManager< buffSiz >::depth(), and StackScopeManager< buffSiz >::scopes_.
Here is the call graph for this function:
|
inlinevirtual |
Implements ScopeManager.
Definition at line 215 of file tree-diff-application.hpp.
References StackScopeManager< buffSiz >::scopes_.
Referenced by DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::buildMutator(), and DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::completeDiffApplication().
Here is the caller graph for this function:
|
inlinevirtual |
Implements ScopeManager.
Definition at line 225 of file tree-diff-application.hpp.
References StackScopeManager< buffSiz >::scopes_.
Referenced by StackScopeManager< buffSiz >::closeScope(), and StackScopeManager< buffSiz >::currentScope().
Here is the caller graph for this function:
|
private |
Allocate Heap Storage for nested TreeMutator(s)
Definition at line 177 of file tree-diff-application.hpp.
Referenced by StackScopeManager< buffSiz >::clear(), StackScopeManager< buffSiz >::closeScope(), StackScopeManager< buffSiz >::currentScope(), StackScopeManager< buffSiz >::depth(), and StackScopeManager< buffSiz >::openScope().
Inheritance diagram for StackScopeManager< buffSiz >:
Collaboration diagram for StackScopeManager< buffSiz >: