Class MemoryUsageSetting


  • public final class MemoryUsageSetting
    extends Object
    Controls how memory/temporary files are used for buffering streams etc.
    • Method Detail

      • setupMainMemoryOnly

        public static MemoryUsageSetting setupMainMemoryOnly()
        Setups buffering memory usage to only use main-memory (no temporary file) which is not restricted in size.
      • setupMainMemoryOnly

        public static MemoryUsageSetting setupMainMemoryOnly​(long maxMainMemoryBytes)
        Setups buffering memory usage to only use main-memory with the defined maximum.
        Parameters:
        maxMainMemoryBytes - maximum number of main-memory to be used; -1 for no restriction; 0 will also be interpreted here as no restriction
      • setupTempFileOnly

        public static MemoryUsageSetting setupTempFileOnly()
        Setups buffering memory usage to only use temporary file(s) (no main-memory) with not restricted size.
      • setupTempFileOnly

        public static MemoryUsageSetting setupTempFileOnly​(long maxStorageBytes)
        Setups buffering memory usage to only use temporary file(s) (no main-memory) with the specified maximum size.
        Parameters:
        maxStorageBytes - maximum size the temporary file(s) may have all together; -1 for no restriction; 0 will also be interpreted here as no restriction
      • setupMixed

        public static MemoryUsageSetting setupMixed​(long maxMainMemoryBytes)
        Setups buffering memory usage to use a portion of main-memory and additionally temporary file(s) in case the specified portion is exceeded.
        Parameters:
        maxMainMemoryBytes - maximum number of main-memory to be used; if -1 this is the same as setupMainMemoryOnly(); if 0 this is the same as setupTempFileOnly()
      • setupMixed

        public static MemoryUsageSetting setupMixed​(long maxMainMemoryBytes,
                                                    long maxStorageBytes)
        Setups buffering memory usage to use a portion of main-memory and additionally temporary file(s) in case the specified portion is exceeded.
        Parameters:
        maxMainMemoryBytes - maximum number of main-memory to be used; if -1 this is the same as setupMainMemoryOnly(); if 0 this is the same as setupTempFileOnly()
        maxStorageBytes - maximum size the main-memory and temporary file(s) may have all together; 0 or less will be ignored; if it is less than maxMainMemoryBytes we use maxMainMemoryBytes value instead
      • setTempDir

        public MemoryUsageSetting setTempDir​(File tempDir)
        Sets directory to be used for temporary files.
        Parameters:
        tempDir - directory for temporary files
        Returns:
        this instance
      • useMainMemory

        public boolean useMainMemory()
        Returns true if main-memory is to be used.

        If this returns false it is ensured useTempFile() returns true.

      • useTempFile

        public boolean useTempFile()
        Returns true if temporary file is to be used.

        If this returns false it is ensured useMainMemory returns true.

      • isMainMemoryRestricted

        public boolean isMainMemoryRestricted()
        Returns true if maximum main memory is restricted to a specific number of bytes.
      • isStorageRestricted

        public boolean isStorageRestricted()
        Returns true if maximum amount of storage is restricted to a specific number of bytes.
      • getMaxMainMemoryBytes

        public long getMaxMainMemoryBytes()
        Returns maximum size of main-memory in bytes to be used.
      • getMaxStorageBytes

        public long getMaxStorageBytes()
        Returns maximum size of storage bytes to be used (main-memory in temporary files all together).
      • getTempDir

        public File getTempDir()
        Returns directory to be used for temporary files or null if it was not set.