common/configrules.hpp File Reference


Detailed Description

Interface for accessing rule based configuration.

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...

Note:
this is rather a scrapbook and in flux... don't take this code too literal!
See also:
lumiera::Query

mobject::session::DefsManager

asset::StructFactory

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>

Include dependency graph for configrules.hpp:

This graph shows which files directly or indirectly include this file:

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.


Generated on Fri Nov 7 22:15:11 2008 for Lumiera by  doxygen 1.5.6