Equalizer  1.13.0
Parallel Rendering Framework
server.h
1 
2 /* Copyright (c) 2005-2014, Stefan Eilemann <eile@equalizergraphics.com>
3  * 2012, Daniel Nachbaur <danielnachbaur@gmail.com>
4  *
5  * This library is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Lesser General Public License version 2.1 as published
7  * by the Free Software Foundation.
8  *
9  * This library is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12  * details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef EQ_SERVER_H
20 #define EQ_SERVER_H
21 
22 #include <eq/api.h>
23 #include <eq/types.h> // basic typedefs
24 #include <eq/fabric/server.h> // base class
25 #include <co/node.h> // base class
26 
27 namespace eq
28 {
29 namespace detail { class Server; }
30 
40 class Server : public fabric::Server< Client, Server, Config, NodeFactory,
41  co::Node, ServerVisitor >
42 {
43 public:
45  EQ_API Server();
46 
49  virtual void setClient( ClientPtr client );
50  EQ_API co::CommandQueue* getMainThreadQueue();
51  EQ_API co::CommandQueue* getCommandThreadQueue();
52 
53 
62  EQ_API Config* chooseConfig( const fabric::ConfigParams& parameters );
63 
73  EQ_API void releaseConfig( Config* config );
74 
76  EQ_API bool shutdown();
77 
78 protected:
80  EQ_API virtual ~Server();
81 
82 private:
83  detail::Server* const _impl;
84 
85  /* The command handler functions. */
86  bool _cmdChooseConfigReply( co::ICommand& command );
87  bool _cmdReleaseConfigReply( co::ICommand& command );
88  bool _cmdShutdownReply( co::ICommand& command );
89 };
90 }
91 
92 #endif // EQ_SERVER_H
Parameters for running a configuration.
Definition: configParams.h:34
EQ_API Config * chooseConfig(const fabric::ConfigParams &parameters)
Choose a configuration on the server.
A configuration is a visualization session driven by an application.
Definition: config.h:55
Proxy object for the connection to an Equalizer server.
Definition: server.h:40
EQ_API void releaseConfig(Config *config)
Release a configuration.
Base co::Node class for a server.
Definition: fabric/server.h:32
EQ_API Server()
Construct a new server.
The Equalizer client library.
Definition: eq/agl/types.h:23
lunchbox::RefPtr< Client > ClientPtr
A reference-counted pointer to the client.
Definition: fabric/server.h:36
EQ_API bool shutdown()