Package io.grpc.internal
Class ApplicationThreadDeframerListener
java.lang.Object
io.grpc.internal.ApplicationThreadDeframerListener
- All Implemented Interfaces:
MessageDeframer.Listener
Listener for when deframing on the application thread, which calls the real listener on the
transport thread. May only be called on the application thread.
Does not call the delegate's messagesAvailable()
. It's expected that
messageReadQueuePoll()
is called on the application thread from within a message producer
managed elsewhere.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Queue
<InputStream> Queue for messages returned by the deframer when deframing in the application thread.private final MessageDeframer.Listener
private final ApplicationThreadDeframerListener.TransportExecutor
-
Constructor Summary
ConstructorsConstructorDescriptionApplicationThreadDeframerListener
(MessageDeframer.Listener listener, ApplicationThreadDeframerListener.TransportExecutor transportExecutor) -
Method Summary
Modifier and TypeMethodDescriptionvoid
bytesRead
(int numBytes) Called when the given number of bytes has been read from the input source of the deframer.void
deframeFailed
(Throwable cause) Called when aMessageDeframer.deframe(ReadableBuffer)
operation failed.void
deframerClosed
(boolean hasPartialMessage) Called when the deframer closes.void
Called to deliver the next complete message.
-
Field Details
-
transportExecutor
-
storedListener
-
messageReadQueue
Queue for messages returned by the deframer when deframing in the application thread.
-
-
Constructor Details
-
ApplicationThreadDeframerListener
public ApplicationThreadDeframerListener(MessageDeframer.Listener listener, ApplicationThreadDeframerListener.TransportExecutor transportExecutor)
-
-
Method Details
-
bytesRead
public void bytesRead(int numBytes) Description copied from interface:MessageDeframer.Listener
Called when the given number of bytes has been read from the input source of the deframer. This is typically used to indicate to the underlying transport that more data can be accepted.- Specified by:
bytesRead
in interfaceMessageDeframer.Listener
- Parameters:
numBytes
- the number of bytes read from the deframer's input source.
-
messagesAvailable
Description copied from interface:MessageDeframer.Listener
Called to deliver the next complete message.- Specified by:
messagesAvailable
in interfaceMessageDeframer.Listener
- 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
- 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
- Parameters:
cause
- the actual failure
-
messageReadQueuePoll
-