Module org.apache.lucene.misc
Package org.apache.lucene.misc.store
Class DirectIODirectory.DirectIOIndexInput
java.lang.Object
org.apache.lucene.store.DataInput
org.apache.lucene.store.IndexInput
org.apache.lucene.misc.store.DirectIODirectory.DirectIOIndexInput
- All Implemented Interfaces:
Closeable,AutoCloseable,Cloneable
- Enclosing class:
DirectIODirectory
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate final ByteBufferprivate final FileChannelprivate longprivate booleanprivate boolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionDirectIOIndexInput(Path path, int blockSize, int bufferSize) Creates a new instance of DirectIOIndexInput for reading index input with direct IO bypassing OS bufferprivate -
Method Summary
Modifier and TypeMethodDescriptionclone()Returns a clone of this stream.voidclose()Closes the stream to further operations.longReturns the current position in this file, where the next read will occur.longlength()The number of bytes in the file.bytereadByte()Reads and returns a single byte.voidreadBytes(byte[] dst, int offset, int len) Reads a specified number of bytes into an array at the specified offset.private voidrefill(int bytesToRead) voidseek(long pos) Sets current position in this file, where the next read will occur.Creates a slice of this index input, with the given description, offset, and length.Methods inherited from class org.apache.lucene.store.IndexInput
getFullSliceDescription, randomAccessSlice, skipBytes, toStringMethods inherited from class org.apache.lucene.store.DataInput
readBytes, readFloats, readGroupVInt, readGroupVInts, readInt, readInts, readLong, readLongs, readMapOfStrings, readSetOfStrings, readShort, readString, readVInt, readVLong, readZInt, readZLong
-
Field Details
-
buffer
-
channel
-
blockSize
private final int blockSize -
isOpen
private boolean isOpen -
isClone
private boolean isClone -
filePos
private long filePos
-
-
Constructor Details
-
DirectIOIndexInput
Creates a new instance of DirectIOIndexInput for reading index input with direct IO bypassing OS buffer- Throws:
UnsupportedOperationException- if the JDK does not support Direct I/OIOException- if the operating system or filesystem does not support support Direct I/O or a sufficient equivalent.
-
DirectIOIndexInput
- Throws:
IOException
-
-
Method Details
-
close
Description copied from class:IndexInputCloses the stream to further operations.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classIndexInput- Throws:
IOException
-
getFilePointer
public long getFilePointer()Description copied from class:IndexInputReturns the current position in this file, where the next read will occur.- Specified by:
getFilePointerin classIndexInput- See Also:
-
seek
Description copied from class:IndexInputSets current position in this file, where the next read will occur. If this is beyond the end of the file then this will throwEOFExceptionand then the stream is in an undetermined state.- Specified by:
seekin classIndexInput- Throws:
IOException- See Also:
-
length
public long length()Description copied from class:IndexInputThe number of bytes in the file.- Specified by:
lengthin classIndexInput
-
readByte
Description copied from class:DataInputReads and returns a single byte.- Specified by:
readBytein classDataInput- Throws:
IOException- See Also:
-
refill
- Throws:
IOException
-
readBytes
Description copied from class:DataInputReads a specified number of bytes into an array at the specified offset.- Specified by:
readBytesin classDataInput- Parameters:
dst- the array to read bytes intooffset- the offset in the array to start storing byteslen- the number of bytes to read- Throws:
IOException- See Also:
-
clone
Description copied from class:IndexInputReturns a clone of this stream.Clones 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 callIndexInput.close()on the original object.If you access the cloned IndexInput after closing the original object, any
readXXXmethods will throwAlreadyClosedException.This method is NOT thread safe, so if the current
IndexInputis being used by one thread whilecloneis called by another, disaster could strike.- Overrides:
clonein classIndexInput
-
slice
Description copied from class:IndexInputCreates a slice of this index input, with the given description, offset, and length. The slice is sought to the beginning.- Specified by:
slicein classIndexInput
-