@NotThreadSafe public class MessageDeframer extends Object implements Closeable, Deframer
This class is not thread-safe. Unless otherwise stated, all calls to public methods should be made in the deframing thread.
| Modifier and Type | Class and Description |
|---|---|
static interface |
MessageDeframer.Listener
A listener of deframing events.
|
| Constructor and Description |
|---|
MessageDeframer(MessageDeframer.Listener listener,
io.grpc.Decompressor decompressor,
int maxMessageSize,
StatsTraceContext statsTraceCtx,
TransportTracer transportTracer)
Create a deframer.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes this deframer and frees any resources.
|
void |
closeWhenComplete()
Close when any messages currently queued have been requested and delivered.
|
void |
deframe(ReadableBuffer data)
Adds the given data to this deframer and attempts delivery to the listener.
|
boolean |
isClosed()
Indicates whether or not this deframer has been closed.
|
void |
request(int numMessages)
Requests up to the given number of messages from the call.
|
void |
setDecompressor(io.grpc.Decompressor decompressor)
Sets the decompressor available to use.
|
void |
setFullStreamDecompressor(io.grpc.internal.GzipInflatingBuffer fullStreamDecompressor)
Sets the decompressor used for full-stream decompression.
|
void |
setMaxInboundMessageSize(int messageSize) |
public MessageDeframer(MessageDeframer.Listener listener, io.grpc.Decompressor decompressor, int maxMessageSize, StatsTraceContext statsTraceCtx, TransportTracer transportTracer)
listener - listener for deframer events.decompressor - the compression used if a compressed frame is encountered, with
NONE meaning unsupportedmaxMessageSize - the maximum allowed size for received messages.public void setMaxInboundMessageSize(int messageSize)
setMaxInboundMessageSize in interface Deframerpublic void setDecompressor(io.grpc.Decompressor decompressor)
DeframersetDecompressor in interface Deframerdecompressor - the decompressing wrapper.public void setFullStreamDecompressor(io.grpc.internal.GzipInflatingBuffer fullStreamDecompressor)
DeframerDeframer.setDecompressor(io.grpc.Decompressor).setFullStreamDecompressor in interface DeframerfullStreamDecompressor - the decompressing wrapperpublic void request(int numMessages)
DeframerIf Deframer.close() has been called, this method will have no effect.
public void deframe(ReadableBuffer data)
Deframerpublic void closeWhenComplete()
DeframercloseWhenComplete in interface Deframerpublic void close()
Deframerpublic boolean isClosed()