Class DirectIODirectory.DirectIOIndexInput

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Cloneable
    Enclosing class:
    DirectIODirectory

    private static final class DirectIODirectory.DirectIOIndexInput
    extends IndexInput
    • Field Detail

      • buffer

        private final java.nio.ByteBuffer buffer
      • channel

        private final java.nio.channels.FileChannel channel
      • blockSize

        private final int blockSize
      • isOpen

        private boolean isOpen
      • isClone

        private boolean isClone
      • filePos

        private long filePos
    • Constructor Detail

      • DirectIOIndexInput

        public DirectIOIndexInput​(java.nio.file.Path path,
                                  int blockSize,
                                  int bufferSize)
                           throws java.io.IOException
        Creates a new instance of DirectIOIndexInput for reading index input with direct IO bypassing OS buffer
        Throws:
        java.lang.UnsupportedOperationException - if the JDK does not support Direct I/O
        java.io.IOException - if the operating system or filesystem does not support support Direct I/O or a sufficient equivalent.
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Description copied from class: IndexInput
        Closes the stream to further operations.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class IndexInput
        Throws:
        java.io.IOException
      • seek

        public void seek​(long pos)
                  throws java.io.IOException
        Description copied from class: IndexInput
        Sets current position in this file, where the next read will occur. If this is beyond the end of the file then this will throw EOFException and then the stream is in an undetermined state.
        Specified by:
        seek in class IndexInput
        Throws:
        java.io.IOException
        See Also:
        IndexInput.getFilePointer()
      • length

        public long length()
        Description copied from class: IndexInput
        The number of bytes in the file.
        Specified by:
        length in class IndexInput
      • refill

        private void refill​(int bytesToRead)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • readBytes

        public void readBytes​(byte[] dst,
                              int offset,
                              int len)
                       throws java.io.IOException
        Description copied from class: DataInput
        Reads a specified number of bytes into an array at the specified offset.
        Specified by:
        readBytes in class DataInput
        Parameters:
        dst - the array to read bytes into
        offset - the offset in the array to start storing bytes
        len - the number of bytes to read
        Throws:
        java.io.IOException
        See Also:
        DataOutput.writeBytes(byte[],int)
      • clone

        public DirectIODirectory.DirectIOIndexInput clone()
        Description copied from class: IndexInput
        Returns 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 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.

        Overrides:
        clone in class IndexInput
      • slice

        public IndexInput slice​(java.lang.String sliceDescription,
                                long offset,
                                long length)
        Description copied from class: IndexInput
        Creates a slice of this index input, with the given description, offset, and length. The slice is sought to the beginning.
        Specified by:
        slice in class IndexInput