Home / Class/ DefaultHttpDataFactory Class — netty Architecture

DefaultHttpDataFactory Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  98f78988_c19a_3e7e_7294_362a9946ed47["DefaultHttpDataFactory"]
  aa56a351_d7c1_7d8b_46c0_3e5633d04666["DefaultHttpDataFactory.java"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|defined in| aa56a351_d7c1_7d8b_46c0_3e5633d04666
  24d234cf_e872_1981_40ae_a7f8ee04a0b2["DefaultHttpDataFactory()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 24d234cf_e872_1981_40ae_a7f8ee04a0b2
  da354527_55bc_bb03_16a6_0d8c3b70b4f5["setBaseDir()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| da354527_55bc_bb03_16a6_0d8c3b70b4f5
  ac4ba668_8b77_a2d4_5991_32e83b248333["setDeleteOnExit()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| ac4ba668_8b77_a2d4_5991_32e83b248333
  8940627d_1edf_d6b2_29d3_034e0b57a709["setMaxLimit()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 8940627d_1edf_d6b2_29d3_034e0b57a709
  24a67ac8_3ea8_2355_22c5_9ce08e360e24["getList()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 24a67ac8_3ea8_2355_22c5_9ce08e360e24
  b562ffa7_5b17_90de_bb17_f1a0c9c004bd["Attribute()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| b562ffa7_5b17_90de_bb17_f1a0c9c004bd
  1f8c5b60_fd4b_1b00_24ee_903580c91e42["checkHttpDataSize()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 1f8c5b60_fd4b_1b00_24ee_903580c91e42
  5c96fe15_7385_5768_d7a7_8b8b6d75eeea["FileUpload()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 5c96fe15_7385_5768_d7a7_8b8b6d75eeea
  ae517864_1813_847f_a562_24bd2141cd68["removeHttpDataFromClean()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| ae517864_1813_847f_a562_24bd2141cd68
  7e8d53fc_8fca_ffff_f43a_bad21420c958["cleanRequestHttpData()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 7e8d53fc_8fca_ffff_f43a_bad21420c958
  a49d62a4_32bf_ffb1_6888_211a01d7fa00["cleanAllHttpData()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| a49d62a4_32bf_ffb1_6888_211a01d7fa00
  47159377_70ea_7f3a_aaff_56cb86637d8e["cleanRequestHttpDatas()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| 47159377_70ea_7f3a_aaff_56cb86637d8e
  e977c653_ca76_7ff6_c52e_9ba9560b54cd["cleanAllHttpDatas()"]
  98f78988_c19a_3e7e_7294_362a9946ed47 -->|method| e977c653_ca76_7ff6_c52e_9ba9560b54cd

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/multipart/DefaultHttpDataFactory.java lines 50–348

public class DefaultHttpDataFactory implements HttpDataFactory {

    /**
     * Proposed default MINSIZE as 16 KB.
     */
    public static final long MINSIZE = 0x4000;
    /**
     * Proposed default MAXSIZE = -1 as UNLIMITED
     */
    public static final long MAXSIZE = -1;

    private final boolean useDisk;

    private final boolean checkSize;

    private long minSize;

    private long maxSize = MAXSIZE;

    private Charset charset = HttpConstants.DEFAULT_CHARSET;

    private String baseDir;

    private boolean deleteOnExit; // false is a good default cause true leaks

    /**
     * Keep all {@link HttpData}s until cleaning methods are called.
     * We need to use {@link IdentityHashMap} because different requests may be equal.
     * See {@link DefaultHttpRequest#hashCode} and {@link DefaultHttpRequest#equals}.
     * Similarly, when removing data items, we need to check their identities because
     * different data items may be equal.
     */
    private final Map<HttpRequest, List<HttpData>> requestFileDeleteMap =
            Collections.synchronizedMap(new IdentityHashMap<HttpRequest, List<HttpData>>());

    /**
     * HttpData will be in memory if less than default size (16KB).
     * The type will be Mixed.
     */
    public DefaultHttpDataFactory() {
        useDisk = false;
        checkSize = true;
        minSize = MINSIZE;
    }

    public DefaultHttpDataFactory(Charset charset) {
        this();
        this.charset = charset;
    }

    /**
     * HttpData will be always on Disk if useDisk is True, else always in Memory if False
     */
    public DefaultHttpDataFactory(boolean useDisk) {
        this.useDisk = useDisk;
        checkSize = false;
    }

    public DefaultHttpDataFactory(boolean useDisk, Charset charset) {
        this(useDisk);
        this.charset = charset;
    }
    /**
     * HttpData will be on Disk if the size of the file is greater than minSize, else it
     * will be in memory. The type will be Mixed.
     */
    public DefaultHttpDataFactory(long minSize) {
        useDisk = false;
        checkSize = true;
        this.minSize = minSize;
    }

    public DefaultHttpDataFactory(long minSize, Charset charset) {
        this(minSize);
        this.charset = charset;
    }

    /**
     * Override global {@link DiskAttribute#baseDirectory} and {@link DiskFileUpload#baseDirectory} values.
     *
     * @param baseDir directory path where to store disk attributes and file uploads.

Frequently Asked Questions

What is the DefaultHttpDataFactory class?
DefaultHttpDataFactory is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/DefaultHttpDataFactory.java.
Where is DefaultHttpDataFactory defined?
DefaultHttpDataFactory is defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/DefaultHttpDataFactory.java at line 50.

Analyze Your Own Codebase

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

Try Supermodel Free