Class SharedFileBackedOutputStream

java.lang.Object
java.io.OutputStream
org.opendaylight.controller.cluster.io.FileBackedOutputStream
org.opendaylight.controller.cluster.io.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 Details

    • SharedFileBackedOutputStream

      public SharedFileBackedOutputStream(int fileThreshold, String fileDirectory)
  • Method Details

    • 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.
    • cleanup

      public void cleanup()
      Overridden to decrement the usage count.
      Overrides:
      cleanup in class FileBackedOutputStream