Line data Source code
1 :
2 : /* Copyright (c) 2010-2011, Stefan Eilemann <eile@eyescale.ch>
3 : *
4 : * This library is free software; you can redistribute it and/or modify it under
5 : * the terms of the GNU Lesser General Public License version 2.1 as published
6 : * by the Free Software Foundation.
7 : *
8 : * This library is distributed in the hope that it will be useful, but WITHOUT
9 : * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10 : * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11 : * details.
12 : *
13 : * You should have received a copy of the GNU Lesser General Public License
14 : * along with this library; if not, write to the Free Software Foundation, Inc.,
15 : * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 : */
17 :
18 : #include "config.h"
19 :
20 : #include "canvas.h"
21 : #include "channel.h"
22 : #include "client.h"
23 : #include "layout.h"
24 : #include "node.h"
25 : #include "nodeFactory.h"
26 : #include "observer.h"
27 : #include "pipe.h"
28 : #include "segment.h"
29 : #include "server.h"
30 : #include "view.h"
31 : #include "window.h"
32 :
33 : namespace eq
34 : {
35 : namespace admin
36 : {
37 0 : Config::Config(ServerPtr parent)
38 0 : : Super(parent)
39 : {
40 0 : }
41 :
42 0 : Config::~Config()
43 : {
44 0 : }
45 :
46 0 : co::CommandQueue* Config::getMainThreadQueue()
47 : {
48 0 : return getClient()->getMainThreadQueue();
49 : }
50 :
51 0 : ClientPtr Config::getClient()
52 : {
53 0 : return getServer()->getClient();
54 : }
55 :
56 0 : ConstClientPtr Config::getClient() const
57 : {
58 0 : return getServer()->getClient();
59 : }
60 :
61 0 : uint128_t Config::commit(const uint32_t /*incarnation*/)
62 : {
63 0 : return Super::commit(CO_COMMIT_NEXT);
64 : }
65 : }
66 : }
67 :
68 : #include "../fabric/config.ipp"
69 : #include "../fabric/observer.ipp"
70 : #include "../fabric/view.ipp"
71 : template class eq::fabric::Config<eq::admin::Server, eq::admin::Config,
72 : eq::admin::Observer, eq::admin::Layout,
73 : eq::admin::Canvas, eq::admin::Node,
74 : eq::admin::ConfigVisitor>;
75 :
76 : /** @cond IGNORE */
77 : template EQFABRIC_API std::ostream& eq::fabric::operator<<(
78 : std::ostream&, const eq::admin::Config::Super&);
79 : /** @endcond */
80 :
81 : #define FIND_TEMPLATES(FIND_ID_MACRO) \
82 : FIND_ID_MACRO(eq::admin::Canvas); \
83 : FIND_ID_MACRO(eq::admin::Channel); \
84 : FIND_ID_MACRO(eq::admin::Layout); \
85 : FIND_ID_MACRO(eq::admin::Node); \
86 : FIND_ID_MACRO(eq::admin::Observer); \
87 : FIND_ID_MACRO(eq::admin::Pipe); \
88 : FIND_ID_MACRO(eq::admin::Segment); \
89 : FIND_ID_MACRO(eq::admin::View); \
90 : FIND_ID_MACRO(eq::admin::Window);
91 :
92 : #define FIND_ID_TEMPLATE1(type) \
93 : template EQADMIN_API void eq::admin::Config::Super::find<type>( \
94 : const uint128_t&, type**);
95 :
96 : FIND_TEMPLATES(FIND_ID_TEMPLATE1);
97 :
98 : #define FIND_ID_TEMPLATE2(type) \
99 : template EQADMIN_API type* eq::admin::Config::Super::find<type>( \
100 : const uint128_t&);
101 :
102 : FIND_TEMPLATES(FIND_ID_TEMPLATE2);
103 :
104 : #define CONST_FIND_ID_TEMPLATE2(type) \
105 : template EQADMIN_API const type* eq::admin::Config::Super::find<type>( \
106 : const uint128_t&) const;
107 :
108 : FIND_TEMPLATES(CONST_FIND_ID_TEMPLATE2);
109 :
110 : #define FIND_NAME_TEMPLATE1(type) \
111 : template EQADMIN_API void eq::admin::Config::Super::find<type>( \
112 : const std::string&, const type**) const;
113 : FIND_TEMPLATES(FIND_NAME_TEMPLATE1);
114 :
115 : #define FIND_NAME_TEMPLATE2(type) \
116 : template EQADMIN_API type* eq::admin::Config::Super::find<type>( \
117 : const std::string&);
118 :
119 : FIND_TEMPLATES(FIND_NAME_TEMPLATE2);
120 :
121 : #define CONST_FIND_NAME_TEMPLATE2(type) \
122 : template const type* eq::admin::Config::Super::find<type>( \
123 : const std::string&) const;
124 :
125 60 : FIND_TEMPLATES(CONST_FIND_NAME_TEMPLATE2);
|