Class SharedFileBackedOutputStream

  • All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable

    public class SharedFileBackedOutputStream
    extends FileBackedOutputStream
    A FileBackedOutputStream that allows for sharing in that it maintains a usage count and the backing file isn't deleted until the usage count reaches 0. The usage count is initialized to 1 on construction. Subsequent users of the instance must call incrementUsageCount(). The cleanup() method decrements the usage count and, when it reaches 0, the FileBackedOutputStream.cleanup() is called to delete the backing file.
    Author:
    Thomas Pantelis
    • Constructor Detail

      • SharedFileBackedOutputStream

        public SharedFileBackedOutputStream​(int fileThreshold,
                                            String fileDirectory)
    • Method Detail

      • incrementUsageCount

        public void incrementUsageCount()
        Increments the usage count. This must be followed by a corresponding call to cleanup() when this instance is no longer needed.
      • getUsageCount

        public int getUsageCount()
        Returns the current usage count.
        Returns:
        the current usage count
      • setOnCleanupCallback

        public <T> void setOnCleanupCallback​(Consumer<T> callback,
                                             T context)
        Sets the callback to be notified when FileBackedOutputStream.cleanup() is called to delete the backing file.