Lumiera  0.pre.03
»edit your freedom«
SpecificContentsQuery< MO > Class Template Reference

#include "steam/mobject/session/specific-contents-query.hpp"

Description

template<class MO>
class steam::mobject::session::SpecificContentsQuery< MO >

from the session, based on a filter predicate.

As the parent type, ContentsQuery, the resolution of this query requires to explore the given scope depth first; but in addition to filter based on type, a client-provided predicate is applied to each result.

Note
this may degenerate on large sessions.
Todo:
develop a system of sub-indices and specialised queries

Definition at line 54 of file specific-contents-query.hpp.

Public Member Functions

 SpecificContentsQuery (PlacementMO const &scope, SpecialPredicate const &specialPred)
 
- Public Member Functions inherited from ContentsQuery< MO >
 ContentsQuery (PlacementMO const &scope)
 
- Public Member Functions inherited from ScopeQuery< MO >
 ScopeQuery (PlacementMO const &scope, ScopeQueryKind direction)
 
ScopeQueryKind searchDirection () const
 
PlacementMO::ID const & searchScope () const
 
- Public Member Functions inherited from DiscoveryQuery< MO >
ContentFilter contentFilter () const
 
- Public Member Functions inherited from Query< RES >
 Query (string querySpec)
 
string extractID (Symbol predicate) const
 convenience shortcut to extract a desired name-ID. More...
 
 operator QueryKey () const
 automatic conversion from Query to QueryKey for indexing and ordering. More...
 
iterator operator() (QueryResolver const &resolver) const
 notational convenience shortcut, synonymous to Query<RES>::resolveBy()
 
Builder rebuild () const
 
iterator resolveBy (QueryResolver const &resolver) const
 
bool usesPredicate (Symbol predicate) const
 
- Public Member Functions inherited from Goal
virtual ~Goal ()
 this is a marker baseclass
 
QueryID const & getQID () const
 

Classes

class  Filter
 Filter functor, built on top of a predicate, which is provided by the client on creation of this SpecivicContentsQuery instance. More...
 

Private Types

typedef ContentsQuery< MO >::ContentFilter ContentFilter
 
typedef function< bool(TypedPlacement)> SpecialPredicate
 
typedef Placement< MO > const & TypedPlacement
 

Private Member Functions

ContentFilter buildContentFilter () const
 using a specialised version of the filtering, which doesn't only check the concrete type, but also applies a custom filter predicate More...
 

Private Attributes

Filter specialTest_
 

Additional Inherited Members

- Public Types inherited from ScopeQuery< MO >
typedef _Parent::ContentFilter ContentFilter
 
typedef _Parent::iterator iterator
 
- Public Types inherited from DiscoveryQuery< MO >
typedef function< bool(PlacementMO const &)> ContentFilter
 
typedef _Query::iterator iterator
 
- Public Types inherited from Query< RES >
typedef lib::IterAdapter< Cursor, PResoiterator
 
- Public Types inherited from Goal
enum  Kind {
  EMPTY = 0,
  GENERIC = 1,
  DISCOVERY,
  PLACEMENT
}
 
- Static Public Member Functions inherited from Query< RES >
static Builder build (Kind queryType=Goal::GENERIC)
 
- Protected Member Functions inherited from Query< RES >
 Query (QueryID typeID, lib::QueryText const &genericQuerySpec)
 
 Query (QueryID typeID, string querySpec)
 
lib::QueryText getQueryDefinition () const
 access the complete syntactical representation of this query. More...
 
- Protected Member Functions inherited from Goal
 Goal (QueryID qid)
 
- Static Protected Member Functions inherited from Query< RES >
static QueryID defineQueryTypeID (Kind queryType=Goal::GENERIC)
 
- Protected Attributes inherited from Goal
QueryID id_
 

Member Function Documentation

◆ buildContentFilter()

ContentFilter buildContentFilter ( ) const
inlineprivatevirtual

using a specialised version of the filtering, which doesn't only check the concrete type, but also applies a custom filter predicate

Returns
function object, embedding a copy of the Filter functor.

Reimplemented from ScopeQuery< MO >.

Definition at line 98 of file specific-contents-query.hpp.

+ Inheritance diagram for SpecificContentsQuery< MO >:
+ Collaboration diagram for SpecificContentsQuery< MO >:

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