Equalizer
1.2.1
|
A Node represents a single computer in the cluster. More...
#include <node.h>
Classes | |
class | TransmitThread |
Public Member Functions | |
Node (Config *parent) | |
Construct a new node. | |
virtual | ~Node () |
Destruct the node. | |
ClientPtr | getClient () |
ServerPtr | getServer () |
co::CommandQueue * | getMainThreadQueue () |
co::CommandQueue * | getCommandThreadQueue () |
uint32_t | getCurrentFrame () const |
co::Barrier * | getBarrier (const co::ObjectVersion barrier) |
FrameData * | getFrameData (const co::ObjectVersion &dataVersion) |
void | waitInitialized () const |
bool | isRunning () const |
bool | isStopped () const |
void | waitFrameStarted (const uint32_t frameNumber) const |
Wait for a frame to be started. | |
uint32_t | getFinishedFrame () const |
virtual void | setDirty (const uint64_t bits) |
void | dirtyClientExit () |
Public Attributes | |
eq::Node::TransmitThread | transmitter |
Protected Member Functions | |
virtual void | attach (const UUID &id, const uint32_t instanceID) |
Actions | |
void | startFrame (const uint32_t frameNumber) |
Start a frame by unlocking all child resources. | |
void | releaseFrame (const uint32_t frameNumber) |
Signal the completion of a frame to the parent. | |
void | releaseFrameLocal (const uint32_t frameNumber) |
Release the local synchronization of the parent for a frame. | |
Callbacks | |
The callbacks are called by Equalizer during rendering to execute various actions. | |
virtual bool | configInit (const uint128_t &initID) |
Initialize this node. | |
virtual bool | configExit () |
Exit this node. | |
virtual void | frameStart (const uint128_t &frameID, const uint32_t frameNumber) |
Start rendering a frame. | |
virtual void | frameFinish (const uint128_t &frameID, const uint32_t frameNumber) |
Finish rendering a frame. | |
virtual void | frameDrawFinish (const uint128_t &frameID, const uint32_t frameNumber) |
Finish drawing. | |
virtual void | frameTasksFinish (const uint128_t &frameID, const uint32_t frameNumber) |
Finish all rendering tasks. |
A Node represents a single computer in the cluster.
Each node is executed in a separate process. Each process has only its local node instantiated, that is, it has at most instance of a Node and does not see other node instances. The application process may not have a node, which is the case when it does not contribute to the rendering.
The eq::Node is not to be confused with the co::Node which represents the process in the underlying peer-to-peer network layer. The eq::Client and eq::Server are co::Nodes representing the local client and Equalizer server, respectively.
Definition at line 47 of file include/eq/client/node.h.
eq::Node::Node | ( | Config * | parent | ) |
Construct a new node.
Reimplemented in osgScaleViewer::Node, eqPly::Node, eVolve::Node, and eqNbody::Node.
virtual eq::Node::~Node | ( | ) | [virtual] |
Destruct the node.
Reimplemented from eq::fabric::Node< Config, Node, Pipe, NodeVisitor >.
Reimplemented in eqPly::Node, eVolve::Node, and eqNbody::Node.
virtual bool eq::Node::configExit | ( | ) | [protected, virtual] |
Exit this node.
Reimplemented in osgScaleViewer::Node, eqPly::Node, and eqNbody::Node.
Referenced by eqNbody::Node::configExit().
virtual bool eq::Node::configInit | ( | const uint128_t & | initID | ) | [protected, virtual] |
Initialize this node.
initID | the init identifier. |
Reimplemented in osgScaleViewer::Node, eqPly::Node, eVolve::Node, and eqNbody::Node.
Referenced by eqNbody::Node::configInit(), eVolve::Node::configInit(), eqPly::Node::configInit(), and osgScaleViewer::Node::configInit().
virtual void eq::Node::frameDrawFinish | ( | const uint128_t & | frameID, |
const uint32_t | frameNumber | ||
) | [protected, virtual] |
Finish drawing.
Called once per frame after the last draw operation. Waits for the pipes to release the local synchonization and releases the node's local synchronization if the thread model is draw_sync (the default).
frameID | the per-frame identifier. |
frameNumber | the frame finished with draw. |
virtual void eq::Node::frameFinish | ( | const uint128_t & | frameID, |
const uint32_t | frameNumber | ||
) | [protected, virtual] |
Finish rendering a frame.
Called once at the end of each frame, to end the frame and to do per-frame updates of node-specific data. This method has to call releaseFrame().
frameID | the per-frame identifier. |
frameNumber | the frame to finish. |
virtual void eq::Node::frameStart | ( | const uint128_t & | frameID, |
const uint32_t | frameNumber | ||
) | [protected, virtual] |
Start rendering a frame.
Called once at the beginning of each frame, to start the node's frame and to do per-frame updates of node-specific data. This method has to call startFrame(). Immediately releases local synchronization if the thread model is async.
frameID | the per-frame identifier. |
frameNumber | the frame to start. |
Reimplemented in osgScaleViewer::Node.
virtual void eq::Node::frameTasksFinish | ( | const uint128_t & | frameID, |
const uint32_t | frameNumber | ||
) | [protected, virtual] |
Finish all rendering tasks.
Called once per frame after all frame tasks. Waits for the pipes to release the local synchonization and releases the node's local synchronization if the thread model is local_sync.
Note that frameFinish is called after the latency is exhausted and synchronizes pipe thread execution.
frameID | the per-frame identifier. |
frameNumber | the frame finished with draw. |
bool eq::Node::isRunning | ( | ) | const |
bool eq::Node::isStopped | ( | ) | const |
void eq::Node::releaseFrame | ( | const uint32_t | frameNumber | ) | [protected] |
Signal the completion of a frame to the parent.
frameNumber | the frame to end. |
void eq::Node::releaseFrameLocal | ( | const uint32_t | frameNumber | ) | [protected] |
Release the local synchronization of the parent for a frame.
frameNumber | the frame to release. |
virtual void eq::Node::setDirty | ( | const uint64_t | bits | ) | [virtual] |
Reimplemented from eq::fabric::Node< Config, Node, Pipe, NodeVisitor >.
void eq::Node::startFrame | ( | const uint32_t | frameNumber | ) | [protected] |
Start a frame by unlocking all child resources.
frameNumber | the frame to start. |
void eq::Node::waitFrameStarted | ( | const uint32_t | frameNumber | ) | const |
Wait for a frame to be started.
Used by the pipe task methods to implement the current thread synchronization model.
frameNumber | the frame number. |