77 PMO& root = index->getRoot();
89 CHECK (scopePosition ==
Scope(currentFocus));
90 CHECK (currentFocus == theFocus);
91 CHECK (2 ==
refs(currentFocus));
92 CHECK (2 ==
refs(theFocus));
103 CHECK (
Scope(focus).isRoot());
109 CHECK (
Scope(focus).isRoot());
110 focus.
shift (someObj);
111 CHECK (!
Scope(focus).isRoot());
113 CHECK (someObj == path.getLeaf());
114 CHECK (
Scope(focus).getParent().getParent().isRoot());
118 CHECK (someObj !=
Scope(focus));
135 uint num_refs =
refs (original);
136 CHECK (num_refs > 1);
139 cout << subF << endl;
140 CHECK (subF == original);
142 CHECK ( 1 ==
refs(subF) );
143 CHECK (num_refs ==
refs(original));
147 CHECK (subF2 != subF);
148 CHECK (subF == original);
149 cout << subF2 << endl;
155 cout << subF2 << endl;
158 cout << subF2 <<
"<<<--discovery exhausted" << endl;
161 cout << subF2 <<
"<<<--after pop()" << endl;
162 CHECK (subF2 == subF);
163 CHECK (2 ==
refs(subF2));
164 CHECK (2 ==
refs(subF));
167 cout << subF << endl;
169 CHECK ( 1 ==
refs(subF));
170 CHECK (num_refs ==
refs(original));
Representation of the current scope when navigating the session model.
Subclass-1 is not defined "processible", thus will always be handled as DummyMO...
Scope getParent() const
retrieve the parent scope which encloses this scope.
PPIdx build_testScopes()
helper for tests: create a pseudo-session (actually just a PlacementIndex), which contains some neste...
void manipulate_subFocus()
Steam-Layer implementation namespace root.
QueryFocus & shift(Scope const &)
shift this QueryFocus to a container-like scope, causing it to navigate, changing the current ScopePa...
Namespace of Session and user visible high-level objects.
Sequence of nested scopes within the high-level model.
QueryFocus & pop()
cease to use this specific reference to the current frame.
A Placement scope within the high-level-model.
Unit test helper to generate a system of nested test scopes.
Core of the session implementation datastructure.
Simple test class runner.
ScopeQuery< MO >::iterator explore() const
discover any matching object contained as immediate Child within current focus.
size_t refs(QueryFocus const &focus)
Helper: extract the refcount of the current path referred by the given focus.
void checkNavigation(QueryFocus &focus)
QueryFocus & reset()
discard any state and navigate current focus path to model root
ScopePath const & currentPath() const
ScopeQuery< MO >::iterator query() const
discover depth-first any matching object within current focus.
Current focus location to use as point-of reference for contents and location discovery queries...
Adapter for building an implementation of the »Lumiera Forward Iterator« concept. ...
static QueryFocus push()
push the "current QueryFocus" aside and open a new focus frame, which starts out at the same location...