Package com.sun.corba.ee.impl.encoding
Class BufferManagerReadStream
java.lang.Object
com.sun.corba.ee.impl.encoding.BufferManagerReadStream
- All Implemented Interfaces:
BufferManagerRead
,MarkAndResetHandler
public class BufferManagerReadStream
extends Object
implements BufferManagerRead, MarkAndResetHandler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
private boolean
private final BufferQueue
private LinkedList
<ByteBuffer> private RestorableInputStream
private boolean
private final ORB
private boolean
private Object
private static final ORBUtilSystemException
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
bufferMessage
(String msg, int bbAddr, String tail) void
cancelProcessing
(int requestId) Signals that the processing be cancelled.void
close
(ByteBuffer byteBuffer) Close BufferManagerRead and perform any outstanding cleanup.void
fragmentationOccured
(ByteBuffer newFrament) protected ByteBufferPool
Returns the mark/reset handler for this stream.void
Called once after creating this buffer manager and before it begins processing.boolean
Returns true if this buffer manager reads fragments when it underflows.private void
logBufferMessage
(String prefix, ByteBuffer byteBuffer, String suffix) void
mark
(RestorableInputStream inputStream) void
processFragment
(ByteBuffer byteBuffer, FragmentMessage msg) Case: Called from ReaderThread on complete message or fragments.void
reset()
underflow
(ByteBuffer byteBuffer) Invoked when we run out of data to read.private void
underflowMessage
(String msg, int rid)
-
Field Details
-
wrapper
-
receivedCancel
private volatile boolean receivedCancel -
cancelReqId
private int cancelReqId -
endOfStream
private boolean endOfStream -
fragmentQueue
-
orb
-
markEngaged
private boolean markEngaged -
fragmentStack
-
inputStream
-
streamMemento
-
-
Constructor Details
-
BufferManagerReadStream
BufferManagerReadStream(ORB orb)
-
-
Method Details
-
cancelProcessing
public void cancelProcessing(int requestId) Description copied from interface:BufferManagerRead
Signals that the processing be cancelled.- Specified by:
cancelProcessing
in interfaceBufferManagerRead
- Parameters:
requestId
- ID of the request to cancel
-
bufferMessage
-
processFragment
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 interfaceBufferManagerRead
- Parameters:
byteBuffer
- buffer to read frommsg
- header of fragment
-
underflowMessage
-
underflow
Description copied from interface:BufferManagerRead
Invoked when we run out of data to read. Obtains more data from the stream.- Specified by:
underflow
in interfaceBufferManagerRead
- Parameters:
byteBuffer
- Current buffer, to return to pool- Returns:
- Buffer containing new data
- See Also:
-
isFragmentOnUnderflow
public boolean isFragmentOnUnderflow()Description copied from interface:BufferManagerRead
Returns true if this buffer manager reads fragments when it underflows.- Specified by:
isFragmentOnUnderflow
in interfaceBufferManagerRead
- Returns:
- if fragments will be read.
- See Also:
-
init
Description copied from interface:BufferManagerRead
Called once after creating this buffer manager and before it begins processing.- Specified by:
init
in interfaceBufferManagerRead
- Parameters:
msg
- message header
-
close
Description copied from interface:BufferManagerRead
Close BufferManagerRead and perform any outstanding cleanup.- Specified by:
close
in interfaceBufferManagerRead
- Parameters:
byteBuffer
- buffer to return to the pool
-
logBufferMessage
-
getByteBufferPool
-
mark
- Specified by:
mark
in interfaceMarkAndResetHandler
-
fragmentationOccured
- Specified by:
fragmentationOccured
in interfaceMarkAndResetHandler
-
reset
public void reset()- Specified by:
reset
in interfaceMarkAndResetHandler
-
getMarkAndResetHandler
Description copied from interface:BufferManagerRead
Returns the mark/reset handler for this stream.- Specified by:
getMarkAndResetHandler
in interfaceBufferManagerRead
- Returns:
- The mark/reset handler for this stream.
-