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 0 : {}
40 :
41 0 : Config::~Config()
42 0 : {}
43 :
44 0 : co::CommandQueue* Config::getMainThreadQueue()
45 : {
46 0 : return getClient()->getMainThreadQueue();
47 : }
48 :
49 0 : ClientPtr Config::getClient()
50 : {
51 0 : return getServer()->getClient();
52 : }
53 :
54 0 : ConstClientPtr Config::getClient() const
55 : {
56 0 : return getServer()->getClient();
57 : }
58 :
59 0 : uint128_t Config::commit( const uint32_t /*incarnation*/ )
60 : {
61 0 : return Super::commit( CO_COMMIT_NEXT );
62 : }
63 :
64 : }
65 : }
66 :
67 : #include "../fabric/config.ipp"
68 : #include "../fabric/view.ipp"
69 : #include "../fabric/observer.ipp"
70 : template class eq::fabric::Config< eq::admin::Server, eq::admin::Config,
71 : eq::admin::Observer, eq::admin::Layout,
72 : eq::admin::Canvas, eq::admin::Node,
73 : eq::admin::ConfigVisitor >;
74 :
75 : /** @cond IGNORE */
76 : template EQFABRIC_API std::ostream& eq::fabric::operator << (std::ostream&,
77 : const eq::admin::Config::Super&);
78 : /** @endcond */
79 :
80 : #define FIND_TEMPLATES( FIND_ID_MACRO ) \
81 : FIND_ID_MACRO( eq::admin::Canvas ); \
82 : FIND_ID_MACRO( eq::admin::Channel ); \
83 : FIND_ID_MACRO( eq::admin::Layout ); \
84 : FIND_ID_MACRO( eq::admin::Node ); \
85 : FIND_ID_MACRO( eq::admin::Observer ); \
86 : FIND_ID_MACRO( eq::admin::Pipe ); \
87 : FIND_ID_MACRO( eq::admin::Segment ); \
88 : FIND_ID_MACRO( eq::admin::View ); \
89 : FIND_ID_MACRO( eq::admin::Window );
90 :
91 : #define FIND_ID_TEMPLATE1( type ) \
92 : template EQADMIN_API\
93 : void eq::admin::Config::Super::find< type >( const uint128_t&, \
94 : type** );
95 :
96 : FIND_TEMPLATES( FIND_ID_TEMPLATE1 );
97 :
98 : #define FIND_ID_TEMPLATE2( type ) \
99 : template EQADMIN_API type* \
100 : eq::admin::Config::Super::find< type >( const uint128_t& );
101 :
102 : FIND_TEMPLATES( FIND_ID_TEMPLATE2 );
103 :
104 : #define CONST_FIND_ID_TEMPLATE2( type ) \
105 : template EQADMIN_API const type* \
106 : eq::admin::Config::Super::find< type >( const uint128_t& ) const;
107 :
108 : FIND_TEMPLATES( CONST_FIND_ID_TEMPLATE2 );
109 :
110 : #define FIND_NAME_TEMPLATE1( type ) \
111 : template EQADMIN_API void \
112 : eq::admin::Config::Super::find< type >(const std::string&, \
113 : const type** ) const;
114 : FIND_TEMPLATES( FIND_NAME_TEMPLATE1 );
115 :
116 : #define FIND_NAME_TEMPLATE2( type ) \
117 : template EQADMIN_API type* \
118 : eq::admin::Config::Super::find< type >( const std::string& );
119 :
120 : FIND_TEMPLATES( FIND_NAME_TEMPLATE2 );
121 :
122 :
123 : #define CONST_FIND_NAME_TEMPLATE2( type ) \
124 : template const type* \
125 : eq::admin::Config::Super::find< type >( const std::string& ) const;
126 :
127 84 : FIND_TEMPLATES( CONST_FIND_NAME_TEMPLATE2 );
|