Package io.grpc.internal
Class SquelchLateMessagesAvailableDeframerListener
- java.lang.Object
-
- io.grpc.internal.ForwardingDeframerListener
-
- io.grpc.internal.SquelchLateMessagesAvailableDeframerListener
-
- All Implemented Interfaces:
MessageDeframer.Listener
final class SquelchLateMessagesAvailableDeframerListener extends ForwardingDeframerListener
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 implementCloseable.
-
-
Field Summary
Fields Modifier and Type Field Description private booleanclosedprivate MessageDeframer.Listenerdelegate
-
Constructor Summary
Constructors Constructor Description SquelchLateMessagesAvailableDeframerListener(MessageDeframer.Listener delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddeframeFailed(java.lang.Throwable cause)Called when aMessageDeframer.deframe(ReadableBuffer)operation failed.voiddeframerClosed(boolean hasPartialMessage)Called when the deframer closes.protected MessageDeframer.Listenerdelegate()voidmessagesAvailable(StreamListener.MessageProducer producer)Called to deliver the next complete message.-
Methods inherited from class io.grpc.internal.ForwardingDeframerListener
bytesRead
-
-
-
-
Field Detail
-
delegate
private final MessageDeframer.Listener delegate
-
closed
private boolean closed
-
-
Constructor Detail
-
SquelchLateMessagesAvailableDeframerListener
public SquelchLateMessagesAvailableDeframerListener(MessageDeframer.Listener delegate)
-
-
Method Detail
-
delegate
protected MessageDeframer.Listener delegate()
- Specified by:
delegatein classForwardingDeframerListener
-
messagesAvailable
public void messagesAvailable(StreamListener.MessageProducer producer)
Description copied from interface:MessageDeframer.ListenerCalled to deliver the next complete message.- Specified by:
messagesAvailablein interfaceMessageDeframer.Listener- Overrides:
messagesAvailablein classForwardingDeframerListener- Parameters:
producer- single message producer wrapping the message.
-
deframerClosed
public void deframerClosed(boolean hasPartialMessage)
Description copied from interface:MessageDeframer.ListenerCalled when the deframer closes.- Specified by:
deframerClosedin interfaceMessageDeframer.Listener- Overrides:
deframerClosedin classForwardingDeframerListener- Parameters:
hasPartialMessage- whether the deframer contained an incomplete message at closing.
-
deframeFailed
public void deframeFailed(java.lang.Throwable cause)
Description copied from interface:MessageDeframer.ListenerCalled when aMessageDeframer.deframe(ReadableBuffer)operation failed.- Specified by:
deframeFailedin interfaceMessageDeframer.Listener- Overrides:
deframeFailedin classForwardingDeframerListener- Parameters:
cause- the actual failure
-
-