22 #include <eq/client/api.h>
23 #include <eq/client/types.h>
24 #include <eq/client/visitorResult.h>
25 #include <eq/fabric/node.h>
31 namespace detail {
class Node; }
55 EQ_API
virtual ~Node();
63 EQ_API co::CommandQueue* getMainThreadQueue();
64 EQ_API co::CommandQueue* getCommandThreadQueue();
65 co::CommandQueue* getTransmitterQueue();
68 uint32_t getCurrentFrame()
const;
77 co::Barrier* getBarrier(
const co::ObjectVersion& barrier );
86 FrameDataPtr getFrameData(
const co::ObjectVersion& frameDataVersion );
92 EQ_API
void waitInitialized()
const;
119 uint32_t getFinishedFrame()
const;
127 EQ_API EventOCommand
sendError(
const uint32_t error );
143 EQ_API
virtual void setDirty(
const uint64_t bits );
146 EQ_API
void dirtyClientExit();
150 EQ_API
virtual void attach(
const uint128_t&
id,
const uint32_t instanceID );
160 EQ_API
void startFrame(
const uint32_t frameNumber );
193 EQ_API
virtual bool configInit(
const uint128_t& initID );
211 EQ_API
virtual void frameStart(
const uint128_t& frameID,
212 const uint32_t frameNumber );
226 EQ_API
virtual void frameFinish(
const uint128_t& frameID,
227 const uint32_t frameNumber );
242 const uint32_t frameNumber );
260 const uint32_t frameNumber );
264 detail::Node*
const _impl;
268 void _finishFrame(
const uint32_t frameNumber )
const;
269 void _frameFinish(
const uint128_t& frameID,
270 const uint32_t frameNumber );
272 void _flushObjects();
275 bool _cmdCreatePipe( co::ICommand& command );
276 bool _cmdDestroyPipe( co::ICommand& command );
277 bool _cmdConfigInit( co::ICommand& command );
278 bool _cmdConfigExit( co::ICommand& command );
279 bool _cmdFrameStart( co::ICommand& command );
280 bool _cmdFrameFinish( co::ICommand& command );
281 bool _cmdFrameDrawFinish( co::ICommand& command );
282 bool _cmdFrameTasksFinish( co::ICommand& command );
283 bool _cmdFrameDataTransmit( co::ICommand& command );
284 bool _cmdFrameDataReady( co::ICommand& command );
285 bool _cmdSetAffinity( co::ICommand& command );
287 LB_TS_VAR( _nodeThread );
virtual EQ_API bool processEvent(const Event &event)
Process a received event.
A configuration is a visualization session driven by an application.
virtual EQ_API void frameTasksFinish(const uint128_t &frameID, const uint32_t frameNumber)
Finish all rendering tasks.
EQ_API ServerPtr getServer()
EQ_API void releaseFrame(const uint32_t frameNumber)
Signal the completion of a frame to the parent.
A Node represents a single computer in the cluster.
virtual EQ_API bool configExit()
Exit this node.
virtual EQ_API bool configInit(const uint128_t &initID)
Initialize this node.
virtual EQ_API void frameStart(const uint128_t &frameID, const uint32_t frameNumber)
Start rendering a frame.
lunchbox::RefPtr< Server > ServerPtr
A reference-counted pointer to an eq::Server.
EQ_API bool isRunning() const
virtual EQ_API void frameDrawFinish(const uint128_t &frameID, const uint32_t frameNumber)
Finish drawing.
EQ_API Node(Config *parent)
Construct a new node.
EQ_API void releaseFrameLocal(const uint32_t frameNumber)
Release the local synchronization of the parent for a frame.
EQ_API void waitFrameStarted(const uint32_t frameNumber) const
Wait for a frame to be started.
EQ_API ClientPtr getClient()
Base data transport class for nodes.
virtual EQ_API ~Node()
Destruct the node.
lunchbox::RefPtr< Client > ClientPtr
A reference-counted pointer to an eq::Client.
virtual EQ_API void frameFinish(const uint128_t &frameID, const uint32_t frameNumber)
Finish rendering a frame.
EQ_API void startFrame(const uint32_t frameNumber)
Start a frame by unlocking all child resources.
virtual EQ_API void setDirty(const uint64_t bits)
lunchbox::RefPtr< FrameData > FrameDataPtr
A reference-counted pointer to an eq::FrameData.
EQ_API bool isStopped() const
EQ_API EventOCommand sendError(const uint32_t error)
Send an error event to the application node.