AbstractMemoryHttpData Class — netty Architecture
Architecture documentation for the AbstractMemoryHttpData class in AbstractMemoryHttpData.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 9fabf1b6_34c7_d321_8d9a_9be8f1515226["AbstractMemoryHttpData"] 0e40e3ca_6d9c_c593_45c4_c98593a3088f["AbstractMemoryHttpData.java"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|defined in| 0e40e3ca_6d9c_c593_45c4_c98593a3088f 2829641a_351c_fbe1_fb92_eed543195bd5["AbstractMemoryHttpData()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| 2829641a_351c_fbe1_fb92_eed543195bd5 4b8a3528_cb5e_4c08_44e4_94b41bd9a530["setContent()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| 4b8a3528_cb5e_4c08_44e4_94b41bd9a530 30f0269b_6453_542a_fcd8_cd56a60a732e["addContent()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| 30f0269b_6453_542a_fcd8_cd56a60a732e f100f11a_658f_442a_7d0c_e6193806599f["delete()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| f100f11a_658f_442a_7d0c_e6193806599f da40a06f_2d99_97a3_8e12_2f28a853541d["get()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| da40a06f_2d99_97a3_8e12_2f28a853541d d2a96b1e_0e6f_b437_cb21_016eb872abd7["String()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| d2a96b1e_0e6f_b437_cb21_016eb872abd7 f9d0ecf1_99c1_72f0_1db0_91d7724852c1["ByteBuf()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| f9d0ecf1_99c1_72f0_1db0_91d7724852c1 60038f94_46c3_af32_ecd7_d8aadb4ff404["isInMemory()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| 60038f94_46c3_af32_ecd7_d8aadb4ff404 a7f7ae53_66c5_879f_1a08_510ca841513e["renameTo()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| a7f7ae53_66c5_879f_1a08_510ca841513e 17d96c69_7b19_f5e0_cebb_0b0657b22da0["File()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| 17d96c69_7b19_f5e0_cebb_0b0657b22da0 e60bdfbe_8e41_824f_6d7c_29ad2a96a809["HttpData()"] 9fabf1b6_34c7_d321_8d9a_9be8f1515226 -->|method| e60bdfbe_8e41_824f_6d7c_29ad2a96a809
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java lines 39–303
public abstract class AbstractMemoryHttpData extends AbstractHttpData {
private ByteBuf byteBuf;
private int chunkPosition;
protected AbstractMemoryHttpData(String name, Charset charset, long size) {
super(name, charset, size);
byteBuf = EMPTY_BUFFER;
}
@Override
public void setContent(ByteBuf buffer) throws IOException {
ObjectUtil.checkNotNull(buffer, "buffer");
long localsize = buffer.readableBytes();
try {
checkSize(localsize);
} catch (IOException e) {
buffer.release();
throw e;
}
if (definedSize > 0 && definedSize < localsize) {
buffer.release();
throw new IOException("Out of size: " + localsize + " > " +
definedSize);
}
if (byteBuf != null) {
byteBuf.release();
}
byteBuf = buffer;
size = localsize;
setCompleted();
}
@Override
public void setContent(InputStream inputStream) throws IOException {
ObjectUtil.checkNotNull(inputStream, "inputStream");
byte[] bytes = new byte[4096 * 4];
ByteBuf buffer = buffer();
int written = 0;
try {
int read = inputStream.read(bytes);
while (read > 0) {
buffer.writeBytes(bytes, 0, read);
written += read;
checkSize(written);
read = inputStream.read(bytes);
}
} catch (IOException e) {
buffer.release();
throw e;
}
size = written;
if (definedSize > 0 && definedSize < size) {
buffer.release();
throw new IOException("Out of size: " + size + " > " + definedSize);
}
if (byteBuf != null) {
byteBuf.release();
}
byteBuf = buffer;
setCompleted();
}
@Override
public void addContent(ByteBuf buffer, boolean last)
throws IOException {
if (buffer != null) {
long localsize = buffer.readableBytes();
try {
checkSize(size + localsize);
} catch (IOException e) {
buffer.release();
throw e;
}
if (definedSize > 0 && definedSize < size + localsize) {
buffer.release();
throw new IOException("Out of size: " + (size + localsize) +
" > " + definedSize);
}
size += localsize;
Defined In
Source
Frequently Asked Questions
What is the AbstractMemoryHttpData class?
AbstractMemoryHttpData is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java.
Where is AbstractMemoryHttpData defined?
AbstractMemoryHttpData is defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/AbstractMemoryHttpData.java at line 39.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free