Home / Class/ AbstractMemoryHttpData Class — netty Architecture

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;

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