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 Details

    • fragmentCount

      private int fragmentCount
  • Constructor Details

    • BufferManagerWriteStream

      BufferManagerWriteStream(ORB orb)
  • Method Details

    • sentFragment

      public boolean sentFragment()
      Description copied from class: BufferManagerWrite
      Has the stream sent out any fragments so far?
      Specified by:
      sentFragment in class BufferManagerWrite
      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:
      getBufferSize in class BufferManagerWrite
      Returns:
      buffer size
    • overflow

      protected ByteBuffer overflow(ByteBuffer byteBuffer, int numBytesNeeded)
      Specified by:
      overflow in class BufferManagerWrite
    • isFragmentOnOverflow

      public boolean isFragmentOnOverflow()
      Description copied from class: BufferManagerWrite
      Returns true if this buffer manager fragments when an overflow occurs.
      Specified by:
      isFragmentOnOverflow in class BufferManagerWrite
      Returns:
      If this buffer manager fragments
    • sendFragment

      private void sendFragment(boolean isLastFragment)
    • sendMessage

      public void sendMessage()
      Description copied from class: BufferManagerWrite
      Called 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:
      sendMessage in class BufferManagerWrite
    • close

      public void close()
      Close the BufferManagerWrite and do any outstanding cleanup. No work to do for a BufferManagerWriteStream
      Specified by:
      close in class BufferManagerWrite
    • getContactInfoListIterator

      protected ContactInfoListIterator getContactInfoListIterator()
      Get CorbaContactInfoListIterator NOTE: Requires this.orb
      Returns:
      the ContactInfoListIterator