51 #include <boost/functional/hash.hpp> 65 typedef OutputDesignation::PPipe PPipe;
66 typedef OutputDesignation::PID PID;
67 typedef OutputDesignation::TargetSpec TargetSpec;
76 : target_(explicitTarget)
79 PID resolve (PPipe) {
return target_; }
88 : mediator_(indirectTarget)
95 UNIMPLEMENTED (
"how to query a placement for output designation");
105 : busNr_(relative_busNr)
111 UNIMPLEMENTED (
"how the hell can we get a grip on the target to resolve the bus??");
118 OutputDesignation::TargetSpec::~TargetSpec() { }
164 return hash_value (query);
177 typeHandler.
resolve (res, query4pipe);
179 return resulting_targetPipeID;
182 Symbol SEQNR_PREDICATE =
"ord";
187 string seqNr = query4pipe.
extractID (SEQNR_PREDICATE);
194 return query4pipe.rebuild()
195 .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.