Class ChannelInput
java.lang.Object
org.apache.commons.crypto.stream.input.ChannelInput
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Input
The ChannelInput class takes a
ReadableByteChannel
object and
wraps it as Input
object acceptable by
CryptoInputStream
.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ByteBuffer
private final ReadableByteChannel
private static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
Overrides theInput.available()
.void
close()
Overrides theInput.seek(long)
.private ByteBuffer
Gets the skip buffer.int
read
(long position, byte[] buffer, int offset, int length) Overrides theInput.read(long, byte[], int, int)
.int
read
(ByteBuffer dst) Overrides theInput.read(ByteBuffer)
.void
seek
(long position) Overrides theInput.seek(long)
.long
skip
(long n) Overrides theInput.skip(long)
.
-
Field Details
-
SKIP_BUFFER_SIZE
private static final int SKIP_BUFFER_SIZE- See Also:
-
buf
-
channel
-
-
Constructor Details
-
ChannelInput
Constructs theChannelInput
.- Parameters:
channel
- the ReadableByteChannel object.
-
-
Method Details
-
available
Overrides theInput.available()
. Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream. The next invocation might be the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes.- Specified by:
available
in interfaceInput
- Returns:
- an estimate of the number of bytes that can be read (or skipped
over) from this input stream without blocking or
0
when it reaches the end of the input stream. - Throws:
IOException
- if an I/O error occurs.
-
close
Overrides theInput.seek(long)
. Closes this input and releases any system resources associated with the under layer input.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceInput
- Throws:
IOException
- if an I/O error occurs.
-
getSkipBuf
Gets the skip buffer.- Returns:
- the buffer.
-
read
Overrides theInput.read(ByteBuffer)
. Reads a sequence of bytes from input into the given buffer.- Specified by:
read
in interfaceInput
- Parameters:
dst
- The buffer into which bytes are to be transferred.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
IOException
- if an I/O error occurs.
-
read
Overrides theInput.read(long, byte[], int, int)
. Reads up tolen
bytes of data from the input stream into an array of bytes. An attempt is made to read as many aslen
bytes, but a smaller number may be read. The number of bytes actually read is returned as an integer.- Specified by:
read
in interfaceInput
- Parameters:
position
- the given position within a stream.buffer
- the buffer into which the data is read.offset
- the start offset in array buffer.length
- the maximum number of bytes to read.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
IOException
- if an I/O error occurs.
-
seek
Overrides theInput.seek(long)
. Seeks to the given offset from the start of the stream. The next read() will be from that location.- Specified by:
seek
in interfaceInput
- Parameters:
position
- the offset from the start of the stream.- Throws:
IOException
- if an I/O error occurs.
-
skip
Overrides theInput.skip(long)
. Skips over and discardsn
bytes of data from this input stream.- Specified by:
skip
in interfaceInput
- Parameters:
n
- the number of bytes to be skipped.- Returns:
- the actual number of bytes skipped.
- Throws:
IOException
- if an I/O error occurs.
-