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 : {
36 0 : }
37 :
38 0 : Pipe::~Pipe()
39 : {
40 0 : }
41 :
42 0 : Config* Pipe::getConfig()
43 : {
44 0 : Node* node = getNode();
45 0 : LBASSERT(node);
46 0 : return (node ? node->getConfig() : 0);
47 : }
48 :
49 0 : const Config* Pipe::getConfig() const
50 : {
51 0 : const Node* node = getNode();
52 0 : LBASSERT(node);
53 0 : return (node ? node->getConfig() : 0);
54 : }
55 :
56 0 : ServerPtr Pipe::getServer()
57 : {
58 0 : Config* config = getConfig();
59 0 : LBASSERT(config);
60 0 : return (config ? config->getServer() : 0);
61 : }
62 :
63 0 : ClientPtr Pipe::getClient()
64 : {
65 0 : ServerPtr server = getServer();
66 0 : LBASSERT(server.isValid());
67 :
68 0 : if (!server)
69 0 : return 0;
70 0 : return server->getClient();
71 : }
72 :
73 0 : co::CommandQueue* Pipe::getMainThreadQueue()
74 : {
75 0 : return getServer()->getMainThreadQueue();
76 : }
77 : }
78 : }
79 :
80 : #include "../fabric/pipe.ipp"
81 : template class eq::fabric::Pipe<eq::admin::Node, eq::admin::Pipe,
82 : eq::admin::Window, eq::admin::PipeVisitor>;
83 :
84 : /** @cond IGNORE */
85 : template EQFABRIC_API std::ostream& eq::fabric::operator<<(
86 60 : std::ostream&, const eq::admin::Super&);
87 : /** @endcond */
|