Lumiera  0.pre.03
»edityourfreedom«
config-resolver.cpp
Go to the documentation of this file.
1 /*
2  ConfigResolver - concrete setup for rule based configuration
3 
4  Copyright (C) Lumiera.org
5  2008, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 * *****************************************************/
22 
23 
32 #include "lib/error.hpp"
33 #include "include/lifecycle.h"
34 #include "proc/config-resolver.hpp"
36 #include "lib/depend-inject.hpp"
37 
40 
41 
42 namespace proc {
43  namespace {
44 
53  void
54  configure_ConfigResolver()
55  {
56  lib::DependInject<ConfigResolver>::useSingleton<mobject::session::query::MockConfigRules>();
57  }
58 
59  LifecycleHook schedule_ (ON_GLOBAL_INIT, &configure_ConfigResolver);
60  }
61 
62 
68 
69 } // namespace proc
70 
71 
72 
73 
74 
75 
76 
77 
79 
80 
81 
82  /***************************************************************/
83  /* explicit template instantiations for querying various Types */
84  /***************************************************************/
85 
86 #include "proc/asset/procpatt.hpp"
87 #include "proc/asset/pipe.hpp"
88 #include "proc/asset/timeline.hpp"
89 #include "proc/asset/sequence.hpp"
91 
92 namespace lumiera{
93 namespace query {
94 
95  using proc::asset::Pipe;
96  using proc::asset::PPipe;
101  using proc::asset::Sequence;
103 
106 
107  template PPipe DefsManager::operator() (Query<Pipe> const&);
108  template PProcPatt DefsManager::operator() (Query<const ProcPatt> const&);
109  template PFork DefsManager::operator() (Query<Fork> const&);
110  template PTimeline DefsManager::operator() (Query<Timeline> const&);
111  template PSequence DefsManager::operator() (Query<Sequence> const&);
112 
113  template bool DefsManager::define (PPipe const&, Query<Pipe> const&);
114  template bool DefsManager::forget (PPipe const&);
115 
116 
117 }} // namespace lumiera::query
Installing and invoking of application lifecycle event callbacks.
Structural building block of the session: a sequence of clips.
Definition of a structural asset to express patterns of wiring or processing Processing patterns can ...
A "processing pipe" represented as Asset.
lib::P< const asset::ProcPatt > PProcPatt
Mock/Test/Debugging Implementation of the config rules system.
Per type specific configuration of instances created as service dependencies.
lib::P< Timeline > PTimeline
Definition: timeline.hpp:90
lib::P< Pipe > PPipe
Definition: pipe.hpp:51
Organisational grouping device within the Session model ("Track" / "Media Bin").
Definition of the concrete frontend for rule based configuration within the session.
Access point to singletons and other kinds of dependencies designated by type.
Definition: depend.hpp:289
lib::P< Sequence > PSequence
This framework allows to (re)configure the lib::Depend front-end for dependency-injection.
const char * ON_GLOBAL_INIT
to be triggered in main()
static lib::Depend< ConfigResolver > instance
Singleton factory instance, configured with the actual implementation type.
define and register a callback for a specific lifecycle event.
Definition: lifecycle.h:76
Lumiera error handling (C++ interface).
structural asset corresponding to the part of the model forming a processing pipe for generating medi...
Definition: pipe.hpp:79
Lumiera public interface.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Definition: trait.hpp:76
A Fork serves as grouping device within the Session.
Definition: fork.hpp:103
Proc-Layer implementation namespace root.
Definition: id-scheme.hpp:63
"Processing Pattern" is a structural Asset representing information how to build some part of the ren...
Definition: procpatt.hpp:61
Generic interface to express a query for specifically typed result elements exposing some capabilitie...
Definition: query.hpp:279
Top level structural element within the session.
Implementation of the core defaults-management operations.