Equalizer 1.0
|
Base data transport class for pipes. More...
#include <pipe.h>
Classes | |
struct | BackupData |
Public Member Functions | |
N * | getNode () |
const N * | getNode () const |
const Windows & | getWindows () const |
uint32_t | getPort () const |
Returns the port number of this pipe. | |
EQFABRIC_INL void | setPort (const uint32_t port) |
uint32_t | getDevice () const |
Returns the device number of this pipe. | |
EQFABRIC_INL void | setDevice (const uint32_t device) |
const PixelViewport & | getPixelViewport () const |
EQFABRIC_INL void | setPixelViewport (const PixelViewport &pvp) |
Set the pipe's pixel viewport. | |
void | notifyPixelViewportChanged () |
EQFABRIC_INL PipePath | getPath () const |
EQFABRIC_INL VisitorResult | accept (V &visitor) |
Traverse this pipe and all children using a pipe visitor. | |
EQFABRIC_INL VisitorResult | accept (V &visitor) const |
Const-version of accept(). | |
virtual EQFABRIC_INL void | backup () |
virtual EQFABRIC_INL void | restore () |
void | create (W **window) |
void | release (W *window) |
virtual void | output (std::ostream &) const |
Public Types | |
typedef std::vector< W * > | Windows |
A vector of pointers to windows. | |
Protected Member Functions | |
Pipe (N *parent) | |
virtual void | attach (const co::base::UUID &id, const uint32_t instanceID) |
virtual EQFABRIC_INL void | serialize (co::DataOStream &os, const uint64_t dirtyBits) |
Worker for pack() and getInstanceData(). | |
virtual EQFABRIC_INL void | deserialize (co::DataIStream &is, const uint64_t dirtyBits) |
Worker for unpack() and applyInstanceData(). | |
virtual EQFABRIC_INL void | notifyDetach () |
Notify that this object will be deregistered or unmapped. | |
virtual EQFABRIC_INL void | setDirty (const uint64_t bits) |
Add dirty flags to mark data for distribution. | |
virtual ChangeType | getChangeType () const |
W * | _findWindow (const co::base::UUID &id) |
virtual uint64_t | getRedistributableBits () const |
Protected Types | |
enum | DirtyBits { DIRTY_ATTRIBUTES = Object::DIRTY_CUSTOM << 0, DIRTY_WINDOWS = Object::DIRTY_CUSTOM << 1, DIRTY_PIXELVIEWPORT = Object::DIRTY_CUSTOM << 2, DIRTY_MEMBER = Object::DIRTY_CUSTOM << 3, DIRTY_PIPE_BITS } |
The changed parts of the object since the last pack(). More... | |
Friends | |
class | Window |
Attributes | |
enum | IAttribute { IATTR_HINT_THREAD, IATTR_HINT_CUDA_GL_INTEROP, IATTR_LAST, IATTR_ALL = IATTR_LAST + 5 } |
Pipe attributes. More... | |
EQFABRIC_INL void | setIAttribute (const IAttribute attr, const int32_t value) |
int32_t | getIAttribute (const IAttribute attr) const |
bool | isThreaded () const |
static EQFABRIC_INL const std::string & | getIAttributeString (const IAttribute attr) |
Base data transport class for pipes.
Definition at line 34 of file include/eq/fabric/pipe.h.
typedef std::vector< W* > eq::fabric::Pipe< N, P, W, V >::Windows |
A vector of pointers to windows.
Definition at line 38 of file include/eq/fabric/pipe.h.
enum eq::fabric::Pipe::DirtyBits [protected] |
The changed parts of the object since the last pack().
Subclasses should define their own bits, starting at DIRTY_CUSTOM.
Reimplemented from eq::fabric::Object.
Definition at line 172 of file include/eq/fabric/pipe.h.
enum eq::fabric::Pipe::IAttribute |
Pipe attributes.
IATTR_HINT_THREAD |
Execute tasks in separate thread (default) |
IATTR_HINT_CUDA_GL_INTEROP |
Configure CUDA context. |
Definition at line 114 of file include/eq/fabric/pipe.h.
EQFABRIC_INL VisitorResult eq::fabric::Pipe< N, P, W, V >::accept | ( | V & | visitor | ) |
Traverse this pipe and all children using a pipe visitor.
visitor | the visitor. |
EQFABRIC_INL VisitorResult eq::fabric::Pipe< N, P, W, V >::accept | ( | V & | visitor | ) | const |
Const-version of accept().
virtual EQFABRIC_INL void eq::fabric::Pipe< N, P, W, V >::deserialize | ( | co::DataIStream & | , |
const uint64_t | |||
) | [protected, virtual] |
Worker for unpack() and applyInstanceData().
This function is called with the dirty bits send by the master instance. The dirty bits are received beforehand, and do not need to be deserialized by the overriding method.
Reimplemented from eq::fabric::Object.
virtual ChangeType eq::fabric::Pipe< N, P, W, V >::getChangeType | ( | ) | const [inline, protected, virtual] |
Reimplemented from eq::fabric::Serializable.
Definition at line 168 of file include/eq/fabric/pipe.h.
uint32_t eq::fabric::Pipe< N, P, W, V >::getDevice | ( | ) | const [inline] |
Returns the device number of this pipe.
The device number identifies the X screen for systems using the X11/GLX window system, or the number of the virtual screen for the AGL window system. On Windows systems it identifies the graphics adapter. Normally the device identifies a GPU.
Definition at line 74 of file include/eq/fabric/pipe.h.
int32_t eq::fabric::Pipe< N, P, W, V >::getIAttribute | ( | const IAttribute | attr | ) | const [inline] |
Definition at line 128 of file include/eq/fabric/pipe.h.
const N* eq::fabric::Pipe< N, P, W, V >::getNode | ( | ) | const [inline] |
Definition at line 43 of file include/eq/fabric/pipe.h.
N* eq::fabric::Pipe< N, P, W, V >::getNode | ( | ) | [inline] |
Definition at line 41 of file include/eq/fabric/pipe.h.
const PixelViewport& eq::fabric::Pipe< N, P, W, V >::getPixelViewport | ( | ) | const [inline] |
uint32_t eq::fabric::Pipe< N, P, W, V >::getPort | ( | ) | const [inline] |
Returns the port number of this pipe.
The port number identifies the X server for systems using the X11/GLX window system, i.e., the :<port>.<screen> of the DISPLAY name. It currently has no meaning on all other systems.
Definition at line 59 of file include/eq/fabric/pipe.h.
const Windows& eq::fabric::Pipe< N, P, W, V >::getWindows | ( | ) | const [inline] |
Definition at line 46 of file include/eq/fabric/pipe.h.
virtual EQFABRIC_INL void eq::fabric::Pipe< N, P, W, V >::notifyDetach | ( | ) | [protected, virtual] |
Notify that this object will be deregistered or unmapped.
The method is called from the thread initiating the deregistration or unmapping, before the operation is executed.
Reimplemented from eq::fabric::Object.
virtual EQFABRIC_INL void eq::fabric::Pipe< N, P, W, V >::serialize | ( | co::DataOStream & | , |
const uint64_t | |||
) | [protected, virtual] |
Worker for pack() and getInstanceData().
Override this and deserialize() if you want to distribute subclassed data.
This method is called with DIRTY_ALL from getInstanceData() and with the actual dirty bits from pack(), which also resets the dirty state afterwards. The dirty bits are transmitted beforehand, and do not need to be transmitted by the overriding method.
Reimplemented from eq::fabric::Object.
virtual EQFABRIC_INL void eq::fabric::Pipe< N, P, W, V >::setDirty | ( | const uint64_t | bits | ) | [protected, virtual] |
Add dirty flags to mark data for distribution.
Reimplemented from eq::fabric::Serializable.
Reimplemented in eq::Pipe.
EQFABRIC_INL void eq::fabric::Pipe< N, P, W, V >::setPixelViewport | ( | const PixelViewport & | pvp | ) |
Set the pipe's pixel viewport.
If invalid, the OSPipe has to set it to the device viewport during configInit().
pvp | the viewport in pixels. |