46 #ifndef STEAM_MOBJECT_SESSION_SESSIONIMPL_H 47 #define STEAM_MOBJECT_SESSION_SESSIONIMPL_H 70 using fixture::PFixture;
88 virtual bool isValid()
override;
90 virtual bool detach (
PMO const& placement)
override;
94 virtual PFixture& getFixture()
override;
95 virtual void rebuildFixture()
override;
121 isRegisteredID (PMO::ID
const& placementID)
123 return IMPL::getPlacementIndex().contains (placementID);
127 resolveID (PMO::ID
const& placementID)
129 return IMPL::getPlacementIndex().find (placementID);
141 insertCopy (
PMO const& newPlacement, PMO::ID
const& scope)
143 return index().insert (newPlacement,scope);
147 purgeScopeRecursively (PMO::ID
const& scope)
149 size_t siz = index().size();
150 if (index().contains (scope))
151 index().clear (scope);
153 ENSURE (!index().contains (scope) || (scope == index().getRoot().getID()));
154 ENSURE (siz >= index().size());
155 return siz != index().size();
159 detachElement (PMO::ID
const& placementID)
161 return index().remove (placementID);
168 return IMPL::getPlacementIndex();
180 getScopeQueryResolver()
182 return resolvingWrapper_;
188 return IMPL::getPlacementIndex().getScope(placement2locate);
192 getScope (PlacementMO::ID
const& placement2locate)
194 return IMPL::getPlacementIndex().getScope(placement2locate);
200 return IMPL::getPlacementIndex().getRoot();
212 PlacementIndex& operator() (
void) {
return accessPoint_.getPlacementIndex(); }
214 AccessCurrentIndex (IMPL& impl) : accessPoint_(impl) { }
219 : resolvingWrapper_(AccessCurrentIndex (*
this))
234 if (mockIndex_ && mockIndex_->isValid())
237 return IMPL::getPlacementIndex();
243 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.