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.Listenerprivate final ApplicationThreadDeframerListener.TransportExecutor -
Constructor Summary
ConstructorsConstructorDescriptionApplicationThreadDeframerListener(MessageDeframer.Listener listener, ApplicationThreadDeframerListener.TransportExecutor transportExecutor) -
Method Summary
Modifier and TypeMethodDescriptionvoidbytesRead(int numBytes) Called when the given number of bytes has been read from the input source of the deframer.voiddeframeFailed(Throwable cause) Called when aMessageDeframer.deframe(ReadableBuffer)operation failed.voiddeframerClosed(boolean hasPartialMessage) Called when the deframer closes.voidCalled 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.ListenerCalled 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:
bytesReadin interfaceMessageDeframer.Listener- Parameters:
numBytes- the number of bytes read from the deframer's input source.
-
messagesAvailable
Description copied from interface:MessageDeframer.ListenerCalled to deliver the next complete message.- Specified by:
messagesAvailablein interfaceMessageDeframer.Listener- 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- Parameters:
hasPartialMessage- whether the deframer contained an incomplete message at closing.
-
deframeFailed
Description copied from interface:MessageDeframer.ListenerCalled when aMessageDeframer.deframe(ReadableBuffer)operation failed.- Specified by:
deframeFailedin interfaceMessageDeframer.Listener- Parameters:
cause- the actual failure
-
messageReadQueuePoll
-