Home / Class/ ObjectEncoderOutputStream Class — netty Architecture

ObjectEncoderOutputStream Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7["ObjectEncoderOutputStream"]
  7fdc9922_0b4a_e273_6d00_0f3b1c1e2ee0["ObjectEncoderOutputStream.java"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|defined in| 7fdc9922_0b4a_e273_6d00_0f3b1c1e2ee0
  a6af8dab_c010_45ed_8893_a316cc15cee6["ObjectEncoderOutputStream()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| a6af8dab_c010_45ed_8893_a316cc15cee6
  db13a425_1cb5_461a_8875_01712c220927["writeObject()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| db13a425_1cb5_461a_8875_01712c220927
  b58c8d0e_df9b_e507_b27c_3c9fc8a3f33d["write()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| b58c8d0e_df9b_e507_b27c_3c9fc8a3f33d
  28ff3251_c8f1_7540_bf0d_928f39db3a3a["close()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| 28ff3251_c8f1_7540_bf0d_928f39db3a3a
  a422dc6c_f0b9_d21e_8e32_4eb42be4d977["flush()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| a422dc6c_f0b9_d21e_8e32_4eb42be4d977
  20cd181c_7bb5_0556_9824_afc19d5c8847["size()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| 20cd181c_7bb5_0556_9824_afc19d5c8847
  01c63578_8db7_791e_f2a4_1bc4d08ab8b6["writeBoolean()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| 01c63578_8db7_791e_f2a4_1bc4d08ab8b6
  04e627d2_4e53_0b89_8c23_f2f37365c98a["writeByte()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| 04e627d2_4e53_0b89_8c23_f2f37365c98a
  d5b608a2_0cda_cb79_d03e_4a9d904c280a["writeBytes()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| d5b608a2_0cda_cb79_d03e_4a9d904c280a
  011b4310_ba3a_daea_f9f0_9bf49b8f14fd["writeChar()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| 011b4310_ba3a_daea_f9f0_9bf49b8f14fd
  ca6001a1_2aec_67a2_a9d6_7a5994c0653a["writeChars()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| ca6001a1_2aec_67a2_a9d6_7a5994c0653a
  c5e3be1e_bf8a_16fd_1a22_cae2ecbe42cb["writeDouble()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| c5e3be1e_bf8a_16fd_1a22_cae2ecbe42cb
  14e3d670_c015_97fd_660c_6120a0dc2add["writeFloat()"]
  6cc70b73_a02f_7241_88b1_9e4f5971fdd7 -->|method| 14e3d670_c015_97fd_660c_6120a0dc2add

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectEncoderOutputStream.java lines 43–194

@Deprecated
public class ObjectEncoderOutputStream extends OutputStream implements
        ObjectOutput {

    private final DataOutputStream out;
    private final int estimatedLength;

    /**
     * Creates a new {@link ObjectOutput} with the estimated length of 512
     * bytes.
     *
     * @param out
     *        the {@link OutputStream} where the serialized form will be
     *        written out
     */
    public ObjectEncoderOutputStream(OutputStream out) {
        this(out, 512);
    }

    /**
     * Creates a new {@link ObjectOutput}.
     *
     * @param out
     *        the {@link OutputStream} where the serialized form will be
     *        written out
     *
     * @param estimatedLength
     *        the estimated byte length of the serialized form of an object.
     *        If the length of the serialized form exceeds this value, the
     *        internal buffer will be expanded automatically at the cost of
     *        memory bandwidth.  If this value is too big, it will also waste
     *        memory bandwidth.  To avoid unnecessary memory copy or allocation
     *        cost, please specify the properly estimated value.
     */
    public ObjectEncoderOutputStream(OutputStream out, int estimatedLength) {
        ObjectUtil.checkNotNull(out, "out");
        ObjectUtil.checkPositiveOrZero(estimatedLength, "estimatedLength");

        if (out instanceof DataOutputStream) {
            this.out = (DataOutputStream) out;
        } else {
            this.out = new DataOutputStream(out);
        }
        this.estimatedLength = estimatedLength;
    }

    @Override
    public void writeObject(Object obj) throws IOException {
        ByteBuf buf = Unpooled.buffer(estimatedLength);
        try {
            // Suppress a warning about resource leak since oout is closed below
            ObjectOutputStream oout = new CompactObjectOutputStream(
                    new ByteBufOutputStream(buf));
            try {
                oout.writeObject(obj);
                oout.flush();
            } finally {
                oout.close();
            }

            int objectSize = buf.readableBytes();
            writeInt(objectSize);
            buf.getBytes(0, this, objectSize);
        } finally {
            buf.release();
        }
    }

    @Override
    public void write(int b) throws IOException {
        out.write(b);
    }

    @Override
    public void close() throws IOException {
        out.close();
    }

    @Override
    public void flush() throws IOException {
        out.flush();

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free