Class MemoryUsageSetting

java.lang.Object
org.apache.pdfbox.io.MemoryUsageSetting

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

    • 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
    • getPartitionedCopy

      public MemoryUsageSetting getPartitionedCopy(int parallelUseCount)
      Returns a copy of this instance with the maximum memory/storage restriction divided by the provided number of parallel uses.
      Parameters:
      parallelUseCount - specifies the number of parallel usages for the setting to be returned
      Returns:
      a copy from this instance with the maximum memory/storage restrictions adjusted to the multiple usage
    • 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.
    • toString

      public String toString()
      Overrides:
      toString in class Object