By using the Query template, you can pose a query in prolog syntax and get some existing or newly created object fulfilling the requested predicates. The actual implementation is hidden behind the instance (Singleton factory). As of 1/2008, it is planned to use an embedded YAP Prolog system at some point in the future, for now we use a mock implementation employing a preconfigured Map.
Fully implementing this facility would require the participating objects to register capabilities they want to provide, together with functors carrying out the neccessary configuration steps. All details and consequences of this approach still have to be worked out...
Definition in file configrules.hpp.
#include "common/p.hpp"
#include "common/query.hpp"
#include "common/meta/generator.hpp"
#include "common/singletonsubclass.hpp"
#include "proc/mobject/session/track.hpp"
#include "proc/asset/procpatt.hpp"
#include "proc/asset/pipe.hpp"
#include "proc/asset/track.hpp"
#include <string>


Go to the source code of this file.
Namespaces | |
| namespace | lumiera |
| namespace | lumiera::query |
Classes | |
| class | lumiera::ConfigRules |
| user-visible Interface to the ConfigRules subsystem. More... | |
| class | lumiera::query::ConfigRules< TYPES > |
| Generic query interface for retrieving objects matching some capability query. More... | |
| class | lumiera::query::Pred< SYM, SIG > |
| class | lumiera::query::QueryHandler< TY > |
| the "frontside" interface: the Proc-Layer code can use this QueryHandler to retrieve instances of the type TY fulfilling the given Query. More... | |
| class | lumiera::query::Resolver |
| class | lumiera::query::TypeHandler< TY > |
| the "backside" interface towards the classes participating in the configuration system (the config system will be delivering instances of these classes for a given query). More... | |
Typedefs | |
| typedef lumiera::typelist::Types < mobject::session::Track, asset::Track, asset::Pipe, const asset::ProcPatt >::List | lumiera::InterfaceTypes |
| the list of all concrete types participating in the rule based config query system | |
Functions | |
| bool | lumiera::query::isFakeBypass (string const &q) |
| lumiera::query::LUMIERA_ERROR_DECLARE (CAPABILITY_QUERY) | |
| unresolvable capability query. | |
| void | lumiera::query::setFakeBypass (string const &q) |
| backdoor for tests: the next config query with this query string will magically suceed with every candidate object provided. | |
1.5.6