static final class SimpleFSDirectory.SimpleFSIndexInput extends BufferedIndexInput
SeekableByteChannel.read(ByteBuffer)| Modifier and Type | Field and Description |
|---|---|
private java.nio.ByteBuffer |
byteBuf |
protected java.nio.channels.SeekableByteChannel |
channel
the channel we will read from
|
private static int |
CHUNK_SIZE
The maximum chunk size for reads of 16384 bytes.
|
protected long |
end
end offset (start+length)
|
(package private) boolean |
isClone
is this instance a clone and hence does not own the file to close it
|
protected long |
off
start offset: non-zero in the slice case
|
buffer, BUFFER_SIZE, MERGE_BUFFER_SIZE, MIN_BUFFER_SIZE| Constructor and Description |
|---|
SimpleFSIndexInput(java.lang.String resourceDesc,
java.nio.channels.SeekableByteChannel channel,
IOContext context) |
SimpleFSIndexInput(java.lang.String resourceDesc,
java.nio.channels.SeekableByteChannel channel,
long off,
long length,
int bufferSize) |
| Modifier and Type | Method and Description |
|---|---|
SimpleFSDirectory.SimpleFSIndexInput |
clone()
Returns a clone of this stream.
|
void |
close()
Closes the stream to further operations.
|
long |
length()
The number of bytes in the file.
|
protected void |
newBuffer(byte[] newBuffer) |
protected void |
readInternal(byte[] b,
int offset,
int len)
Expert: implements buffer refill.
|
protected void |
seekInternal(long pos)
Expert: implements seek.
|
IndexInput |
slice(java.lang.String sliceDescription,
long offset,
long length)
Creates a slice of this index input, with the given description, offset, and length.
|
bufferSize, flushBuffer, getBufferSize, getFilePointer, readByte, readByte, readBytes, readBytes, readInt, readInt, readLong, readLong, readShort, readShort, readVInt, readVLong, seek, setBufferSize, wrapgetFullSliceDescription, randomAccessSlice, toStringreadLELongs, readMapOfStrings, readSetOfStrings, readString, readZInt, readZLong, skipBytesprivate static final int CHUNK_SIZE
protected final java.nio.channels.SeekableByteChannel channel
boolean isClone
protected final long off
protected final long end
private java.nio.ByteBuffer byteBuf
public SimpleFSIndexInput(java.lang.String resourceDesc,
java.nio.channels.SeekableByteChannel channel,
IOContext context)
throws java.io.IOException
java.io.IOExceptionpublic SimpleFSIndexInput(java.lang.String resourceDesc,
java.nio.channels.SeekableByteChannel channel,
long off,
long length,
int bufferSize)
public void close()
throws java.io.IOException
IndexInputclose in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class IndexInputjava.io.IOExceptionpublic SimpleFSDirectory.SimpleFSIndexInput clone()
IndexInputClones of a stream access the same data, and are positioned at the same point as the stream they were cloned from.
Expert: Subclasses must ensure that clones may be positioned at different points in the input from each other and from the stream they were cloned from.
Warning: Lucene never closes cloned
IndexInputs, it will only call IndexInput.close() on the original object.
If you access the cloned IndexInput after closing the original object,
any readXXX methods will throw AlreadyClosedException.
This method is NOT thread safe, so if the current IndexInput
is being used by one thread while clone is called by another,
disaster could strike.
clone in class BufferedIndexInputpublic IndexInput slice(java.lang.String sliceDescription, long offset, long length) throws java.io.IOException
IndexInputslice in class BufferedIndexInputjava.io.IOExceptionpublic final long length()
IndexInputlength in class IndexInputprotected void newBuffer(byte[] newBuffer)
newBuffer in class BufferedIndexInputprotected void readInternal(byte[] b,
int offset,
int len)
throws java.io.IOException
BufferedIndexInputreadInternal in class BufferedIndexInputb - the array to read bytes intooffset - the offset in the array to start storing byteslen - the number of bytes to readjava.io.IOExceptionprotected void seekInternal(long pos)
throws java.io.IOException
BufferedIndexInputBufferedIndexInput.readInternal(byte[],int,int) will occur.seekInternal in class BufferedIndexInputjava.io.IOExceptionBufferedIndexInput.readInternal(byte[],int,int)