Package io.grpc.internal
Class SquelchLateMessagesAvailableDeframerListener
java.lang.Object
io.grpc.internal.ForwardingDeframerListener
io.grpc.internal.SquelchLateMessagesAvailableDeframerListener
- All Implemented Interfaces:
MessageDeframer.Listener
A delegating Listener that throws away notifications of messagesAvailable() after the deframer
has closed or failed. This can be used by deframers that "abuse" the MessageProducer to run work
on the app thread, to avoid breaking the normal invariant that there are no messages after
deframing is complete. Since the producer may not be run, it must not hold resources or
it should implement
Closeable
.-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionvoid
deframeFailed
(Throwable cause) Called when aMessageDeframer.deframe(ReadableBuffer)
operation failed.void
deframerClosed
(boolean hasPartialMessage) Called when the deframer closes.protected MessageDeframer.Listener
delegate()
void
Called to deliver the next complete message.Methods inherited from class io.grpc.internal.ForwardingDeframerListener
bytesRead
-
Field Details
-
delegate
-
closed
private boolean closed
-
-
Constructor Details
-
SquelchLateMessagesAvailableDeframerListener
-
-
Method Details
-
delegate
- Specified by:
delegate
in classForwardingDeframerListener
-
messagesAvailable
Description copied from interface:MessageDeframer.Listener
Called to deliver the next complete message.- Specified by:
messagesAvailable
in interfaceMessageDeframer.Listener
- Overrides:
messagesAvailable
in classForwardingDeframerListener
- Parameters:
producer
- single message producer wrapping the message.
-
deframerClosed
public void deframerClosed(boolean hasPartialMessage) Description copied from interface:MessageDeframer.Listener
Called when the deframer closes.- Specified by:
deframerClosed
in interfaceMessageDeframer.Listener
- Overrides:
deframerClosed
in classForwardingDeframerListener
- Parameters:
hasPartialMessage
- whether the deframer contained an incomplete message at closing.
-
deframeFailed
Description copied from interface:MessageDeframer.Listener
Called when aMessageDeframer.deframe(ReadableBuffer)
operation failed.- Specified by:
deframeFailed
in interfaceMessageDeframer.Listener
- Overrides:
deframeFailed
in classForwardingDeframerListener
- Parameters:
cause
- the actual failure
-