expose the new query-for-contents facility as session service

This commit is contained in:
Fischlurch 2009-11-18 04:23:46 +01:00
parent 9514970b6c
commit c01f774344
2 changed files with 16 additions and 10 deletions

View file

@ -57,6 +57,7 @@
#include "proc/mobject/session/session-service-mock-index.hpp"
#include "proc/mobject/session/session-service-defaults.hpp"
#include "proc/mobject/session/placement-index-query-resolver.hpp"
#include <boost/scoped_ptr.hpp>
#include <vector>
@ -133,6 +134,7 @@ namespace session {
};
template<class IMPL>
struct ServiceAccessPoint<SessionServiceExploreScope, IMPL>
: IMPL
@ -140,9 +142,7 @@ namespace session {
QueryResolver&
getScopeQueryResolver()
{
UNIMPLEMENTED ("how actually to manage the PlacementIndexQueryResolver wrapper instance");
// return IMPL::magic_;
return resolvingWrapper_;
}
PlacementMO&
@ -150,9 +150,18 @@ namespace session {
{
return IMPL::getPlacementIndex()->getRoot();
}
protected:
ServiceAccessPoint<SessionServiceExploreScope, IMPL>()
: resolvingWrapper_(IMPL::getPlacementIndex())
{ }
private:
PlacementIndexQueryResolver resolvingWrapper_;
};
template<class IMPL>
struct ServiceAccessPoint<SessionServiceMockIndex, IMPL>
: IMPL
@ -177,6 +186,7 @@ namespace session {
};
template<class IMPL>
struct ServiceAccessPoint<SessionServiceDefaults, IMPL>
: IMPL

View file

@ -32,9 +32,9 @@
**
** By virtue of this service, QueryFocus, Scope and Placement can
** remain completely agnostic of session's implementation details,
** and especially aren't bound to PlacementIndex. This is important,
** especially they aren't bound to PlacementIndex. This is important,
** because the public session API is casted in terms of PlacementRef
** and QueryFocus An implementation of this service is available
** and QueryFocus. An implementation of this service is available
** through the SessionServices access mechanism.
**
** @see session-impl.hpp implementation of the service
@ -48,7 +48,6 @@
#include "proc/mobject/placement.hpp"
#include "proc/mobject/session/query-resolver.hpp"
//#include "lib/meta/generator.hpp"
@ -56,11 +55,8 @@
namespace mobject {
namespace session {
// using lumiera::typelist::InstantiateChained;
// using lumiera::typelist::InheritFrom;
// using lumiera::typelist::NullType;
struct SessionServiceExploreScope
{
static QueryResolver const& getResolver();