#include <OSGPointConnection.h>
Inheritance diagram for osg::PointConnection:

Public Member Functions | |
Constructors | |
| * | PointConnection (int zeroCopyThreshold) |
| virtual | ~PointConnection (void) |
type info | |
| *virtual const ConnectionType * | getType (void)=0 |
connection | |
| *virtual Channel | connectGroup (const std::string &address, Time timeout=-1)=0 |
| virtual void | disconnect (void)=0 |
| virtual Channel | acceptGroup (Time timeout=-1)=0 |
synchronisation | |
| *virtual bool | wait (Time timeout=-1)=0 throw (ReadError) |
| virtual void | signal (void)=0 throw (WriteError) |
connection | |
| *virtual Channel | connectPoint (const std::string &address, Time timeout=-1)=0 |
| virtual Channel | acceptPoint (Time timeout=-1)=0 |
channel handling | |
| *virtual Channel | selectChannel (Time timeout=-1)=0 throw (ReadError) |
bind to interface | |
| *virtual std::string | bind (const std::string &address="")=0 |
params | |
| *virtual void | setParams (const std::string ¶ms) |
interface | |
| *const std::string & | getInterface (void) |
| void | setInterface (const std::string &interf) |
Put | |
| *void | put (void const *src, UInt32 size) |
| void | putAndFree (MemoryHandle src, UInt32 size) |
| void | putValue (const bool &value) |
| void | putValue (const UInt8 &value) |
| void | putValue (const UInt16 &value) |
| void | putValue (const UInt32 &value) |
| void | putValue (const UInt64 &value) |
| void | putValue (const Int8 &value) |
| void | putValue (const Int16 &value) |
| void | putValue (const Int32 &value) |
| void | putValue (const Int64 &value) |
| void | putValue (const Real16 &value) |
| void | putValue (const Real32 &value) |
| void | putValue (const Real64 &value) |
| void | putValue (const Real128 &value) |
| void | putValue (const std::string &value) |
| void | putValues (const bool *value, UInt32 size) |
| void | putValues (const UInt8 *value, UInt32 size) |
| void | putValues (const UInt16 *value, UInt32 size) |
| void | putValues (const UInt32 *value, UInt32 size) |
| void | putValues (const UInt64 *value, UInt32 size) |
| void | putValues (const Int8 *value, UInt32 size) |
| void | putValues (const Int16 *value, UInt32 size) |
| void | putValues (const Int32 *value, UInt32 size) |
| void | putValues (const Int64 *value, UInt32 size) |
| void | putValues (const Real16 *value, UInt32 size) |
| void | putValues (const Real32 *value, UInt32 size) |
| void | putValues (const Real64 *value, UInt32 size) |
| void | putValues (const Real128 *value, UInt32 size) |
| void | putValues (const std::string *value, UInt32 size) |
Get | |
| *void | get (void *dst, UInt32 size) |
| void | getAndAlloc (MemoryHandle &src, UInt32 size) |
| void | getValue (bool &value) |
| void | getValue (UInt8 &value) |
| void | getValue (UInt16 &value) |
| void | getValue (UInt32 &value) |
| void | getValue (UInt64 &value) |
| void | getValue (Int8 &value) |
| void | getValue (Int16 &value) |
| void | getValue (Int32 &value) |
| void | getValue (Int64 &value) |
| void | getValue (Real16 &value) |
| void | getValue (Real32 &value) |
| void | getValue (Real64 &value) |
| void | getValue (Real128 &value) |
| void | getValue (std::string &value) |
| void | getValues (bool *value, UInt32 size) |
| void | getValues (UInt8 *value, UInt32 size) |
| void | getValues (UInt16 *value, UInt32 size) |
| void | getValues (UInt32 *value, UInt32 size) |
| void | getValues (UInt64 *value, UInt32 size) |
| void | getValues (Int8 *value, UInt32 size) |
| void | getValues (Int16 *value, UInt32 size) |
| void | getValues (Int32 *value, UInt32 size) |
| void | getValues (Int64 *value, UInt32 size) |
| void | getValues (Real16 *value, UInt32 size) |
| void | getValues (Real32 *value, UInt32 size) |
| void | getValues (Real64 *value, UInt32 size) |
| void | getValues (Real128 *value, UInt32 size) |
| void | getValues (std::string *value, UInt32 size) |
Helper | |
| *virtual void | forceCopy (void) |
| virtual void | forceDirectIO (void) |
| void | flush (void) |
| write data not yet written | |
| void | setNetworkOrder (bool value) |
| bool | getNetworkOrder (void) |
Public Attributes | |
public types | |
| *typedef Int32 | Channel |
Protected Types | |
| typedef std::vector< MemoryBlock > | BuffersT |
| typedef std::list< MemoryHandle > | FreeMemT |
Protected Member Functions | |
Read | |
| *BuffersT::iterator | readBufBegin (void) |
| BuffersT::iterator | readBufEnd (void) |
| void | readBufAdd (MemoryHandle mem, UInt32 size, UInt32 dataSize=0) |
| void | readBufClear (void) |
| virtual void | read (MemoryHandle src, UInt32 size) |
| virtual void | readBuffer (void) |
Write | |
| *BuffersT::iterator | writeBufBegin (void) |
| BuffersT::iterator | writeBufEnd (void) |
| void | writeBufAdd (MemoryHandle mem, UInt32 size, UInt32 dataSize=0) |
| void | writeBufClear (void) |
| virtual void | write (MemoryHandle src, UInt32 size) |
| virtual void | writeBuffer (void) |
Helper | |
| *bool | isReadBufferEmpty (void) |
Protected Attributes | |
members | |
| *bool | _pointToPoint |
protected members | |
| *std::string | _interface |
Member | |
| *BuffersT | _readBuffers |
| BuffersT | _writeBuffers |
| BuffersT | _zeroCopyBuffers |
| UInt32 | _zeroCopyThreshold |
| FreeMemT | _freeMem |
| BuffersT::iterator | _currentReadBuffer |
| UInt32 | _currentReadBufferPos |
| BuffersT::iterator | _currentWriteBuffer |
| UInt32 | _currentWriteBufferPos |
| bool | _networkOrder |
Private Types | |
| typedef Connection | Inherited |
Private Member Functions | |
| PointConnection (const PointConnection &source) | |
| PointConnection & | operator= (const PointConnection &source) |
Definition at line 58 of file OSGPointConnection.h.
|
|
Reimplemented from osg::Connection. Reimplemented in osg::PointMCastConnection, osg::PointSockConnection, and osg::PointSockPipeline. Definition at line 110 of file OSGPointConnection.h. |
|
|
Definition at line 213 of file OSGBinaryDataHandler.h. |
|
|
Definition at line 214 of file OSGBinaryDataHandler.h. |
|
|
Constructor Definition at line 61 of file OSGPointConnection.cpp. 00061 : 00062 Connection(zeroCopyThreshold) 00063 { 00064 }
|
|
|
Destructor Definition at line 69 of file OSGPointConnection.cpp.
|
|
|
|
|
|
Implements osg::Connection. Implemented in osg::PointMCastConnection, osg::PointSockConnection, and osg::PointSockPipeline. Referenced by osg::ClusterServer::acceptClient(). |
|
||||||||||||
|
Implemented in osg::PointMCastConnection, osg::PointSockConnection, and osg::PointSockPipeline. Referenced by osg::ClusterNetwork::connectAllGroupToPoint(), and osg::ClusterNetwork::connectAllPointToPoint(). |
|
|
Implemented in osg::PointMCastConnection, osg::PointSockConnection, and osg::PointSockPipeline. |
|
|
Implemented in osg::PointMCastConnection, osg::PointSockConnection, and osg::PointSockPipeline. Referenced by osg::ClusterServer::acceptClient(). |
|
|
Implements osg::Connection. Implemented in osg::PointMCastConnection, and osg::PointSockConnection. |
|
|
Implements osg::Connection. Implemented in osg::PointSockConnection. |
|
|
|
|
||||||||||||
|
Implemented in osg::GroupMCastConnection, osg::GroupSockConnection, osg::GroupSockPipeline, and osg::PointSockConnection. Referenced by osg::ClusterWindow::init(). |
|
|
Implemented in osg::GroupMCastConnection, osg::GroupSockConnection, osg::GroupSockPipeline, and osg::PointSockConnection. Referenced by osg::ClusterNetwork::connectAllGroupToPoint(), and osg::ClusterNetwork::connectAllPointToPoint(). |
|
|
|
Implemented in osg::GroupSockConnection, and osg::PointSockConnection. Referenced by osg::ClusterServer::acceptClient(). |
|
|
set connections parameters, a comma separated list e.g. "TTL=255" Reimplemented in osg::GroupMCastConnection, and osg::GroupSockConnection. Definition at line 91 of file OSGConnection.cpp. Referenced by osg::ClusterWindow::init(). 00092 { 00093 // do nothing this is implemented in the derived classes e.g. OSGGroupMCastConnection.cpp 00094 }
|
|
|
get network interface Definition at line 98 of file OSGConnection.cpp. References osg::Connection::_interface. Referenced by osg::PointSockConnection::bind(), osg::GroupSockConnection::bind(), osg::PointSockPipeline::initialize(), osg::PointMCastConnection::initialize(), and osg::GroupMCastConnection::initialize(). 00099 { 00100 return _interface; 00101 }
|
|
|
set network interface Definition at line 105 of file OSGConnection.cpp. References osg::Connection::_interface. Referenced by osg::ClusterServer::acceptClient(), and osg::ClusterWindow::init(). 00106 { 00107 _interface = interf; 00108 }
|
|
||||||||||||
|
Definition at line 83 of file OSGBinaryDataHandler.cpp. References osg::BinaryDataHandler::_currentWriteBuffer, osg::BinaryDataHandler::_currentWriteBufferPos, osg::BinaryDataHandler::_zeroCopyBuffers, osg::BinaryDataHandler::_zeroCopyThreshold, osg::osgMin(), osg::BinaryDataHandler::pushBuffer(), osg::BinaryDataHandler::write(), and osg::BinaryDataHandler::writeBufEnd(). Referenced by osg::BinaryDataHandler::putAndFree(), osg::BinaryDataHandler::putValue(), osg::BinaryDataHandler::putValues(), and osg::ClusterViewBuffer::send(). 00084 { 00085 UInt8 const *data = static_cast<UInt8 const *>(src); 00086 00087 if(_zeroCopyThreshold && size >= _zeroCopyThreshold) 00088 { 00089 if(_zeroCopyThreshold == 1) 00090 { 00091 write(const_cast<MemoryHandle>(data), size); 00092 } 00093 else 00094 { 00095 UInt8 tag = 1; 00096 00097 // we have to write a tag, to indicate the membership 00098 // of this zero copy block to the current data block 00099 put(&tag, sizeof(tag)); 00100 00101 _zeroCopyBuffers.push_back( 00102 MemoryBlock(const_cast<MemoryHandle>(data), size, size)); 00103 } 00104 } 00105 else 00106 { 00107 UInt32 copySize; 00108 00109 while(size != 0) 00110 { 00111 if(_currentWriteBuffer == writeBufEnd()) 00112 { 00113 pushBuffer(); 00114 } 00115 00116 copySize = osgMin((_currentWriteBuffer->getSize() - 00117 _currentWriteBufferPos), 00118 size); 00119 00120 memcpy(_currentWriteBuffer->getMem() + _currentWriteBufferPos, 00121 data, 00122 copySize); 00123 00124 size -= copySize; 00125 _currentWriteBufferPos += copySize; 00126 data += copySize; 00127 00128 // skip to next buffer if current buffer is full 00129 if(_currentWriteBufferPos == _currentWriteBuffer->getSize()) 00130 { 00131 _currentWriteBuffer->setDataSize(_currentWriteBufferPos); 00132 _currentWriteBuffer++; 00133 _currentWriteBufferPos = 0; 00134 } 00135 } 00136 } 00137 }
|
|
||||||||||||
|
Put data from dynamic allocated block The caller doesn't know, when the block will be written. So we are responsible for freeing this block. Definition at line 144 of file OSGBinaryDataHandler.cpp. References osg::BinaryDataHandler::_freeMem, osg::BinaryDataHandler::_zeroCopyThreshold, and osg::BinaryDataHandler::put(). 00145 { 00146 put(src, size); 00147 00148 if(_zeroCopyThreshold && size > _zeroCopyThreshold) 00149 { 00150 _freeMem.push_back(src); 00151 } 00152 else 00153 { 00154 delete [] src; 00155 } 00156 }
|
|
|
|
Definition at line 71 of file OSGBinaryDataHandler.inl. References osg::BinaryDataHandler::put().
|
|
|
Definition at line 77 of file OSGBinaryDataHandler.inl. References osg::osghtons(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 85 of file OSGBinaryDataHandler.inl. References osg::osghtonl(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 93 of file OSGBinaryDataHandler.inl. References osg::osghtonll(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 101 of file OSGBinaryDataHandler.inl. References osg::BinaryDataHandler::put().
|
|
|
Definition at line 107 of file OSGBinaryDataHandler.inl. References osg::osghtons(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 115 of file OSGBinaryDataHandler.inl. References osg::osghtonl(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 123 of file OSGBinaryDataHandler.inl. References osg::osghtonll(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 131 of file OSGBinaryDataHandler.inl. References osg::Real16::bits(), osg::osghtons(), and osg::BinaryDataHandler::put().
|
|
|
Definition at line 139 of file OSGBinaryDataHandler.inl. References osg::osghtonl(), and osg::BinaryDataHandler::put(). 00140 { 00141 UInt32 v = osghtonl( *((const UInt32 *)(&value)) ); 00142 00143 put(&v, sizeof(Real32)); 00144 }
|
|
|
Definition at line 147 of file OSGBinaryDataHandler.inl. References osg::osghtonll(), and osg::BinaryDataHandler::put(). 00148 { 00149 UInt64 v = osghtonll( *((const UInt64 *)(&value)) ); 00150 00151 put(&v, sizeof(Real64)); 00152 }
|
|
|
Definition at line 155 of file OSGBinaryDataHandler.inl. References osg::osghtonll(), and osg::BinaryDataHandler::put(). 00156 { 00157 UInt64 v = osghtonll( *( (const UInt64 *)(&value)) ); 00158 UInt64 w = osghtonll( *(((const UInt64 *)(&value)) + 1) ); 00159 00160 #if BYTE_ORDER == LITTLE_ENDIAN 00161 put(&w, sizeof(UInt64)); 00162 put(&v, sizeof(UInt64)); 00163 #else 00164 put(&v, sizeof(UInt64)); 00165 put(&w, sizeof(UInt64)); 00166 #endif 00167 }
|
|
|
Definition at line 170 of file OSGBinaryDataHandler.inl. References osg::BinaryDataHandler::put(), osg::BinaryDataHandler::putValue(), and osg::stringlen(). 00171 { 00172 UInt32 len = stringlen(value.c_str()) + 1; 00173 00174 putValue(len); 00175 00176 if(len != 0) 00177 { 00178 put(value.c_str(), len); 00179 } 00180 }
|
|
||||||||||||
|
||||||||||||
|
Definition at line 190 of file OSGBinaryDataHandler.inl. References osg::BinaryDataHandler::put().
|
|
||||||||||||
|
Definition at line 196 of file OSGBinaryDataHandler.inl. References osg::BinaryDataHandler::_networkOrder, osg::BinaryDataHandler::put(), and osg::BinaryDataHandler::putValue(). 00197 { 00198 #if BYTE_ORDER == LITTLE_ENDIAN 00199 00200 if(_networkOrder == true) 00201 { 00202 for(UInt32 i = 0; i < size; ++i) 00203 { 00204 putValue(value[i]); 00205 } 00206 } 00207 else 00208 #endif 00209 { 00210 put(value, size * sizeof(UInt16)); 00211 } 00212 }
|
|
||||||||||||
|
Definition at line 215 of file OSGBinaryDataHandler.inl. References osg::BinaryDataHandler::_networkOrder, osg::BinaryDataHandler::put(), and osg::BinaryDataHandler::putValue(). 00216 { 00217 #if BYTE_ORDER == LITTLE_ENDIAN 00218 if(_networkOrder == true) 00219 { 00220 for(UInt32 i = 0; i < size; ++i) 00221 { 00222 putValue(value[i]); 00223 } 00224 } 00225 |