19 #ifndef EQFABRIC_PIPE_H    20 #define EQFABRIC_PIPE_H    22 #include <eq/fabric/object.h>            23 #include <eq/fabric/pixelViewport.h>     24 #include <eq/fabric/types.h>    31 template <
class N, 
class P, 
class W, 
class V>
    43     const N* 
getNode()
 const { 
return _node; }
    56     uint32_t 
getPort()
 const { 
return _port; }
    57     EQFABRIC_INL 
void setPort(
const uint32_t port); 
    71     EQFABRIC_INL 
void setDevice(
const uint32_t device); 
    87     void notifyPixelViewportChanged();
    90     EQFABRIC_INL PipePath getPath() 
const;
    99     EQFABRIC_INL VisitorResult 
accept(V& visitor);
   102     EQFABRIC_INL VisitorResult 
accept(V& visitor) 
const;
   114         IATTR_ALL = IATTR_LAST + 5
   118     EQFABRIC_INL 
void setIAttribute(
const IAttribute attr, 
const int32_t value);
   123         return _iAttributes[attr];
   129     EQFABRIC_INL 
static const std::string& getIAttributeString(
   135     EQFABRIC_INL 
virtual void backup();         
   136     EQFABRIC_INL 
virtual void restore();        
   137     void create(W** window);                    
   138     void release(W* window);                    
   139     virtual void output(std::ostream&)
 const {} 
   141     EQFABRIC_INL 
virtual uint128_t commit(
   142         const uint32_t incarnation = CO_COMMIT_NEXT);
   147     explicit Pipe(N* parent);
   148     EQFABRIC_INL 
virtual ~
Pipe(); 
   150     virtual void attach(
const uint128_t& 
id,
   151                         const uint32_t instanceID); 
   153     EQFABRIC_INL 
virtual void serialize(co::DataOStream& os,
   154                                         const uint64_t dirtyBits);
   156     EQFABRIC_INL 
virtual void deserialize(co::DataIStream& is,
   157                                           const uint64_t dirtyBits);
   159     EQFABRIC_INL 
virtual void notifyDetach(); 
   162     EQFABRIC_INL 
virtual void setDirty(
const uint64_t bits);
   165     virtual ChangeType getChangeType()
 const { 
return UNBUFFERED; }
   166     W* _findWindow(
const uint128_t& 
id); 
   170         DIRTY_ATTRIBUTES = Object::DIRTY_CUSTOM << 0,
   171         DIRTY_WINDOWS = Object::DIRTY_CUSTOM << 1,
   172         DIRTY_PIXELVIEWPORT = Object::DIRTY_CUSTOM << 2,
   173         DIRTY_MEMBER = Object::DIRTY_CUSTOM << 3,
   174         DIRTY_PIPE_BITS = DIRTY_ATTRIBUTES | DIRTY_WINDOWS |
   175                           DIRTY_PIXELVIEWPORT | DIRTY_MEMBER | DIRTY_OBJECT_BITS
   179     virtual uint64_t getRedistributableBits()
 const { 
return DIRTY_PIPE_BITS; }
   188     int32_t _iAttributes[IATTR_ALL];
   205     void _addWindow(W* window);
   206     EQFABRIC_INL 
bool _removeWindow(W* window);
   207     template <
class, 
class, 
class, 
class>
   211     bool _mapNodeObjects() { 
return _node->_mapNodeObjects(); }
   212     typedef co::CommandFunc<Pipe<N, P, W, V>> CmdFunc;
   213     bool _cmdNewWindow(co::ICommand& command);
   214     bool _cmdNewWindowReply(co::ICommand& command);
   217 template <
class N, 
class P, 
class W, 
class V>
   218 EQFABRIC_INL std::ostream& operator<<(std::ostream&, const Pipe<N, P, W, V>&);
   222 #endif // EQFABRIC_PIPE_H IAttribute
Pipe attributes. 
 
uint32_t getDevice() const 
Returns the device number of this pipe. 
 
const N * getNode() const 
 
Bind render thread to subset of cores. 
 
DirtyBits
The changed parts of the object since the last pack(). 
 
uint32_t getPort() const 
Returns the port number of this pipe. 
 
Base data transport class for pipes. 
 
std::vector< W * > Windows
A vector of pointers to windows. 
 
const PixelViewport & getPixelViewport() const 
 
Execute tasks in separate thread (default) 
 
The Equalizer client library. 
 
EQFABRIC_INL void setPixelViewport(const PixelViewport &pvp)
Set the pipe's pixel viewport. 
 
Base data transport class for windows. 
 
EQFABRIC_INL VisitorResult accept(V &visitor)
Perform a depth-first traversal of this pipe. 
 
const Windows & getWindows() const 
 
Internal base class for all distributed, inheritable Equalizer objects. 
 
Holds a 2D pixel viewport with methods for manipulation. 
 
int32_t getIAttribute(const IAttribute attr) const