Package com.sun.corba.ee.impl.encoding
Class BufferManagerReadGrow
- java.lang.Object
-
- com.sun.corba.ee.impl.encoding.BufferManagerReadGrow
-
- All Implemented Interfaces:
BufferManagerRead
,MarkAndResetHandler
public class BufferManagerReadGrow extends java.lang.Object implements BufferManagerRead, MarkAndResetHandler
-
-
Field Summary
Fields Modifier and Type Field Description private RestorableInputStream
inputStream
private boolean
markEngaged
private java.lang.Object
streamMemento
private static ORBUtilSystemException
wrapper
-
Constructor Summary
Constructors Constructor Description BufferManagerReadGrow()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancelProcessing(int requestId)
Signals that the processing be cancelled.void
close(java.nio.ByteBuffer byteBuffer)
Close BufferManagerRead and perform any outstanding cleanup.void
fragmentationOccured(java.nio.ByteBuffer byteBuffer)
MarkAndResetHandler
getMarkAndResetHandler()
Returns the mark/reset handler for this stream.void
init(Message msg)
Called once after creating this buffer manager and before it begins processing.boolean
isFragmentOnUnderflow()
Returns true if this buffer manager reads fragments when it underflows.void
mark(RestorableInputStream is)
void
processFragment(java.nio.ByteBuffer byteBuffer, FragmentMessage header)
Case: Called from ReaderThread on complete message or fragments.void
reset()
java.nio.ByteBuffer
underflow(java.nio.ByteBuffer byteBuffer)
Invoked when we run out of data to read.
-
-
-
Field Detail
-
wrapper
private static final ORBUtilSystemException wrapper
-
streamMemento
private java.lang.Object streamMemento
-
inputStream
private RestorableInputStream inputStream
-
markEngaged
private boolean markEngaged
-
-
Method Detail
-
processFragment
public void processFragment(java.nio.ByteBuffer byteBuffer, FragmentMessage header)
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 fromheader
- header of fragment
-
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 interfaceBufferManagerRead
- Parameters:
msg
- message header
-
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 interfaceBufferManagerRead
- Parameters:
byteBuffer
- Current buffer, to return to pool- Returns:
- Buffer containing new data
- See Also:
BufferManagerRead.isFragmentOnUnderflow()
-
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:
BufferManagerRead.underflow(ByteBuffer)
-
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
-
getMarkAndResetHandler
public MarkAndResetHandler 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.
-
mark
public void mark(RestorableInputStream is)
- Specified by:
mark
in interfaceMarkAndResetHandler
-
fragmentationOccured
public void fragmentationOccured(java.nio.ByteBuffer byteBuffer)
- Specified by:
fragmentationOccured
in interfaceMarkAndResetHandler
-
reset
public void reset()
- Specified by:
reset
in interfaceMarkAndResetHandler
-
close
public void close(java.nio.ByteBuffer byteBuffer)
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
-
-