@NotThreadSafe public class MessageDeframer extends Object implements Closeable
This class is not thread-safe. All calls to public methods should be made in the transport thread.
Modifier and Type | Class and Description |
---|---|
static class |
MessageDeframer.Compression |
static interface |
MessageDeframer.Listener
A listener of deframing events.
|
Constructor and Description |
---|
MessageDeframer(MessageDeframer.Listener listener)
Creates a deframer.
|
MessageDeframer(MessageDeframer.Listener listener,
MessageDeframer.Compression compression)
Create a deframer.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this deframer and frees any resources.
|
void |
deframe(ReadableBuffer data,
boolean endOfStream)
Adds the given data to this deframer and attempts delivery to the sink.
|
boolean |
isClosed()
Indicates whether or not this deframer has been closed.
|
boolean |
isStalled()
Indicates whether delivery is currently stalled, pending receipt of more data.
|
void |
request(int numMessages)
Requests up to the given number of messages from the call to be delivered to
MessageDeframer.Listener.messageRead(InputStream) . |
public MessageDeframer(MessageDeframer.Listener listener)
listener
- listener for deframer events.public MessageDeframer(MessageDeframer.Listener listener, MessageDeframer.Compression compression)
listener
- listener for deframer events.compression
- the compression used if a compressed frame is encountered, with NONE
meaning unsupportedpublic void request(int numMessages)
MessageDeframer.Listener.messageRead(InputStream)
. No additional messages will be delivered.
If close()
has been called, this method will have no effect.
numMessages
- the requested number of messages to be delivered to the listener.public void deframe(ReadableBuffer data, boolean endOfStream)
data
- the raw data read from the remote endpoint. Must be non-null.endOfStream
- if true
, indicates that data
is the end of the stream from
the remote endpoint.IllegalStateException
- if close()
has been called previously or if
deframe(ReadableBuffer, boolean)
has previously been called with
endOfStream=true
.public boolean isStalled()
public void close()
close
in interface Closeable
close
in interface AutoCloseable
public boolean isClosed()