37#ifndef STEAM_MOBJECT_SESSION_SESSIONIMPL_H
38#define STEAM_MOBJECT_SESSION_SESSIONIMPL_H
79 virtual bool isValid()
override;
81 virtual bool detach (
PMO const& placement)
override;
114 return IMPL::getPlacementIndex().contains (placementID);
120 return IMPL::getPlacementIndex().find (placementID);
134 return index().insert (newPlacement,scope);
140 size_t siz = index().size();
141 if (index().contains (scope))
142 index().clear (scope);
144 ENSURE (!index().contains (scope) or (scope == index().getRoot().getID()));
145 ENSURE (siz >= index().size());
146 return siz != index().size();
152 return index().remove (placementID);
159 return IMPL::getPlacementIndex();
173 return resolvingWrapper_;
179 return IMPL::getPlacementIndex().getScope(placement2locate);
185 return IMPL::getPlacementIndex().getScope(placement2locate);
191 return IMPL::getPlacementIndex().getRoot();
210 : resolvingWrapper_(AccessCurrentIndex (*this))
225 if (mockIndex_ and mockIndex_->isValid())
228 return IMPL::getPlacementIndex();
234 mockIndex_ = alternativeIndex;
Interface: a facility for resolving (some kind of) queries A concrete subclass has the ability to cre...
The (current) Session holds all the user visible content to be edited and manipulated within the Lumi...
Wrapper for the PlacementIndex, allowing to resolve scope contents discovery.
Structured compound of Placement instances with lookup capabilities.
bool isValid() const
validity self-check, used for sanity checks and the session self-check.
Session manager implementation class holding the actual smart pointer to the current Session impl.
Implementation class for the Session interface.
virtual void rebuildFixture() override
SessionImpl()
create a new empty session with default values.
PlacementIndex & getPlacementIndex()
virtual MObjectRef attach(PMO const &placement) override
attach a copy within the scope of the current QueryFocus point
virtual PFixture & getFixture() override
virtual MObjectRef getRoot() override
virtual bool isValid() override
virtual bool detach(PMO const &placement) override
detach the denoted object (placement) from model, together with any child objects contained in the sc...
Implementation-level service for resolving an Placement-ID.
there is an implicit PlacementIndex available on a global level, by default implemented within the cu...
Implementation-level service for resolving an Placement-ID.
Collection of configured implementation-level services to provide by the Session.
Backbone data structure of the low-level render node model The fixture defines the boundary between t...
shared_ptr< Fixture > PFixture
Namespace of Session and user visible high-level objects.
SessionServices< Types< SessionServiceFetch, SessionServiceMutate, SessionServiceExploreScope, SessionServiceMockIndex, SessionServiceDefaults >, SessManagerImpl, SessionImpl > SessionImplAPI
actual configuration of the session implementation compound: forming an inheritance chain of all inte...
Access point to a single implementation-level API.
MORef< MObject > MObjectRef
Steam-Layer implementation namespace root.
Implementing resolution of "discover contents"-queries based on PlacementIndex.
Core of the session implementation datastructure.
Self-contained sub-elements on the Session API.
Implementation level session API: to manage default configured objects.
Implementation level session API: query a scope.
Implementation level session API: resolve a Placement by hash-ID.
Implementation level session API: PlacementIndex mock for tests.
A mechanism for exposing and accessing implementation level services of the session.
Primary Interface to the current Session.
AccessCurrentIndex(IMPL &impl)
PlacementIndexQueryResolver resolvingWrapper_
PlacementMO & getScopeRoot()
PlacementMO & getScope(PlacementMO::ID const &placement2locate)
QueryResolver & getScopeQueryResolver()
PlacementMO & getScope(PlacementMO const &placement2locate)
PMO & resolveID(PMO::ID const &placementID)
bool isRegisteredID(PMO::ID const &placementID)
void reset_PlacementIndex(PlacementIndex *alternativeIndex=0)
PlacementIndex * mockIndex_
PlacementIndex & getPlacementIndex()
PMO::ID const & insertCopy(PMO const &newPlacement, PMO::ID const &scope)
bool purgeScopeRecursively(PMO::ID const &scope)
bool detachElement(PMO::ID const &placementID)
Collection of implementation components, providing self-contained sub-elements exposed on the public ...
Implementation-level service for issuing contents/discovery queries.