OSG::BinarySwapComposer Class Reference

BinarySwapComposer class. See PageSystemBinarySwapComposer for a description.

#include <OSGBinarySwapComposer.h>

Inheritance diagram for OSG::BinarySwapComposer:

OSG::BinarySwapComposerBase OSG::ImageComposer OSG::ImageComposerBase OSG::AttachmentContainer OSG::FieldContainer OSG::ReflexiveContainer List of all members.

dcast



 OSG_GEN_INTERNALPTR (AttachmentContainer)
typedef AttachmentContainer Self
typedef FieldContainerAttachment AttachmentObj
typedef FieldContainerAttachmentPtr AttachmentObjPtr
typedef SFFieldContainerAttachmentPtrMap SFAttachmentObjPtrMap
typedef SFAttachmentObjPtrMap::StoredType AttachmentObjPtrMap
typedef AttachmentObjPtrMap::iterator AttachmentObjPtrMapIt

Type definitions



 OSG_GEN_INTERNALPTR (FieldContainer)
 OSG_RC_FIRST_FIELD_DECL (ChangedCallbacks)
 OSG_RC_LAST_FIELD_DECL (ChangedCallbacks)
static const bool isNodeCore = false

Public Types

enum  { ShortFieldId = Inherited::NextFieldId, AlphaFieldId = ShortFieldId + 1, TileSizeFieldId = AlphaFieldId + 1, NextFieldId = TileSizeFieldId + 1 }
typedef ImageComposer ParentContainer
typedef Inherited::TypeObject TypeObject
typedef TypeObject::InitPhase InitPhase
enum  { EnabledFieldId = Inherited::NextFieldId, StatisticsFieldId = EnabledFieldId + 1, NextFieldId = StatisticsFieldId + 1 }
Type definitions


typedef Field *(ReflexiveContainer::*) FieldEditMethod (void)
typedef const Field *(ReflexiveContainer::*) FieldGetMethod (void) const

Public Member Functions

 OSG_GEN_INTERNALPTR (BinarySwapComposer)
 OSG_GEN_INTERNALPTR (ImageComposer)
Sync


virtual void changed (ConstFieldMaskArg whichField, UInt32 origin, BitVector detail)
Output


virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
features


virtual bool clientRendering (void)
composition


virtual void open ()
virtual void composeViewport (ViewportPtr port)
virtual void close (void)
features


virtual bool getClientRendering (void)
virtual UInt32 getUsableServers (void)
FieldContainer Get


virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get


SFBool * editSFShort (void)
const SFBool * getSFShort (void) const
SFBool * editSFAlpha (void)
const SFBool * getSFAlpha (void) const
SFUInt32 * editSFTileSize (void)
const SFUInt32 * getSFTileSize (void) const
bool & editShort (void)
 Get the value of the BinarySwapComposer::_sfShort field.
const bool & getShort (void) const
 Get the value of the BinarySwapComposer::_sfShort field.
bool & editAlpha (void)
 Get the value of the BinarySwapComposer::_sfAlpha field.
const bool & getAlpha (void) const
 Get the value of the BinarySwapComposer::_sfAlpha field.
UInt32 & editTileSize (void)
 Get the value of the BinarySwapComposer::_sfTileSize field.
const UInt32 & getTileSize (void) const
 Get the value of the BinarySwapComposer::_sfTileSize field.
Field Set


void setShort (const bool &value)
 Set the value of the BinarySwapComposer::_sfShort field.
void setAlpha (const bool &value)
 Set the value of the BinarySwapComposer::_sfAlpha field.
void setTileSize (const UInt32 &value)
 Set the value of the BinarySwapComposer::_sfTileSize field.
Binary Access


virtual UInt32 getBinSize (ConstFieldMaskArg whichField)
virtual void copyToBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField)
Copy


virtual FieldContainerPtr shallowCopy (void) const
setup


void setup (bool isClient, UInt32 clusterId, WindowPtr localWindow, ClusterWindowPtr clusterWindow)
composition


virtual void startFrame (void)
virtual void startViewport (ViewportPtr port)
virtual void composeWindow (void)
Field Get


SFBool * editSFEnabled (void)
const SFBool * getSFEnabled (void) const
SFBool * editSFStatistics (void)
const SFBool * getSFStatistics (void) const
bool & editEnabled (void)
 Get the value of the ImageComposer::_sfEnabled field.
const bool & getEnabled (void) const
 Get the value of the ImageComposer::_sfEnabled field.
bool & editStatistics (void)
 Get the value of the ImageComposer::_sfStatistics field.
const bool & getStatistics (void) const
 Get the value of the ImageComposer::_sfStatistics field.
Field Set


void setEnabled (const bool &value)
 Set the value of the ImageComposer::_sfEnabled field.
void setStatistics (const bool &value)
 Set the value of the ImageComposer::_sfStatistics field.
Constructors


 OSG_RC_FIRST_FIELD_DECL (Attachments)
 OSG_RC_LAST_FIELD_DECL (Attachments)
Set


void addAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0)
void subAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0)
AttachmentObjPtr findAttachment (UInt32 groupId, UInt16 binding=0)
AttachmentObjPtr findAttachment (const FieldContainerType &type, UInt16 binding=0)
your_category


const SFAttachmentObjPtrMapgetSFAttachments (void) const
Set


void callChangedFunctors (ConstFieldMaskArg whichField)
Container Access


UInt32 addChangedFunctor (ChangedFunctor func, std::string createSymbol)
template<class FunctorT>
void subChangedFunctor (FunctorT func)
void subChangedFunctor (UInt32 uiId)
void clearChangedFunctors (void)
Field Flags


const FieldFlagsgetFieldFlags (void)
Helper


OSG_SYSTEM_DLLMAPPING void addReference (void)
OSG_SYSTEM_DLLMAPPING void subReference (void)
OSG_SYSTEM_DLLMAPPING void subReferenceLocalVar (void)
OSG_SYSTEM_DLLMAPPING Int32 getRefCount (void) const
Comparison


virtual OSG_SYSTEM_DLLMAPPING
void 
invalidateVolume (void)
dcast


OSG_SYSTEM_DLLMAPPING UInt32 getTypeId (void) const
OSG_SYSTEM_DLLMAPPING UInt16 getGroupId (void) const
OSG_SYSTEM_DLLMAPPING const
Char8 * 
getTypeName (void) const
Get Field


OSG_SYSTEM_DLLMAPPING UInt32 getNumFields (void) const
OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr editField (UInt32 fieldId)
OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr editField (const Char8 *fieldName)
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr getField (UInt32 fieldId) const
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr getField (const Char8 *fieldName) const
Get Field Description


OSG_SYSTEM_DLLMAPPING FieldDescriptionBasegetFieldDescription (UInt32 fieldId)
OSG_SYSTEM_DLLMAPPING FieldDescriptionBasegetFieldDescription (const Char8 *fieldName)
Comparison


OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr invalidEditField (void)
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr invalidGetField (void) const

Static Public Member Functions

Class Get


static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
static UInt16 getClassGroupId (void)
 access the type of the class
Construction


static BinarySwapComposerPtr create (void)
 create a new instance of the class
static BinarySwapComposerPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Public Attributes

General Fieldcontainer Declaration


 OSG_ABSTR_FIELD_CONTAINER_DECL

Static Public Attributes

static const OSG::BitVector ShortFieldMask
static const OSG::BitVector AlphaFieldMask
static const OSG::BitVector TileSizeFieldMask
static const OSG::BitVector NextFieldMask
static const OSG::BitVector EnabledFieldMask
static const OSG::BitVector StatisticsFieldMask

Protected Member Functions

Constructors


 BinarySwapComposer (void)
 BinarySwapComposer (const BinarySwapComposer &source)
Destructors


virtual ~BinarySwapComposer (void)
compose


void writeBuffer ()
void readBuffer ()
helper function


template<class DepthT, class ColorT>
void sendToClient (DepthT &depth, ColorT &color, UInt32 left, UInt32 bottom, UInt32 right, UInt32 top)
template<class DepthT, class ColorT>
void recvFromServers (DepthT &depth, ColorT &color, UInt32 colorType, UInt32 colorFormat, ViewportPtr port)
template<class DepthT, class ColorT>
void writeCombine (DepthT &depthDummy, ColorT &colorDummy)
template<class DepthT, class ColorT>
void readCombine (DepthT &depth, ColorT &color, UInt32 colorType, UInt32 colorFormat, UInt32 left, UInt32 bottom, UInt32 right, UInt32 top, UInt32 level)
template<class DepthT, class ColorT>
void startReader (DepthT &depth, ColorT &color, UInt32 depthFormat, UInt32 colorType, UInt32 colorFormat, ViewportPtr port)
TileBuffergetTileBuffer (UInt32 x, UInt32 y)
TileBuffergetTileReadBuffer (void)
Generic Field Access


GetFieldHandlePtr getHandleShort (void) const
EditFieldHandlePtr editHandleShort (void)
GetFieldHandlePtr getHandleAlpha (void) const
EditFieldHandlePtr editHandleAlpha (void)
GetFieldHandlePtr getHandleTileSize (void) const
EditFieldHandlePtr editHandleTileSize (void)
Sync


virtual void resolveLinks (void)
get


bool isClient (void)
UInt32 clusterId (void)
UInt32 clusterSize (void)
UInt32 serverCount (void)
WindowPtr localWindow (void)
ClusterWindowPtr clusterWindow (void)
helpers


bool getScreenAlignedBBox (NodePtr root, ViewportPtr vp, UInt32 &l, UInt32 &b, UInt32 &r, UInt32 &t, UInt32 &front, UInt32 &back)
Generic Field Access


GetFieldHandlePtr getHandleEnabled (void) const
EditFieldHandlePtr editHandleEnabled (void)
GetFieldHandlePtr getHandleStatistics (void) const
EditFieldHandlePtr editHandleStatistics (void)
Sync


EditFieldHandlePtr editHandleAttachments (void)
GetFieldHandlePtr getHandleAttachments (void) const
Edit


OSG_SYSTEM_DLLMAPPING void subReferenceUnresolved (void)
MT Construction


OSG_SYSTEM_DLLMAPPING void onCreateAspect (const FieldContainer *createAspect, const FieldContainer *source=NULL)
OSG_SYSTEM_DLLMAPPING void onCreate (const FieldContainer *source=NULL)
virtual OSG_SYSTEM_DLLMAPPING
void 
onDestroy (UInt32 uiContainerId)
Changed


OSG_SYSTEM_DLLMAPPING void onCreate (const ReflexiveContainer *source=NULL)
virtual OSG_SYSTEM_DLLMAPPING
void 
onDestroyAspect (UInt32 uiContainerId, UInt32 uiAspect)
MT Construction


virtual OSG_SYSTEM_DLLMAPPING
bool 
deregister (UInt32 uiContainerId)
MT Construction


OSG_SYSTEM_DLLMAPPING void registerChangedContainer (void)
virtual OSG_SYSTEM_DLLMAPPING
void 
registerChangedContainerV (void)
Local Edit


void editSField (ConstFieldMaskArg whichField)
template<class FieldT>
void editMField (ConstFieldMaskArg whichField, FieldT &oField)
MT Destruction


void execEndEdit (ConstFieldMaskArg whichField)
void clearChangeEntry (ContainerChangeEntry *pRef)
Edit


OSG_SYSTEM_DLLMAPPING void setId (UInt32 uiContainerId)
OSG_SYSTEM_DLLMAPPING UInt32 getId (void) const

Static Protected Member Functions

static void classDescInserter (TypeObject &oType)
static Char8 * getClassname (void)
Init


static void initMethod (InitPhase ePhase)
Fields


static void classDescInserter (TypeObject &oType)
MT Construction


template<class ObjectT>
static void newPtr (typename ObjectT::ObjPtr &result, const ObjectT *prototypeP)
template<class ObjectT>
static void newPtr (typename ObjectT::ObjPtr &result)

Protected Attributes

BaseThread_writer
Barrier_barrier
bool _stopWriter
UInt32 _swapWith
Connection_swapConnection
UInt32 _tilesX
UInt32 _tilesY
UInt32 _tileBufferSize
std::vector< UInt8 > _tile
std::vector< UInt8 > _readTile
UInt32 _writeLeft
UInt32 _writeRight
UInt32 _writeBottom
UInt32 _writeTop
UInt32 _usableServers
Statistics _statistics
UInt32 _intDepthMax
UInt32 _shortDepthMax
Fields


SFBool _sfShort
SFBool _sfAlpha
SFUInt32 _sfTileSize
protected variables


bool _isClient
UInt32 _clusterId
UInt32 _clusterSize
UInt32 _serverCount
WindowPtr _localWindow
ClusterWindowPtr _clusterWindow
Fields


SFBool _sfEnabled
SFBool _sfStatistics
Fields


SFAttachmentObjPtrMap _sfAttachments
Type information


FieldFlags_pFieldFlags
MFChangedFunctorCallback _mfChangedFunctors
Int32 _iRefCount
Member


BitVector _bvChanged
ContainerChangeEntry_pContainerChanges
UInt32 _uiContainerId

Static Protected Attributes

static TypeObject _type

Private Types

typedef BinarySwapComposerBase Inherited

Private Member Functions

void operator= (const BinarySwapComposer &source)

Static Private Member Functions

static void writeProc (void *arg)

Friends

class FieldContainer
class BinarySwapComposerBase

Classes

struct  RGBValue
 RGB Color value. More...
struct  Statistics
struct  TileBuffer

Detailed Description

Definition at line 57 of file OSGBinarySwapComposer.h.


Member Typedef Documentation

Reimplemented from OSG::BinarySwapComposerBase.

Definition at line 62 of file OSGBinarySwapComposer.h.

Reimplemented from OSG::ImageComposerBase.

Definition at line 85 of file OSGBinarySwapComposerBase.h.

Reimplemented from OSG::ImageComposerBase.

Definition at line 87 of file OSGBinarySwapComposerBase.h.

Reimplemented from OSG::ImageComposerBase.

Definition at line 88 of file OSGBinarySwapComposerBase.h.

Definition at line 70 of file OSGAttachmentContainer.h.

typedef FieldContainerAttachmentPtr OSG::AttachmentContainer::AttachmentObjPtr [inherited]

Definition at line 71 of file OSGAttachmentContainer.h.

typedef SFFieldContainerAttachmentPtrMap OSG::AttachmentContainer::SFAttachmentObjPtrMap [inherited]

Definition at line 72 of file OSGAttachmentContainer.h.

typedef SFAttachmentObjPtrMap::StoredType OSG::AttachmentContainer::AttachmentObjPtrMap [inherited]

Definition at line 74 of file OSGAttachmentContainer.h.

typedef AttachmentObjPtrMap::iterator OSG::AttachmentContainer::AttachmentObjPtrMapIt [inherited]

Definition at line 75 of file OSGAttachmentContainer.h.

typedef Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldEditMethod(void) [inherited]

Definition at line 79 of file OSGReflexiveContainer.h.

typedef const Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldGetMethod(void) const [inherited]

Definition at line 81 of file OSGReflexiveContainer.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
ShortFieldId 
AlphaFieldId 
TileSizeFieldId 
NextFieldId 

Definition at line 96 of file OSGBinarySwapComposerBase.h.

00097     {
00098         ShortFieldId = Inherited::NextFieldId,
00099         AlphaFieldId = ShortFieldId + 1,
00100         TileSizeFieldId = AlphaFieldId + 1,
00101         NextFieldId = TileSizeFieldId + 1
00102     };

anonymous enum [inherited]

Enumerator:
EnabledFieldId 
StatisticsFieldId 
NextFieldId 

Definition at line 95 of file OSGImageComposerBase.h.

00096     {
00097         EnabledFieldId = Inherited::NextFieldId,
00098         StatisticsFieldId = EnabledFieldId + 1,
00099         NextFieldId = StatisticsFieldId + 1
00100     };


Constructor & Destructor Documentation

BinarySwapComposer::BinarySwapComposer ( void   )  [protected]

Definition at line 66 of file OSGBinarySwapComposer.cpp.

00066                                            :
00067     Inherited(),
00068     _writer(NULL),
00069     _barrier(NULL),
00070     _stopWriter(false),
00071     _intDepthMax(0xffffffff),
00072     _shortDepthMax(0xffff)
00073 {
00074 }

BinarySwapComposer::BinarySwapComposer ( const BinarySwapComposer source  )  [protected]

Definition at line 76 of file OSGBinarySwapComposer.cpp.

00076                                                                        :
00077     Inherited(source),
00078     _writer(NULL),
00079     _barrier(NULL),
00080     _stopWriter(false),
00081     _intDepthMax(0xffffffff),
00082     _shortDepthMax(0xffff)
00083 {
00084 }

BinarySwapComposer::~BinarySwapComposer ( void   )  [protected, virtual]

Definition at line 86 of file OSGBinarySwapComposer.cpp.

00087 {
00088 }


Member Function Documentation

void BinarySwapComposer::changed ( ConstFieldMaskArg  whichField,
UInt32  origin,
BitVector  detail 
) [virtual]

Reimplemented from OSG::ImageComposer.

Definition at line 92 of file OSGBinarySwapComposer.cpp.

References OSG::FieldContainer::changed().

00095 {
00096     Inherited::changed(whichField, origin, details);
00097 }

void BinarySwapComposer::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [virtual]

Reimplemented from OSG::ImageComposer.

Definition at line 99 of file OSGBinarySwapComposer.cpp.

References SLOG.

00101 {
00102     SLOG << "Dump BinarySwapComposer NI" << std::endl;
00103 }

bool BinarySwapComposer::clientRendering ( void   )  [virtual]

Definition at line 109 of file OSGBinarySwapComposer.cpp.

00110 {
00111     return false;
00112 }

void BinarySwapComposer::open (  )  [virtual]

Reimplemented from OSG::ImageComposer.

Definition at line 116 of file OSGBinarySwapComposer.cpp.

References _barrier, OSG::ImageComposer::_clusterWindow, OSG::ImageComposer::_isClient, _usableServers, _writer, OSG::ImageComposer::clusterId(), OSG::ImageComposer::clusterWindow(), OSG::BaseThread::get(), OSG::Barrier::get(), OSG::osgIsPower2(), OSG::osgNextPower2(), OSG::BaseThread::runFunction(), OSG::ImageComposer::serverCount(), and writeProc().

00117 {
00118     // determine usable servers
00119     if(osgIsPower2(serverCount()))
00120         _usableServers = serverCount();
00121     else
00122         _usableServers = osgNextPower2(serverCount()) / 2;
00123 
00124 //    _usableServers = 1;
00125 
00126     // create server cross connection
00127     _clusterWindow->getNetwork()->connectAllPointToPoint(clusterId(),
00128                                                          "StreamSock");
00129     // do not buffer any data
00130     for(UInt32 i=0 ; i <= serverCount() ; ++i)
00131         clusterWindow()->getNetwork()->getConnection(i)->forceDirectIO();
00132 
00133 /*
00134     // create barrier
00135     _barrier = Barrier::get(NULL);
00136     // create writer thread
00137     _writer = BaseThread::get(NULL);
00138 */
00139 
00140     // read whole buffer
00141     if(!_isClient && clusterId() < _usableServers)
00142     {
00143         // create barrier
00144         _barrier = Barrier::get(NULL);
00145         // create writer thread
00146         _writer = BaseThread::get(NULL);
00147         // start writer thread
00148         _writer->runFunction( writeProc, this );
00149     }
00150     else
00151     {
00152         _writer = NULL;
00153     }
00154 }

void BinarySwapComposer::composeViewport ( ViewportPtr  port  )  [virtual]

Reimplemented from OSG::ImageComposer.

Definition at line 156 of file OSGBinarySwapComposer.cpp.

References _intDepthMax, _readTile, _shortDepthMax, _statistics, _tile, _tileBufferSize, _tilesX, _tilesY, _usableServers, OSG::BinarySwapComposer::Statistics::bytesIn, OSG::BinarySwapComposer::Statistics::bytesOut, OSG::ImageComposer::clusterId(), OSG::ImageComposer::clusterWindow(), OSG::BinarySwapComposer::Statistics::composeTime, OSG::ExceptionBinaryDataHandler::flush(), OSG::ExceptionBinaryDataHandler::get(), OSG::BinarySwapComposerBase::getAlpha(), OSG::BinarySwapComposerBase::getShort(), OSG::ImageComposerBase::getStatistics(), OSG::getSystemTime(), OSG::BinarySwapComposerBase::getTileSize(), GL_UNSIGNED_SHORT_5_6_5, GLint(), OSG::ImageComposer::isClient(), OSG::ExceptionBinaryDataHandler::put(), recvFromServers(), OSG::Connection::selectChannel(), OSG::ImageComposer::serverCount(), and startReader().

00157 {
00158     // setup viewport
00159     GLint 
00160         pl=port->getPixelLeft(), 
00161         pr=port->getPixelRight(),
00162         pb=port->getPixelBottom(), 
00163         pt=port->getPixelTop();
00164     GLint pw=pr-pl+1,ph=pt-pb+1;
00165     bool full = port->isFullWindow();
00166     glViewport(pl, pb, pw, ph);
00167     glScissor(pl, pb, pw, ph);
00168     if(! full)
00169         glEnable(GL_SCISSOR_TEST);
00170 
00171     GLboolean depth = glIsEnabled(GL_DEPTH_TEST);
00172     GLboolean blend = glIsEnabled(GL_BLEND);
00173 
00174     glDisable(GL_DEPTH_TEST);
00175     glPushMatrix();
00176     glLoadIdentity();
00177     glMatrixMode(GL_PROJECTION);
00178     glPushMatrix();
00179     glLoadIdentity();
00180     glOrtho(0, port->getPixelWidth(),
00181             0, port->getPixelHeight(),-1,1);
00182 
00183 //    printf("max %x,%x\n",_intDepthMax,_shortDepthMax);
00184 
00185     if(getAlpha())
00186     {
00187         glEnable(GL_BLEND);
00188         glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
00189     }
00190     _tilesX = port->getPixelWidth()  / getTileSize() + 1;
00191     _tilesY = port->getPixelHeight() / getTileSize() + 1;
00192 
00193     _tileBufferSize = getTileSize()*getTileSize()*8+sizeof(TileBuffer);
00194     _readTile.resize(_tileBufferSize);
00195 
00196     _statistics.bytesIn  = 0;
00197     _statistics.bytesOut = 0;
00198 
00199     if(isClient())
00200     {
00201         if(getShort())
00202         {
00203             UInt16 colorDummy;
00204             UInt32 depthDummy;
00205             recvFromServers(depthDummy,colorDummy,
00206                             GL_RGB,
00207                             GL_UNSIGNED_SHORT_5_6_5,
00208                             port);
00209         }
00210         else
00211         {
00212             if(getAlpha())
00213             {
00214                 UInt32 colorDummy;
00215                 UInt32 depthDummy;
00216                 recvFromServers(depthDummy,colorDummy,
00217                                 GL_RGBA,
00218                                 GL_UNSIGNED_BYTE,
00219                                 port);
00220             }
00221             else
00222             {
00223                 RGBValue colorDummy;
00224                 UInt32   depthDummy;
00225                 recvFromServers(depthDummy,colorDummy,
00226                                 GL_RGB,
00227                                 GL_UNSIGNED_BYTE,
00228                                 port);
00229             }
00230         }
00231         if(getStatistics())
00232         {
00233             UInt32      maxIn   = _statistics.bytesIn;
00234             UInt32      maxOut  = _statistics.bytesOut;
00235             UInt32      maxIO   = maxIn + maxOut;
00236             UInt32      sumOut  = _statistics.bytesOut;
00237             UInt32      missing = _usableServers;
00238             double      composeTime = 1e32;
00239             
00240             Connection *server;
00241             Statistics  statistics;
00242             for</