Class AbstractCachedSeekableStream

  • All Implemented Interfaces:
    Seekable, java.io.Closeable, java.lang.AutoCloseable
    Direct Known Subclasses:
    FileCacheSeekableStream, MemoryCacheSeekableStream

    abstract class AbstractCachedSeekableStream
    extends SeekableInputStream
    Represents a cached seekable stream, that reads through a cache.
    Version:
    $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/io/AbstractCachedSeekableStream.java#2 $
    • Field Detail

      • stream

        protected final java.io.InputStream stream
        The backing stream
      • streamPosition

        protected long streamPosition
        The stream positon in the backing stream (stream)
    • Method Detail

      • available

        public int available()
                      throws java.io.IOException
        Overrides:
        available in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] pBytes,
                        int pOffset,
                        int pLength)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • syncPosition

        protected final void syncPosition()
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • isCached

        public final boolean isCached()
        Description copied from interface: Seekable
        Returns true if this Seekable stream caches data itself in order to allow seeking backwards. Applications may consult this in order to decide how frequently, or whether, to flush in order to conserve cache resources.
        Returns:
        true if this Seekable caches data.
        See Also:
        Seekable.isCachedMemory(), Seekable.isCachedFile()
      • isCachedMemory

        public abstract boolean isCachedMemory()
        Description copied from interface: Seekable
        Returns true if this Seekable stream caches data itself in order to allow seeking backwards, and the cache is kept in main memory. Applications may consult this in order to decide how frequently, or whether, to flush in order to conserve cache resources.
        Returns:
        true if this Seekable caches data in main memory.
        See Also:
        Seekable.isCached(), Seekable.isCachedFile()
      • isCachedFile

        public abstract boolean isCachedFile()
        Description copied from interface: Seekable
        Returns true if this Seekable stream caches data itself in order to allow seeking backwards, and the cache is kept in a temporary file. Applications may consult this in order to decide how frequently, or whether, to flush in order to conserve cache resources.
        Returns:
        true if this Seekable caches data in a temporary file.
        See Also:
        Seekable.isCached(), Seekable.isCachedMemory()
      • seekImpl

        protected void seekImpl​(long pPosition)
                         throws java.io.IOException
        Specified by:
        seekImpl in class SeekableInputStream
        Throws:
        java.io.IOException
      • closeImpl

        protected void closeImpl()
                          throws java.io.IOException
        Specified by:
        closeImpl in class SeekableInputStream
        Throws:
        java.io.IOException