Home / Class/ ObjectEncoder Class — netty Architecture

ObjectEncoder Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  f1589154_b31d_6110_6729_e18015dc79b2["ObjectEncoder"]
  81fe6039_b27c_6d36_308c_d108ce4203fd["ObjectEncoder.java"]
  f1589154_b31d_6110_6729_e18015dc79b2 -->|defined in| 81fe6039_b27c_6d36_308c_d108ce4203fd
  3dc2c72a_ceca_cd2c_1190_3fa315cc6b5e["ObjectEncoder()"]
  f1589154_b31d_6110_6729_e18015dc79b2 -->|method| 3dc2c72a_ceca_cd2c_1190_3fa315cc6b5e
  e1e28d66_d746_237b_d961_ea4199245044["encode()"]
  f1589154_b31d_6110_6729_e18015dc79b2 -->|method| e1e28d66_d746_237b_d961_ea4199245044

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectEncoder.java lines 46–78

@Deprecated
@Sharable
public class ObjectEncoder extends MessageToByteEncoder<Serializable> {
    private static final byte[] LENGTH_PLACEHOLDER = new byte[4];

    public ObjectEncoder() {
        super(Serializable.class);
    }

    @Override
    protected void encode(ChannelHandlerContext ctx, Serializable msg, ByteBuf out) throws Exception {
        int startIdx = out.writerIndex();

        ByteBufOutputStream bout = new ByteBufOutputStream(out);
        ObjectOutputStream oout = null;
        try {
            bout.write(LENGTH_PLACEHOLDER);
            oout = new CompactObjectOutputStream(bout);
            oout.writeObject(msg);
            oout.flush();
        } finally {
            if (oout != null) {
                oout.close();
            } else {
                bout.close();
            }
        }

        int endIdx = out.writerIndex();

        out.setInt(startIdx, endIdx - startIdx - 4);
    }
}

Frequently Asked Questions

What is the ObjectEncoder class?
ObjectEncoder is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectEncoder.java.
Where is ObjectEncoder defined?
ObjectEncoder is defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectEncoder.java at line 46.

Analyze Your Own Codebase

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

Try Supermodel Free