Class BufferManagerReadStream

    • Field Detail

      • receivedCancel

        private volatile boolean receivedCancel
      • cancelReqId

        private int cancelReqId
      • endOfStream

        private boolean endOfStream
      • fragmentQueue

        private final BufferQueue fragmentQueue
      • orb

        private final ORB orb
      • markEngaged

        private boolean markEngaged
      • fragmentStack

        private java.util.LinkedList<java.nio.ByteBuffer> fragmentStack
      • streamMemento

        private java.lang.Object streamMemento
    • Constructor Detail

      • BufferManagerReadStream

        BufferManagerReadStream​(ORB orb)
    • Method Detail

      • cancelProcessing

        public void cancelProcessing​(int requestId)
        Description copied from interface: BufferManagerRead
        Signals that the processing be cancelled.
        Specified by:
        cancelProcessing in interface BufferManagerRead
        Parameters:
        requestId - ID of the request to cancel
      • bufferMessage

        @InfoMethod
        private void bufferMessage​(java.lang.String msg,
                                   int bbAddr,
                                   java.lang.String tail)
      • processFragment

        public void processFragment​(java.nio.ByteBuffer byteBuffer,
                                    FragmentMessage msg)
        Description copied from interface: BufferManagerRead
        Case: Called from ReaderThread on complete message or fragments. The given buffer may be entire message or a fragment. The ReaderThread finds the ReadBufferManager instance either in in a fragment map (when collecting - GIOP 1.2 phase 1) or in an active server requests map (when streaming - GIOP 1.2 phase 2). As a model for implementation see IIOPInputStream's constructor of the same name. There are going to be some variations.
        Specified by:
        processFragment in interface BufferManagerRead
        Parameters:
        byteBuffer - buffer to read from
        msg - header of fragment
      • underflowMessage

        @InfoMethod
        private void underflowMessage​(java.lang.String msg,
                                      int rid)
      • underflow

        public java.nio.ByteBuffer underflow​(java.nio.ByteBuffer byteBuffer)
        Description copied from interface: BufferManagerRead
        Invoked when we run out of data to read. Obtains more data from the stream.
        Specified by:
        underflow in interface BufferManagerRead
        Parameters:
        byteBuffer - Current buffer, to return to pool
        Returns:
        Buffer containing new data
        See Also:
        BufferManagerRead.isFragmentOnUnderflow()
      • init

        public void init​(Message msg)
        Description copied from interface: BufferManagerRead
        Called once after creating this buffer manager and before it begins processing.
        Specified by:
        init in interface BufferManagerRead
        Parameters:
        msg - message header
      • close

        public void close​(java.nio.ByteBuffer byteBuffer)
        Description copied from interface: BufferManagerRead
        Close BufferManagerRead and perform any outstanding cleanup.
        Specified by:
        close in interface BufferManagerRead
        Parameters:
        byteBuffer - buffer to return to the pool
      • logBufferMessage

        private void logBufferMessage​(java.lang.String prefix,
                                      java.nio.ByteBuffer byteBuffer,
                                      java.lang.String suffix)