Line data Source code
1 :
2 : /* Copyright (c) 2010, 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 "pipe.h"
19 :
20 : #include "client.h"
21 : #include "config.h"
22 : #include "node.h"
23 : #include "nodeFactory.h"
24 : #include "server.h"
25 : #include "window.h"
26 :
27 : namespace eq
28 : {
29 : namespace admin
30 : {
31 : typedef fabric::Pipe< Node, Pipe, Window, PipeVisitor > Super;
32 :
33 0 : Pipe::Pipe( Node* parent )
34 0 : : Super( parent )
35 0 : {}
36 :
37 0 : Pipe::~Pipe()
38 0 : {}
39 :
40 0 : Config* Pipe::getConfig()
41 : {
42 0 : Node* node = getNode();
43 0 : LBASSERT( node );
44 0 : return ( node ? node->getConfig() : 0);
45 : }
46 :
47 0 : const Config* Pipe::getConfig() const
48 : {
49 0 : const Node* node = getNode();
50 0 : LBASSERT( node );
51 0 : return ( node ? node->getConfig() : 0);
52 : }
53 :
54 :
55 0 : ServerPtr Pipe::getServer()
56 : {
57 0 : Config* config = getConfig();
58 0 : LBASSERT( config );
59 0 : return ( config ? config->getServer() : 0 );
60 : }
61 :
62 0 : ClientPtr Pipe::getClient()
63 : {
64 0 : ServerPtr server = getServer();
65 0 : LBASSERT( server.isValid( ));
66 :
67 0 : if( !server )
68 0 : return 0;
69 0 : return server->getClient();
70 : }
71 :
72 0 : co::CommandQueue* Pipe::getMainThreadQueue()
73 : {
74 0 : return getServer()->getMainThreadQueue();
75 : }
76 :
77 :
78 : }
79 : }
80 :
81 : #include "../fabric/pipe.ipp"
82 : template class eq::fabric::Pipe< eq::admin::Node, eq::admin::Pipe,
83 : eq::admin::Window, eq::admin::PipeVisitor >;
84 :
85 : /** @cond IGNORE */
86 : template EQFABRIC_API std::ostream& eq::fabric::operator << ( std::ostream&,
87 84 : const eq::admin::Super& );
88 : /** @endcond */
89 :
|