Class ArmeriaMessageDeframer
java.lang.Object
com.linecorp.armeria.common.grpc.protocol.AbstractMessageDeframer
com.linecorp.armeria.common.grpc.protocol.ArmeriaMessageDeframer
- All Implemented Interfaces:
com.linecorp.armeria.common.stream.HttpDecoder<DeframedMessage>,com.linecorp.armeria.common.stream.StreamDecoder<com.linecorp.armeria.common.HttpData,DeframedMessage>
@UnstableApi
public class ArmeriaMessageDeframer
extends AbstractMessageDeframer
implements com.linecorp.armeria.common.stream.HttpDecoder<DeframedMessage>
A deframer of messages transported in the gRPC wire format. See
gRPC Wire Format
for more detail on the protocol.
The logic has been mostly copied from io.grpc.internal.MessageDeframer, while removing the buffer
abstraction in favor of using ByteBuf directly, and allowing the delivery of uncompressed frames as
a ByteBuf to optimize message parsing.
-
Field Summary
Fields inherited from class com.linecorp.armeria.common.grpc.protocol.AbstractMessageDeframer
NO_MAX_INBOUND_MESSAGE_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionArmeriaMessageDeframer(int maxMessageLength) Construct anArmeriaMessageDeframerfor reading messages out of a gRPC request or response.ArmeriaMessageDeframer(int maxMessageLength, ByteBufAllocator alloc, boolean grpcWebText) Construct anArmeriaMessageDeframerfor reading messages out of a gRPC request or response with the specified parameters. -
Method Summary
Modifier and TypeMethodDescriptiondecompressor(@Nullable Decompressor decompressor) Sets theDecompressorfor this deframer.voidprocess(com.linecorp.armeria.common.stream.StreamDecoderInput in, com.linecorp.armeria.common.stream.StreamDecoderOutput<DeframedMessage> out) toByteBuf(com.linecorp.armeria.common.HttpData in) Methods inherited from class com.linecorp.armeria.common.grpc.protocol.AbstractMessageDeframer
readBody, readHeaderMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.linecorp.armeria.common.stream.HttpDecoder
processHeaders, processInformationalHeaders, processTrailersMethods inherited from interface com.linecorp.armeria.common.stream.StreamDecoder
processOnComplete, processOnError
-
Constructor Details
-
ArmeriaMessageDeframer
public ArmeriaMessageDeframer(int maxMessageLength) Construct anArmeriaMessageDeframerfor reading messages out of a gRPC request or response. -
ArmeriaMessageDeframer
Construct anArmeriaMessageDeframerfor reading messages out of a gRPC request or response with the specified parameters.
-
-
Method Details
-
toByteBuf
- Specified by:
toByteBufin interfacecom.linecorp.armeria.common.stream.HttpDecoder<DeframedMessage>- Specified by:
toByteBufin interfacecom.linecorp.armeria.common.stream.StreamDecoder<com.linecorp.armeria.common.HttpData,DeframedMessage>
-
process
public void process(com.linecorp.armeria.common.stream.StreamDecoderInput in, com.linecorp.armeria.common.stream.StreamDecoderOutput<DeframedMessage> out) throws Exception - Specified by:
processin interfacecom.linecorp.armeria.common.stream.StreamDecoder<com.linecorp.armeria.common.HttpData,DeframedMessage> - Throws:
Exception
-
decompressor
Description copied from class:AbstractMessageDeframerSets theDecompressorfor this deframer.- Overrides:
decompressorin classAbstractMessageDeframer
-