Package com.twelvemonkeys.io
Class AbstractCachedSeekableStream
java.lang.Object
java.io.InputStream
com.twelvemonkeys.io.SeekableInputStream
com.twelvemonkeys.io.AbstractCachedSeekableStream
- All Implemented Interfaces:
Seekable
,Closeable
,AutoCloseable
- Direct Known Subclasses:
FileCacheSeekableStream
,MemoryCacheSeekableStream
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 $
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
An abstract stream cache. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final InputStream
The backing streamprotected long
The stream positon in the backing stream (stream)Fields inherited from class com.twelvemonkeys.io.SeekableInputStream
closed, flushedPosition, markedPositions, position
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
-
Method Summary
Modifier and TypeMethodDescriptionint
protected void
protected void
flushBeforeImpl
(long pPosition) Discards the initial portion of the stream prior to the indicated postion.protected final AbstractCachedSeekableStream.StreamCache
getCache()
final boolean
isCached()
Returns true if thisSeekable
stream caches data itself in order to allow seeking backwards.abstract boolean
Returns true if thisSeekable
stream caches data itself in order to allow seeking backwards, and the cache is kept in a temporary file.abstract boolean
Returns true if thisSeekable
stream caches data itself in order to allow seeking backwards, and the cache is kept in main memory.int
read()
int
read
(byte[] pBytes, int pOffset, int pLength) protected void
seekImpl
(long pPosition) protected final void
Methods inherited from class com.twelvemonkeys.io.SeekableInputStream
checkOpen, close, finalize, flush, flushBefore, getFlushedPosition, getStreamPosition, mark, mark, markSupported, read, reset, seek, skip
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Field Details
-
stream
The backing stream -
streamPosition
protected long streamPositionThe stream positon in the backing stream (stream) -
cache
-
-
Constructor Details
-
AbstractCachedSeekableStream
protected AbstractCachedSeekableStream(InputStream pStream, AbstractCachedSeekableStream.StreamCache pCache)
-
-
Method Details
-
getCache
-
available
- Overrides:
available
in classInputStream
- Throws:
IOException
-
read
- Specified by:
read
in classInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
syncPosition
- Throws:
IOException
-
isCached
public final boolean isCached()Description copied from interface:Seekable
Returns true if thisSeekable
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 thisSeekable
caches data.- See Also:
-
isCachedMemory
public abstract boolean isCachedMemory()Description copied from interface:Seekable
Returns true if thisSeekable
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 thisSeekable
caches data in main memory.- See Also:
-
isCachedFile
public abstract boolean isCachedFile()Description copied from interface:Seekable
Returns true if thisSeekable
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 thisSeekable
caches data in a temporary file.- See Also:
-
seekImpl
- Specified by:
seekImpl
in classSeekableInputStream
- Throws:
IOException
-
flushBeforeImpl
protected void flushBeforeImpl(long pPosition) Description copied from class:SeekableInputStream
Discards the initial portion of the stream prior to the indicated postion.- Specified by:
flushBeforeImpl
in classSeekableInputStream
- Parameters:
pPosition
- the position to flush to- See Also:
-
closeImpl
- Specified by:
closeImpl
in classSeekableInputStream
- Throws:
IOException
-