Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
StackScopeManager< buffSiz > Class Template Reference

#include "lib/diff/tree-diff-application.hpp"

Description

template<size_t buffSiz>
class lib::diff::StackScopeManager< buffSiz >

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 179 of file tree-diff-application.hpp.

Public Member Functions

 StackScopeManager ()
 
virtual void clear ()
 
virtual TreeMutatorcloseScope ()
 
TreeMutatorcurrentScope () const
 
virtual size_t depth () const
 
virtual TreeMutator::Handle openScope ()
 
- Public Member Functions inherited from ScopeManager
virtual ~ScopeManager ()
 this is an interface More...
 

Private Types

using MutatorBuffer = InPlaceBuffer< TreeMutator, buffSiz >
 
using MutatorStack = std::stack< MutatorBuffer >
 

Private Attributes

MutatorStack scopes_
 Allocate Heap Storage for nested TreeMutator(s) More...
 

Member Typedef Documentation

using MutatorBuffer = InPlaceBuffer<TreeMutator, buffSiz>
private

Definition at line 182 of file tree-diff-application.hpp.

using MutatorStack = std::stack<MutatorBuffer>
private

Definition at line 183 of file tree-diff-application.hpp.

Constructor & Destructor Documentation

StackScopeManager ( )
inline

Definition at line 190 of file tree-diff-application.hpp.

Member Function Documentation

TreeMutator& currentScope ( ) const
inline

Definition at line 195 of file tree-diff-application.hpp.

Referenced by DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::initDiffApplication().

+ Here is the caller graph for this function:

virtual TreeMutator::Handle openScope ( )
inlinevirtual

Implements ScopeManager.

Definition at line 208 of file tree-diff-application.hpp.

Referenced by DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::buildMutator().

+ Here is the caller graph for this function:

virtual TreeMutator& closeScope ( )
inlinevirtual

Implements ScopeManager.

Definition at line 219 of file tree-diff-application.hpp.

virtual void clear ( )
inlinevirtual

Implements ScopeManager.

Definition at line 227 of file tree-diff-application.hpp.

Referenced by DiffApplicationStrategy< TAR, enable_if< TreeDiffTraits< TAR > > >::buildMutator().

+ Here is the caller graph for this function:

virtual size_t depth ( ) const
inlinevirtual

Implements ScopeManager.

Definition at line 237 of file tree-diff-application.hpp.

Referenced by StackScopeManager< TreeMutatorSizeTraits< TAR >::siz >::closeScope(), and StackScopeManager< TreeMutatorSizeTraits< TAR >::siz >::currentScope().

+ Here is the caller graph for this function:

Member Data Documentation

MutatorStack scopes_
private

Allocate Heap Storage for nested TreeMutator(s)

Definition at line 186 of file tree-diff-application.hpp.

+ Inheritance diagram for StackScopeManager< buffSiz >:
+ Collaboration diagram for StackScopeManager< buffSiz >:

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