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);
}
}
Defined In
Source
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