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