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