Lumiera  0.pre.03
»edit your freedom«
PlacementIndexQueryResolver Class Reference

#include "steam/mobject/session/placement-index-query-resolver.hpp"

Description

Wrapper for the PlacementIndex, allowing to resolve scope contents discovery.

  • handles queries for placements of
  • is able to process
    • ContentsQuery for retrieving full contents of a scope depth-first
    • PathQuery for retrieving all the parent scopes
    • more generally, any ScopeQuery with these properties, in some variations

Definition at line 81 of file placement-index-query-resolver.hpp.

Public Member Functions

 PlacementIndexQueryResolver (PlacementIndex &theIndex)
 
 PlacementIndexQueryResolver (function< IndexLink > const &accessIndex)
 
template<typename MO >
ResolutionresolutionFunction (Goal const &goal)
 an instance of this function is installed for each specifically typed kind of query to be handled. More...
 
- Public Member Functions inherited from QueryResolver
bool canHandle (Goal const &) const
 
PReso issue (Goal const &query) const
 issue a query to retrieve contents The query is handed over internally to a suitable resolver implementation. More...
 

Private Member Functions

virtual bool canHandleQuery (Goal::QueryID const &) const override
 
template<typename MO >
void defineHandling ()
 
virtual operator string () const override
 short characterisation of the actual facility
 
void preGenerateInvocationContext ()
 
template<typename MO >
lumiera::ResolutionresolutionFunction (Goal const &goal)
 
ExplorersetupExploration (PlacementIndex::ID startID, ScopeQueryKind direction)
 the builder function used to set up an concrete result set object when issuing the query. More...
 

Private Attributes

function< IndexLink > _getIndex
 

Additional Inherited Members

- Protected Types inherited from QueryResolver
using ResolutionMechanism = function< Resolution *(Goal const &)>
 
- Protected Member Functions inherited from QueryResolver
void installResolutionCase (Goal::QueryID const &, ResolutionMechanism)
 

Member Function Documentation

◆ setupExploration()

Explorer * setupExploration ( PlacementIndex::ID  startID,
ScopeQueryKind  direction 
)
private

the builder function used to set up an concrete result set object when issuing the query.

It is preconfigured by the resolutionFunction. The object returned from this function is taken over and managed by a smart-ptr, which is embedded within the iterator given to the client.

Definition at line 384 of file placement-index-query-resolver.cpp.

References steam::mobject::session::CHILDREN, steam::mobject::session::CONTENTS, PlacementIndex::getReferrers(), steam::mobject::session::PARENTS, and steam::mobject::session::PATH.

Referenced by PlacementIndexQueryResolver::operator string(), and PlacementIndexQueryResolver::resolutionFunction().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resolutionFunction()

Resolution* resolutionFunction ( Goal const &  goal)

an instance of this function is installed for each specifically typed kind of query to be handled.

This allows the client code to retrieve just placements of this special type (e.g. Placement<Clip>) in a typesafe manner. We ensure a suitable ContentFilter will be installed, dropping any other query results (of other type) before the point where they may get casted to the desired result type. The key for picking the right resolutionFunction is getResultTypeID<TYPE>()

Definition at line 361 of file placement-index-query-resolver.cpp.

References steam::mobject::session::anonymous_namespace{placement-index-query-resolver.cpp}::getContentFilter(), INSTANCEOF, and PlacementIndexQueryResolver::setupExploration().

+ Here is the call graph for this function:
+ Inheritance diagram for PlacementIndexQueryResolver:
+ Collaboration diagram for PlacementIndexQueryResolver:

The documentation for this class was generated from the following files: