22#ifndef STEAM_MOBJECT_SESSION_SCOPE_LOCATOR_H
23#define STEAM_MOBJECT_SESSION_SCOPE_LOCATOR_H
38 class QueryFocusStack;
105 template<
typename MO>
116 template<
typename MO>
133 template<
typename MO>
Access point to singletons and other kinds of dependencies designated by type.
Helper to abstract creation and lifecycle of a dependency.
Interface: a facility for resolving (some kind of) queries A concrete subclass has the ability to cre...
iterator resolveBy(QueryResolver const &resolver) const
Singleton service establishing a link to relate any compound of nested placement scopes to the curren...
ScopeQuery< MO >::iterator query(Scope const &)
use the contents-resolving facility exposed by the session to discover depth-first any object within ...
lumiera::QueryResolver const & theResolver()
ScopeQuery< MO >::iterator getRawPath(Scope const &)
use the contents-resolving facility exposed by the session to discover the path up from the given sco...
lib::IterSource< constScope >::iterator locate(Scope const &target)
navigate the current QueryFocus scope location.
ScopePath & currPath()
establishes the current query focus location.
std::unique_ptr< QueryFocusStack > focusStack_
static lib::Depend< ScopeLocator > instance
Storage holding the single ScopeLocator instance.
ScopeQuery< MO >::iterator explore(Scope const &)
use the contents-resolving facility exposed by the session to enumerate the contents (children) of th...
ScopePath & pushPath()
push aside the current focus location and open a new ScopePath frame, to serve as current location un...
Sequence of nested scopes within the high-level model.
Query a scope to discover it's contents or location.
_Parent::iterator iterator
A Placement scope within the high-level-model.
Singleton services and Dependency Injection.
Extension module to build an opaque data source, accessible as Lumiera Forward Iterator.
Namespace of Session and user visible high-level objects.
@ CONTENTS
discover any contained objects depth-first
@ CHILDREN
discover the immediate children
@ PATH
discover the path to root
Steam-Layer implementation namespace root.
Core abstraction: placement of a media object into session context.
Specific queries to explore contents of a scope within the high-level model.