AbstractMixedHttpData Class — netty Architecture
Architecture documentation for the AbstractMixedHttpData class in AbstractMixedHttpData.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 98233652_bb29_50f3_e596_2812fd02b555["AbstractMixedHttpData"] ae41176f_a35b_90ab_feaf_21c893575980["AbstractMixedHttpData.java"] 98233652_bb29_50f3_e596_2812fd02b555 -->|defined in| ae41176f_a35b_90ab_feaf_21c893575980 ef03dc53_6432_ebfc_b8fb_c42349a04dd2["AbstractMixedHttpData()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| ef03dc53_6432_ebfc_b8fb_c42349a04dd2 a5ae3919_a0c3_1a6b_dc4e_b4679c5d16a0["D()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| a5ae3919_a0c3_1a6b_dc4e_b4679c5d16a0 52a6738c_5f09_40ac_3200_094693174d86["getMaxSize()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| 52a6738c_5f09_40ac_3200_094693174d86 f0a89387_c632_6833_56b4_33054643ce56["setMaxSize()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| f0a89387_c632_6833_56b4_33054643ce56 e9844d52_c7f7_ef1a_6e7d_8fa7ad1deef7["ByteBuf()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| e9844d52_c7f7_ef1a_6e7d_8fa7ad1deef7 21bbd55c_2ca6_858e_dd09_5ab2962d98be["checkSize()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| 21bbd55c_2ca6_858e_dd09_5ab2962d98be f76ac80e_9c6c_c003_4f20_2056bf0af629["definedLength()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| f76ac80e_9c6c_c003_4f20_2056bf0af629 a3ac7357_9eac_85b0_87c7_09ae5f9436b7["Charset()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| a3ac7357_9eac_85b0_87c7_09ae5f9436b7 cc052e8d_9190_6eb1_403c_04305cd01d32["String()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| cc052e8d_9190_6eb1_403c_04305cd01d32 db6eda06_23cf_bb53_0685_c86b82aea9a1["addContent()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| db6eda06_23cf_bb53_0685_c86b82aea9a1 c4d96371_3d1e_00af_5f4d_fff3a580912c["deallocate()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| c4d96371_3d1e_00af_5f4d_fff3a580912c 42016ac5_ced7_8572_8fbb_3458607c6269["delete()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| 42016ac5_ced7_8572_8fbb_3458607c6269 9fb45d6c_100f_a5eb_0d0c_9aa73ceef482["get()"] 98233652_bb29_50f3_e596_2812fd02b555 -->|method| 9fb45d6c_100f_a5eb_0d0c_9aa73ceef482
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMixedHttpData.java lines 26–279
abstract class AbstractMixedHttpData<D extends HttpData> extends AbstractReferenceCounted implements HttpData {
final String baseDir;
final boolean deleteOnExit;
D wrapped;
private final long limitSize;
AbstractMixedHttpData(long limitSize, String baseDir, boolean deleteOnExit, D initial) {
this.limitSize = limitSize;
this.wrapped = initial;
this.baseDir = baseDir;
this.deleteOnExit = deleteOnExit;
}
abstract D makeDiskData();
@Override
public long getMaxSize() {
return wrapped.getMaxSize();
}
@Override
public void setMaxSize(long maxSize) {
wrapped.setMaxSize(maxSize);
}
@Override
public ByteBuf content() {
return wrapped.content();
}
@Override
public void checkSize(long newSize) throws IOException {
wrapped.checkSize(newSize);
}
@Override
public long definedLength() {
return wrapped.definedLength();
}
@Override
public Charset getCharset() {
return wrapped.getCharset();
}
@Override
public String getName() {
return wrapped.getName();
}
@Override
public void addContent(ByteBuf buffer, boolean last) throws IOException {
if (wrapped instanceof AbstractMemoryHttpData) {
try {
checkSize(wrapped.length() + buffer.readableBytes());
if (wrapped.length() + buffer.readableBytes() > limitSize) {
D diskData = makeDiskData();
ByteBuf data = ((AbstractMemoryHttpData) wrapped).getByteBuf();
if (data != null && data.isReadable()) {
diskData.addContent(data.retain(), false);
}
wrapped.release();
wrapped = diskData;
}
} catch (IOException e) {
buffer.release();
throw e;
}
}
wrapped.addContent(buffer, last);
}
@Override
protected void deallocate() {
delete();
}
@Override
public void delete() {
wrapped.delete();
Defined In
Source
Frequently Asked Questions
What is the AbstractMixedHttpData class?
AbstractMixedHttpData is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMixedHttpData.java.
Where is AbstractMixedHttpData defined?
AbstractMixedHttpData is defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMixedHttpData.java at line 26.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free