26 #include <eq/fabric/config.h> 27 #include <co/objectHandler.h> 31 namespace detail {
class Config; }
56 Node, ConfigVisitor >,
57 public co::ObjectHandler
64 EQ_API
explicit Config(
ServerPtr parent );
67 EQ_API
virtual ~Config();
81 EQ_API co::NodePtr getApplicationNode();
83 EQ_API co::CommandQueue* getMainThreadQueue();
84 EQ_API co::CommandQueue* getCommandThreadQueue();
87 EQ_API uint32_t getCurrentFrame()
const;
90 EQ_API uint32_t getFinishedFrame()
const;
93 EQ_API GLStats::Data getStatistics()
const;
100 EQ_API
bool isRunning()
const;
103 EQ_API
void stopRunning();
115 EQ_API int64_t getTime()
const;
121 const Channel* findChannel(
const std::string& name )
const 122 {
return find< Channel >( name ); }
150 EQ_API
virtual bool init(
const uint128_t& initID );
166 EQ_API
virtual bool exit();
187 EQ_API
bool update();
190 EQ_API
void setLatency(
const uint32_t latency )
override;
202 EQ_API
bool registerObject( co::Object*
object )
override;
213 EQ_API
void deregisterObject( co::Object*
object )
override;
222 EQ_API
virtual bool mapObject( co::Object*
object,
const uint128_t&
id,
223 const uint128_t& version = co::VERSION_OLDEST );
227 EQ_API
virtual uint32_t mapObjectNB( co::Object*
object,
const uint128_t&
id,
228 const uint128_t& version = co::VERSION_OLDEST );
231 EQ_API uint32_t mapObjectNB( co::Object*
object,
233 const uint128_t& version,
234 co::NodePtr master )
override;
237 EQ_API
bool mapObjectSync(
const uint32_t requestID )
override;
246 EQ_API
void unmapObject( co::Object*
object )
override;
254 EQ_API f_bool_t syncObject( co::Object*
object,
const uint128_t&
id,
256 const uint32_t instanceID = CO_INSTANCE_ALL)
278 EQ_API
virtual uint32_t startFrame(
const uint128_t& frameID );
295 EQ_API
virtual uint32_t finishFrame();
306 EQ_API
virtual uint32_t finishAllFrames();
319 EQ_API
void releaseFrameLocal(
const uint32_t frameNumber );
330 EQ_API
void stopFrames();
347 EQ_API EventOCommand sendEvent(
const uint32_t type );
356 EQ_API EventOCommand sendError(
const uint32_t type,
const Error& error );
361 EQ_API Errors getErrors();
377 LB_TIMEOUT_INDEFINITE )
const;
387 EQ_API
virtual bool handleEvent( EventType type,
const Event& event );
388 EQ_API
virtual bool handleEvent( EventType type,
const SizeEvent& event );
389 EQ_API
virtual bool handleEvent( EventType type,
const PointerEvent& event);
390 EQ_API
virtual bool handleEvent( EventType type,
const KeyEvent& event );
391 EQ_API
virtual bool handleEvent( EventType type,
const AxisEvent& event );
392 EQ_API
virtual bool handleEvent( EventType type,
const ButtonEvent& event );
395 EQ_API
bool checkEvent()
const;
406 EQ_API
virtual void handleEvents();
414 EQ_API
virtual void addStatistic(
const Statistic& stat );
422 void setupMessagePump(
Pipe* pipe );
425 void setupServerConnections(
const std::string& connectionData );
429 EQ_API
void attach(
const uint128_t&
id,
430 const uint32_t instanceID )
override;
432 EQ_API
void notifyAttached()
override;
433 EQ_API
void notifyDetach()
override;
435 EQ_API
void changeLatency(
const uint32_t latency )
override;
436 EQ_API
bool mapViewObjects()
const override;
439 detail::Config*
const _impl;
444 bool _needsLocalSync()
const;
447 void _updateStatistics();
451 void _releaseObjects();
454 void _exitMessagePump();
457 bool _cmdSyncClock( co::ICommand& command );
458 bool _cmdCreateNode( co::ICommand& command );
459 bool _cmdDestroyNode( co::ICommand& command );
460 bool _cmdInitReply( co::ICommand& command );
461 bool _cmdExitReply( co::ICommand& command );
462 bool _cmdUpdateVersion( co::ICommand& command );
463 bool _cmdUpdateReply( co::ICommand& command );
464 bool _cmdReleaseFrameLocal( co::ICommand& command );
465 bool _cmdFrameFinish( co::ICommand& command );
466 bool _cmdSwapObject( co::ICommand& command );
470 #endif // EQ_CONFIG_H A visitor to traverse configs and all children.
A channel represents a two-dimensional viewport within a Window.
A configuration is a visualization session driven by an application.
Proxy object for the connection to an Equalizer server.
A canvas represents a logical 2D projection surface.
A Pipe represents a graphics card (GPU) on a Node.
A Node represents a single computer in the cluster.
lunchbox::RefPtr< Server > ServerPtr
A reference-counted pointer to an eq::Server.
A command specialization for config events.
An interface to process system messages or events.
lunchbox::RefPtr< Client > ClientPtr
A reference-counted pointer to an eq::Client.
bool init(const int argc, char **argv, NodeFactory *nodeFactory)
Initialize the Equalizer client library.
The Equalizer client library.
A layout groups one or more View, logically belonging together.
An Observer looks at one or more views from a certain position (head matrix) with a given eye separat...
Base data class for a configuration.
fabric::Config< Server, Config, Observer, Layout, Canvas, Node, ConfigVisitor > Super
base class
EQ_API bool exit()
De-initialize the Equalizer client library.
lunchbox::RefPtr< const Client > ConstClientPtr
A reference-counted pointer to a const eq::Client.