Home / Class/ MarshallingEncoder Class — netty Architecture

MarshallingEncoder Class — netty Architecture

Architecture documentation for the MarshallingEncoder class in MarshallingEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  119e0418_980a_9c49_2161_22769a680775["MarshallingEncoder"]
  30cf5586_6020_e9da_ba87_e00d8c3a32b8["MarshallingEncoder.java"]
  119e0418_980a_9c49_2161_22769a680775 -->|defined in| 30cf5586_6020_e9da_ba87_e00d8c3a32b8
  9df8f3c3_512b_fe02_000f_655435dcd7cf["MarshallingEncoder()"]
  119e0418_980a_9c49_2161_22769a680775 -->|method| 9df8f3c3_512b_fe02_000f_655435dcd7cf
  5573ef2d_3bbd_33e2_e191_149c583772d1["encode()"]
  119e0418_980a_9c49_2161_22769a680775 -->|method| 5573ef2d_3bbd_33e2_e191_149c583772d1

Relationship Graph

Source Code

codec-marshalling/src/main/java/io/netty/handler/codec/marshalling/MarshallingEncoder.java lines 37–66

@Sharable
public class MarshallingEncoder extends MessageToByteEncoder<Object> {

    private static final byte[] LENGTH_PLACEHOLDER = new byte[4];
    private final MarshallerProvider provider;

    /**
     * Creates a new encoder.
     *
     * @param provider the {@link MarshallerProvider} to use
     */
    public MarshallingEncoder(MarshallerProvider provider) {
        super(Object.class);
        this.provider = provider;
    }

    @Override
    protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception {
        Marshaller marshaller = provider.getMarshaller(ctx);
        int lengthPos = out.writerIndex();
        out.writeBytes(LENGTH_PLACEHOLDER);
        ChannelBufferByteOutput output = new ChannelBufferByteOutput(out);
        marshaller.start(output);
        marshaller.writeObject(msg);
        marshaller.finish();
        marshaller.close();

        out.setInt(lengthPos, out.writerIndex() - lengthPos - 4);
    }
}

Frequently Asked Questions

What is the MarshallingEncoder class?
MarshallingEncoder is a class in the netty codebase, defined in codec-marshalling/src/main/java/io/netty/handler/codec/marshalling/MarshallingEncoder.java.
Where is MarshallingEncoder defined?
MarshallingEncoder is defined in codec-marshalling/src/main/java/io/netty/handler/codec/marshalling/MarshallingEncoder.java at line 37.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free