Equalizer  1.10.1
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
eq::fabric::Pipe< N, P, W, V > Class Template Reference

Base data transport class for pipes. More...

#include <pipe.h>

+ Inheritance diagram for eq::fabric::Pipe< N, P, W, V >:
+ Collaboration diagram for eq::fabric::Pipe< N, P, W, V >:

Public Types

typedef std::vector< W * > Windows
 A vector of pointers to windows. More...
 
- Public Types inherited from eq::fabric::Object
enum  DirtyBits {
  DIRTY_NAME = Serializable::DIRTY_CUSTOM << 0, DIRTY_USERDATA = Serializable::DIRTY_CUSTOM << 1, DIRTY_TASKS = Serializable::DIRTY_CUSTOM << 2, DIRTY_REMOVED = Serializable::DIRTY_CUSTOM << 3,
  DIRTY_SERIAL = Serializable::DIRTY_CUSTOM << 4, DIRTY_CUSTOM = Serializable::DIRTY_CUSTOM << 6, DIRTY_OBJECT_BITS = DIRTY_NAME | DIRTY_USERDATA
}
 The changed parts of the object since the last pack(). More...
 

Public Member Functions

Data Access
N * getNode ()
 
const N * getNode () const
 
const WindowsgetWindows () const
 
uint32_t getPort () const
 Returns the port number of this pipe. More...
 
EQFABRIC_INL void setPort (const uint32_t port)
 
uint32_t getDevice () const
 Returns the device number of this pipe. More...
 
EQFABRIC_INL void setDevice (const uint32_t device)
 
const PixelViewportgetPixelViewport () const
 
EQFABRIC_INL void setPixelViewport (const PixelViewport &pvp)
 Set the pipe's pixel viewport. More...
 
void notifyPixelViewportChanged ()
 
EQFABRIC_INL PipePath getPath () const
 
EQFABRIC_INL VisitorResult accept (V &visitor)
 Perform a depth-first traversal of this pipe. More...
 
EQFABRIC_INL VisitorResult accept (V &visitor) const
 Const-version of accept(). More...
 
internal
virtual EQFABRIC_INL void backup ()
 
virtual EQFABRIC_INL void restore ()
 
void create (W **window)
 
void release (W *window)
 
virtual void output (std::ostream &) const
 
virtual EQFABRIC_INL uint128_t commit (const uint32_t incarnation=CO_COMMIT_NEXT)
 
- Public Member Functions inherited from eq::fabric::Object
virtual EQFABRIC_API bool isDirty () const
 
virtual EQFABRIC_API void setName (const std::string &name)
 Set the name of the object. More...
 
EQFABRIC_API const std::string & getName () const
 
EQFABRIC_API void setUserData (co::Object *userData)
 Set user-specific data. More...
 
EQFABRIC_API co::Object * getUserData ()
 
EQFABRIC_API const co::Object * getUserData () const
 
EQFABRIC_API uint32_t getTasks () const
 Return the set of tasks this channel might execute in the worst case. More...
 
EQFABRIC_API uint32_t getSerial () 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
}
 

Protected Member Functions

 Pipe (N *parent)
 
virtual void attach (const uint128_t &id, const uint32_t instanceID)
 
virtual EQFABRIC_INL void serialize (co::DataOStream &os, const uint64_t dirtyBits)
 
virtual EQFABRIC_INL void deserialize (co::DataIStream &is, const uint64_t dirtyBits)
 
virtual EQFABRIC_INL void notifyDetach ()
 
virtual EQFABRIC_INL void setDirty (const uint64_t bits)
 
virtual ChangeType getChangeType () const
 
W * _findWindow (const uint128_t &id)
 
virtual uint64_t getRedistributableBits () const
 
- Protected Member Functions inherited from eq::fabric::Object
EQFABRIC_API Object ()
 Construct a new Object. More...
 
EQFABRIC_API Object (const Object &)
 Construct an unmapped, unregistered copy of an object. More...
 
virtual EQFABRIC_API ~Object ()
 Destruct the object. More...
 
EQFABRIC_API Objectoperator= (const Object &from)
 NOP assignment operator. More...
 
virtual bool hasMasterUserData ()
 
virtual uint32_t getUserDataLatency () const
 
EQFABRIC_API void setTasks (const uint32_t tasks)
 
EQFABRIC_API void postRemove (Object *child)
 
virtual void removeChild (const uint128_t &)
 
template<class C , class S >
void commitChild (C *child, S *sender, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChild (C *child, const uint32_t incarnation)
 
template<class C , class S >
void commitChildren (const std::vector< C * > &children, S *sender, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChildren (const std::vector< C * > &children, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChildren (const std::vector< C * > &children, const uint32_t incarnation)
 
template<class C >
void syncChildren (const std::vector< C * > &children)
 
template<class P , class C >
void releaseChildren (const std::vector< C * > &children)
 
EQFABRIC_API bool _cmdSync (co::ICommand &command)
 

Friends

template<class , class , class , class >
class Window
 

Attributes

enum  IAttribute {
  IATTR_HINT_THREAD, IATTR_HINT_AFFINITY, 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)
 

Detailed Description

template<class N, class P, class W, class V>
class eq::fabric::Pipe< N, P, W, V >

Base data transport class for pipes.

See Also
eq::Pipe

Definition at line 31 of file fabric/pipe.h.

Member Typedef Documentation

template<class N, class P, class W, class V>
typedef std::vector< W* > eq::fabric::Pipe< N, P, W, V >::Windows

A vector of pointers to windows.

Version
1.0

Definition at line 35 of file fabric/pipe.h.

Member Enumeration Documentation

template<class N, class P, class W, class V>
enum eq::fabric::Pipe::IAttribute

Pipe attributes.

Version
1.0
Enumerator
IATTR_HINT_THREAD 

Execute tasks in separate thread (default)

IATTR_HINT_AFFINITY 

Bind render thread to subset of cores.

IATTR_HINT_CUDA_GL_INTEROP 

Configure CUDA context.

Definition at line 112 of file fabric/pipe.h.

Member Function Documentation

template<class N, class P, class W, class V>
EQFABRIC_INL VisitorResult eq::fabric::Pipe< N, P, W, V >::accept ( V &  visitor)

Perform a depth-first traversal of this pipe.

Parameters
visitorthe visitor.
Returns
the result of the visitor traversal.
Version
1.0
template<class N, class P, class W, class V>
EQFABRIC_INL VisitorResult eq::fabric::Pipe< N, P, W, V >::accept ( V &  visitor) const

Const-version of accept().

Version
1.0
template<class N, class P, class W, class V>
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.

Returns
the device number of this pipe, or LB_UNDEFINED_UINT32.
Version
1.0

Definition at line 72 of file fabric/pipe.h.

template<class N, class P, class W, class V>
int32_t eq::fabric::Pipe< N, P, W, V >::getIAttribute ( const IAttribute  attr) const
inline
Returns
the value of a pipe integer attribute.
Version
1.0

Definition at line 127 of file fabric/pipe.h.

template<class N, class P, class W, class V>
N* eq::fabric::Pipe< N, P, W, V >::getNode ( )
inline
Returns
the parent node of this pipe.
Version
1.0

Definition at line 40 of file fabric/pipe.h.

template<class N, class P, class W, class V>
const N* eq::fabric::Pipe< N, P, W, V >::getNode ( ) const
inline
Returns
the parent node of this pipe.
Version
1.0

Definition at line 42 of file fabric/pipe.h.

template<class N, class P, class W, class V>
const PixelViewport& eq::fabric::Pipe< N, P, W, V >::getPixelViewport ( ) const
inline
Returns
the pixel viewport.
Version
1.0

Definition at line 77 of file fabric/pipe.h.

template<class N, class P, class W, class V>
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.

Returns
the port number of this pipe, or LB_UNDEFINED_UINT32.
Version
1.0

Definition at line 57 of file fabric/pipe.h.

template<class N, class P, class W, class V>
const Windows& eq::fabric::Pipe< N, P, W, V >::getWindows ( ) const
inline
Returns
the vector of child windows.
Version
1.0

Definition at line 45 of file fabric/pipe.h.

template<class N, class P, class W, class V>
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().

Parameters
pvpthe viewport in pixels.
Version
1.0

The documentation for this class was generated from the following file: