Package com.sun.corba.ee.impl.encoding
Class BufferManagerWriteStream
- java.lang.Object
-
- com.sun.corba.ee.impl.encoding.BufferManagerWrite
-
- com.sun.corba.ee.impl.encoding.BufferManagerWriteStream
-
public class BufferManagerWriteStream extends BufferManagerWrite
Streaming buffer manager.
-
-
Field Summary
Fields Modifier and Type Field Description private intfragmentCount-
Fields inherited from class com.sun.corba.ee.impl.encoding.BufferManagerWrite
orb, outputObject, sentFullMessage, wrapper
-
-
Constructor Summary
Constructors Constructor Description BufferManagerWriteStream(ORB orb)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the BufferManagerWrite and do any outstanding cleanup.intgetBufferSize()Returns the correct buffer size for this type of buffer manager as set in the ORB.protected ContactInfoListIteratorgetContactInfoListIterator()Get CorbaContactInfoListIterator NOTE: Requires this.orbbooleanisFragmentOnOverflow()Returns true if this buffer manager fragments when an overflow occurs.protected java.nio.ByteBufferoverflow(java.nio.ByteBuffer byteBuffer, int numBytesNeeded)private voidsendFragment(boolean isLastFragment)voidsendMessage()Called after Stub._invoke (i.e., before complete message has been sent).booleansentFragment()Has the stream sent out any fragments so far?-
Methods inherited from class com.sun.corba.ee.impl.encoding.BufferManagerWrite
sentFullMessage, setOutputObject
-
-
-
-
Constructor Detail
-
BufferManagerWriteStream
BufferManagerWriteStream(ORB orb)
-
-
Method Detail
-
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
protected java.nio.ByteBuffer overflow(java.nio.ByteBuffer byteBuffer, int numBytesNeeded)- 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
protected ContactInfoListIterator getContactInfoListIterator()
Get CorbaContactInfoListIterator NOTE: Requires this.orb- Returns:
- the ContactInfoListIterator
-
-