73 return pattern % prefix % rani(10'000);
103 string sID = newID (
"stream");
111 CHECK (pipe1 != pipe2);
112 CHECK (stID == pipe2->getStreamID());
114 CHECK (!
find (pipe1->getPipeID()),
"accidental clash of random test-IDs");
115 CHECK (!
find (pipe2->getPipeID()),
"accidental clash of random test-IDs");
122 Query<Pipe> pipeWithSpecificStream(
"stream("+sID+
")");
126 CHECK (
find (pipe1->getPipeID()),
"failure declaring object as default");
127 CHECK (
find (pipe2->getPipeID()),
"failure declaring object as default");
129 CHECK (stID != pipe1->getStreamID(),
"accidental clash");
138 string sID = newID (
"stream");
139 Query<Pipe> query_for_streamID (
"stream("+sID+
")");
144 typeHandler.
resolve (pipe1, query_for_streamID);
147 CHECK (!
find (pipe1->getPipeID()));
150 CHECK (pipe2 == pipe1);
151 CHECK (
find (pipe1->getPipeID()));
153 return pipe1->getPipeID();
161 REQUIRE (
find (pipe->getPipeID()),
"test assumes pre-registered default pipe");
162 long cnt = pipe.use_count();
166 CHECK (!
find (pipe->getPipeID()));
167 CHECK (cnt == pipe.use_count());
Steam-Layer Interface: Assets.
Steam-Layer Interface: Asset Lookup and Organisation.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Token or Atom with distinct identity.
Generic interface to express a query for specifically typed result elements exposing some capabilitie...
lib::P< TAR > create(Query< TAR > const &)
retrieve an object fulfilling the query and register it as default.
the "front side" interface: the Steam-Layer code can use this QueryHandler to retrieve instances of t...
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.
user-visible Interface to the ConfigRules subsystem.
static lib::Depend< ConfigResolver > instance
Singleton factory instance, configured with the actual implementation type.
Facade for the Asset subsystem.
Superinterface describing especially bookkeeping properties.
structural asset corresponding to the part of the model forming a processing pipe for generating medi...
static PPipe query(string const &properties)
convenience shortcut for retrieving default configured pipes
lib::P< Pipe > newPipe(string pipeID, string streamID)
Factory method for creating Pipes explicitly.
key abstraction: structural asset Created automatically as a sideeffect of building the structure of ...
static StructFactory retrieve
storage for the static StructFactory instance
DefaultsAccess defaults
manages default configured objects
static session::SessManager & current
access point to the current Session
A front-end for using printf-style formatting.
Definition of the concrete frontend for rule based configuration within the session.
Implementation of the core defaults-management operations.
void normaliseID(string &id)
ensure standard format for a given id string.
void setFakeBypass(lumiera::QueryKey const &q)
backdoor for tests: the next config query with this query string will magically succeed with every ca...
string newID(Symbol prefix)
create a random new ID
_Fmt pattern("dummy_%s_%i")
bool find(Query< Pipe > &q)
shortcut: run just a query without creating new instances
Namespace of Session and user visible high-level objects.
Steam-Layer implementation namespace root.
Test runner and basic definitions for tests.
bool isnil(lib::time::Duration const &dur)
A "processing pipe" represented as Asset.
Utilities to support working with predicate queries.
Simplistic test class runner.
#define LAUNCHER(_TEST_CLASS_, _GROUPS_)
Primary Interface to the current Session.
Framework for classification of media streams.
Asset representation of structural elements within the model.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...