74 : anchor_(constitutingPlacement)
77 Scope::Scope (PlacementMO::ID
const& constitutingPlacement)
78 : anchor_(constitutingPlacement)
85 REQUIRE (!anchor_.isValid());
92 ENSURE (anchor_.isValid());
97 Scope::operator= (
Scope const& o)
110 ScopeLocator::ScopeLocator()
114 ScopeLocator::~ScopeLocator() { }
135 ScopeLocator::stackSize()
const 137 return focusStack_->size();
154 return focusStack_->top();
184 ScopePath& currentPath = focusStack_->top();
185 currentPath.navigate (scope);
186 return wrapIter (currentPath.
begin());
207 Scope::getTop()
const 222 , LERR_(NO_PARENT_SCOPE));
242 return anchor_.isValid();
250 Scope::operator string()
const 253 res += anchor_->shortID();
Implementation level session API: query a scope.
_IterT< IT >::Iter wrapIter(IT &&source)
wraps a given Lumiera Forward Iterator, exposing just a IterSource based frontend.
static lumiera::QueryResolver const & getResolver()
Interface: a facility for resolving (some kind of) queries A concrete subclass has the ability to cre...
Scope getParent() const
retrieve the parent scope which encloses this scope.
Scope()
unlocated NIL scope
framework and to resolve logical queries.
Core abstraction of the Session model: a media object.
static Scope containing(PlacementMO const &aPlacement)
discover the enclosing scope of a given Placement
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Access point to singletons and other kinds of dependencies designated by type.
Sequence of nested scopes within the high-level model.
A Placement scope within the high-level-model.
static PlacementMO & getScopeRoot()
bool isValid() const
check if this scope can be located.
Derived specific exceptions within Lumiera's exception hierarchy.
lumiera::QueryResolver const & theResolver()
static PlacementMO & getScope(PlacementMO const &)
Iteration source interface to abstract a data source, which then can be accessed through IterAdapter ...
lib::IterSource< const Scope >::iterator locate(Scope const &target)
navigate the current QueryFocus scope location.
Implementation facility to work with and navigate nested scopes.
static const Scope INVALID
constant invalid scope token.
ScopePath & pushPath()
push aside the current focus location and open a new ScopePath frame, to serve as current location un...
ScopePath & currPath()
establishes the current query focus location.
Service to build the notion of a current location within the Sesison model.
Lumiera public interface.
static lib::Depend< ScopeLocator > instance
Storage holding the single ScopeLocator instance.
Extension module to build an opaque data source, accessible as Lumiera Forward Iterator.
A custom stack holding ScopePath »frames«.
#define LUMIERA_ERROR_DEFINE(err, msg)
Definition and initialisation of an error constant.