Equalizer  2.0.0
Parallel Rendering Framework
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 Windows & getWindows () 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 PixelViewport & getPixelViewport () 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
EQFABRIC_API bool isDirty () const override
 
EQFABRIC_API uint128_t commit (const uint32_t incarnation=CO_COMMIT_NEXT) override
 
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 Object & operator= (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 notifyDetach () override
 
EQFABRIC_API void serialize (co::DataOStream &os, const uint64_t dirtyBits) override
 
EQFABRIC_API void deserialize (co::DataIStream &is, const uint64_t dirtyBits) override
 
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)
 
EQFABRIC_API void updateEvent (Event &event, int64_t time)
 

Friends

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

Attributes

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

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

Referenced by eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >::getPixelViewport().

+ Here is the caller graph for this function:

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 126 of file fabric/pipe.h.

Referenced by eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >::getIAttribute().

+ Here is the caller graph for this function:

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

Referenced by eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >::getPixelViewport().

+ Here is the caller graph for this function:


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