de.schlichtherle.truezip.socket
Class IOCache.CacheInputSocket
java.lang.Object
de.schlichtherle.truezip.socket.IOSocket<E,Entry>
de.schlichtherle.truezip.socket.InputSocket<Entry>
de.schlichtherle.truezip.socket.IOCache.CacheInputSocket
- Enclosing class:
- IOCache
private final class IOCache.CacheInputSocket
- extends InputSocket<Entry>
buffer
@CheckForNull
private volatile IOCache.Buffer buffer
IOCache.CacheInputSocket
private IOCache.CacheInputSocket()
getLocalTarget
public Entry getLocalTarget()
throws IOException
- Description copied from class:
IOSocket
- Returns the local target for I/O operations.
Note that this interface contract does not state any other
terms or conditions for the returned object.
In particular, clients need to consider that multiple invocations of
this method could return different objects (e.g. defensive copies) which
may even fail the Object.equals(java.lang.Object) test.
On the other hand, implementations need to consider that clients could
attempt to change the state of the returned object in arbitrary manner.
Consequently, the result of doing so is undefined, too.
In particular, a subsequent I/O operation may not reflect the change
or may even fail.
Sub-interfaces or implementations may add additional terms and
conditions in order to resolve these potential issues.
- Specified by:
getLocalTarget in class IOSocket<Entry,Entry>
- Returns:
- The local target for I/O operations.
- Throws:
IOException
newReadOnlyFile
public ReadOnlyFile newReadOnlyFile()
throws IOException
- Description copied from class:
InputSocket
- Optional: Returns a new read only file for reading bytes from
the
local target in arbitrary order.
If this method is supported, implementations must enable calling it
any number of times.
Furthermore, the returned read only file should not be buffered.
Buffering should be addressed by client applications instead.
- Specified by:
newReadOnlyFile in class InputSocket<Entry>
- Returns:
- A new read only file.
- Throws:
FileNotFoundException - if the local target does not exist or is
not accessible for some reason.
IOException - on any other exceptional condition.
newInputStream
public InputStream newInputStream()
throws IOException
- Description copied from class:
InputSocket
- Returns a new input stream for reading bytes from the
local target.
Implementations must enable calling this method any number of times.
Furthermore, the returned input stream should not be buffered.
Buffering should be addressed by the caller instead - see
IOSocket.copy(de.schlichtherle.truezip.socket.InputSocket>, de.schlichtherle.truezip.socket.OutputSocket>).
The implementation in the class InputSocket calls
InputSocket.newReadOnlyFile() and wraps the resulting object in a new
ReadOnlyFileInputStream as an adapter.
- Overrides:
newInputStream in class InputSocket<Entry>
- Returns:
- A new input stream.
- Throws:
FileNotFoundException - if the local target does not exist or is
not accessible for some reason.
IOException - on any other exceptional condition.
getBoundSocket
private InputSocket<?> getBoundSocket()
throws IOException
- Throws:
IOException
getBuffer
private IOCache.Buffer getBuffer()
throws IOException
- Throws:
IOException
Copyright © 2005-2011 Schlichtherle IT Services. All Rights Reserved.