Class BufferManagerWriteStream
java.lang.Object
com.sun.corba.ee.impl.encoding.BufferManagerWrite
com.sun.corba.ee.impl.encoding.BufferManagerWriteStream
Streaming buffer manager.
-
Field Summary
FieldsFields inherited from class BufferManagerWrite
orb, outputObject, sentFullMessage, wrapper -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close the BufferManagerWrite and do any outstanding cleanup.intReturns the correct buffer size for this type of buffer manager as set in the ORB.protected ContactInfoListIteratorGet CorbaContactInfoListIterator NOTE: Requires this.orbbooleanReturns true if this buffer manager fragments when an overflow occurs.protected ByteBufferoverflow(ByteBuffer byteBuffer, int numBytesNeeded) private voidsendFragment(boolean isLastFragment) voidCalled after Stub._invoke (i.e., before complete message has been sent).booleanHas the stream sent out any fragments so far?Methods inherited from class BufferManagerWrite
sentFullMessage, setOutputObject
-
Field Details
-
fragmentCount
private int fragmentCount
-
-
Constructor Details
-
BufferManagerWriteStream
BufferManagerWriteStream(ORB orb)
-
-
Method Details
-
sentFragment
public boolean sentFragment()Description copied from class:BufferManagerWriteHas the stream sent out any fragments so far?- Specified by:
sentFragmentin classBufferManagerWrite- Returns:
- If any fragments have been sent
-
getBufferSize
public int getBufferSize()Returns the correct buffer size for this type of buffer manager as set in the ORB.- Specified by:
getBufferSizein classBufferManagerWrite- Returns:
- buffer size
-
overflow
- Specified by:
overflowin classBufferManagerWrite
-
isFragmentOnOverflow
public boolean isFragmentOnOverflow()Description copied from class:BufferManagerWriteReturns true if this buffer manager fragments when an overflow occurs.- Specified by:
isFragmentOnOverflowin classBufferManagerWrite- Returns:
- If this buffer manager fragments
-
sendFragment
private void sendFragment(boolean isLastFragment) -
sendMessage
public void sendMessage()Description copied from class:BufferManagerWriteCalled after Stub._invoke (i.e., before complete message has been sent). IIOPOutputStream.writeTo called from IIOPOutputStream.invoke Case: overflow was never called (bbwi.buf contains complete message). Backpatch size field. If growing or collecting: this.bufQ.put(bbwi). this.bufQ.iterate // However, see comment in getBufferQ this.connection.send(fragment) If streaming: this.connection.send(bbwi). Case: overflow was called N times (bbwi.buf contains last buffer). If growing or collecting: this.bufQ.put(bbwi). backpatch size field in first buffer. this.bufQ.iterate // However, see comment in getBufferQ this.connection.send(fragment) If streaming: backpatch fragment size field in bbwi.buf. Set no more fragments bit. this.connection.send(bbwi).- Specified by:
sendMessagein classBufferManagerWrite
-
close
public void close()Close the BufferManagerWrite and do any outstanding cleanup. No work to do for a BufferManagerWriteStream- Specified by:
closein classBufferManagerWrite
-
getContactInfoListIterator
Get CorbaContactInfoListIterator NOTE: Requires this.orb- Returns:
- the ContactInfoListIterator
-