Interface FileAccessor

All Superinterfaces:
com.fishlib.base.log.LogOutputAppendable, NamedImplementation
All Known Implementing Classes:
LazyFileAccessor, LocalFileAccessor, OffsetFileAccessor, WritableLocalFileAccessor

public interface FileAccessor
extends NamedImplementation, com.fishlib.base.log.LogOutputAppendable
Interface to abstract-away local or remote file access.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static long NULL_REQUIRED_SIZE
    The "null" size hint.
  • Method Summary

    Modifier and Type Method Description
    default void force()
    Make sure any previous writes to the underlying file through this file accessor are persisted, synchronously.
    default FileAccessor getOffsetView​(long startOffset)
    Get an offset view into this FileAccessor.
    int read​(ByteBuffer buffer, long position)
    Fill the supplied buffer with data starting at the supplied offset (position) into this file accessor.
    long size​(long requiredSize)
    Request an up-to-date size value for the file data space backing this accessor.
    default void truncate​(long size)
    Truncate the file data space backing this accessor to the supplied size.
    default int write​(ByteBuffer buffer, long position)
    Write the supplied buffer (from buffer.position(), inclusive, to buffer.limit(), exclusive), starting at the supplied offset (position) into this file accessor.

    Methods inherited from interface com.fishlib.base.log.LogOutputAppendable

    append

    Methods inherited from interface com.illumon.util.type.NamedImplementation

    getImplementationName
  • Field Details

  • Method Details

    • size

      long size​(long requiredSize)
      Request an up-to-date size value for the file data space backing this accessor.
      Parameters:
      requiredSize - Hint about the minimum size the caller would like as a result
      Returns:
      The size of the file data space backing this accessor
    • read

      int read​(ByteBuffer buffer, long position)
      Fill the supplied buffer with data starting at the supplied offset (position) into this file accessor. A successful invocation will fill the buffer from buffer.position(), inclusive, to at least buffer.limit(), exclusive, possibly up to buffer.capacity(), exclusive.
      Parameters:
      buffer - A buffer with state appropriate for a call to FileChannel.read()
      position - The start position in this file accessor's data space to read from
      Returns:
      The number of bytes read, or -1 on error
    • write

      default int write​(@NotNull ByteBuffer buffer, long position)
      Write the supplied buffer (from buffer.position(), inclusive, to buffer.limit(), exclusive), starting at the supplied offset (position) into this file accessor.
      Parameters:
      buffer - A buffer with state appropriate for a call to FileChannel.write()
      position - The start position in this file accessor's data space to write to
      Returns:
      The number of bytes written, or -1 on error
    • truncate

      default void truncate​(long size)
      Truncate the file data space backing this accessor to the supplied size.
      Parameters:
      size - The new size
    • force

      default void force()
      Make sure any previous writes to the underlying file through this file accessor are persisted, synchronously.
    • getOffsetView

      default FileAccessor getOffsetView​(long startOffset)
      Get an offset view into this FileAccessor.
      Parameters:
      startOffset - The offset
      Returns:
      The new offset view accessor