42 #include <boost/functional/hash.hpp> 56 typedef OutputDesignation::PPipe PPipe;
57 typedef OutputDesignation::PID PID;
58 typedef OutputDesignation::TargetSpec TargetSpec;
67 : target_(explicitTarget)
70 PID resolve (PPipe) {
return target_; }
79 : mediator_(indirectTarget)
86 UNIMPLEMENTED (
"how to query a placement for output designation");
96 : busNr_(relative_busNr)
102 UNIMPLEMENTED (
"how the hell can we get a grip on the target to resolve the bus??");
109 OutputDesignation::TargetSpec::~TargetSpec() { }
155 return hash_value (query);
168 typeHandler.
resolve (res, query4pipe);
170 return resulting_targetPipeID;
173 Symbol SEQNR_PREDICATE =
"ord";
178 string seqNr = query4pipe.
extractID (SEQNR_PREDICATE);
185 return query4pipe.rebuild()
186 .removeTerm (SEQNR_PREDICATE);
SpecBuff spec_
Storage to hold the Target Spec inline.
Utilities to support working with predicate queries.
HashVal resolveQuery(Query< asset::Pipe > const &query4pipe)
delegate target pipe resolution to the rules system
HashVal slot(Query< asset::Pipe > const &query)
yield a suitable table slot for this query
the "front side" interface: the Steam-Layer code can use this QueryHandler to retrieve instances of t...
framework and to resolve logical queries.
virtual bool resolve(P< TY > &solution, Query< TY > const &q)=0
try to find or create an object of type TY fulfilling the given query.
Core abstraction of the Session model: a media object.
Steam-Layer implementation namespace root.
Definition of the concrete frontend for rule based configuration within the session.
string extractID(Symbol sym, const string &termString)
(preliminary) helper: instead of really parsing and evaluating the terms, just do a regular expressio...
Token or Atom with distinct identity.
static lib::Depend< ConfigResolver > instance
Singleton factory instance, configured with the actual implementation type.
uint is_defaults_query_with_channel(Query< asset::Pipe > const &query4pipe)
detect the special case, when actually the Nth solution of a defaults query is requested ...
Marker types to indicate a literal string and a Symbol.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
string removeTerm(Symbol sym, string &queryString)
(preliminary) helper: cut a term with the given symbol.
Translating and wiring output designations.
A generic reference mechanism for Placements, as added to the current session.
Lumiera error handling (C++ interface).
size_t HashVal
a STL compatible hash value
Core abstraction: symbolic representation of some output target.
OutputDesignation(PID explicitTarget)
create an output designation by directly specifying the target to connect
user-visible Interface to the ConfigRules subsystem.
Query< asset::Pipe > build_corresponding_sourceQuery(Query< asset::Pipe > const &query4pipe)
..and build the corresponding defaults source query for this case
Generic interface to express a query for specifically typed result elements exposing some capabilitie...
string extractID(Symbol predicate) const
convenience shortcut to extract a desired name-ID.