Package org.apache.lucene.store
Class ByteBuffersDataInput
- java.lang.Object
-
- org.apache.lucene.store.DataInput
-
- org.apache.lucene.store.ByteBuffersDataInput
-
- All Implemented Interfaces:
java.lang.Cloneable,RandomAccessInput,Accountable
public final class ByteBuffersDataInput extends DataInput implements Accountable, RandomAccessInput
-
-
Field Summary
Fields Modifier and Type Field Description private intblockBitsprivate intblockMaskprivate java.nio.ByteBuffer[]blocksprivate longoffsetprivate longposprivate longsize-
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE
-
-
Constructor Summary
Constructors Constructor Description ByteBuffersDataInput(java.util.List<java.nio.ByteBuffer> buffers)Read data from a set of contiguous buffers.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private intblockIndex(long pos)private intblockOffset(long pos)private intblockSize()(package private) static intdetermineBlockPage(java.util.List<java.nio.ByteBuffer> buffers)private static voidensureAssumptions(java.util.List<java.nio.ByteBuffer> buffers)private static booleanisPowerOfTwo(int v)longposition()longramBytesUsed()Return the memory usage of this object in bytes.bytereadByte()Reads and returns a single byte.bytereadByte(long pos)Reads a byte at the given position in the filevoidreadBytes(byte[] arr, int off, int len)Reads a specified number of bytes into an array at the specified offset.voidreadBytes(java.nio.ByteBuffer buffer, int len)Reads exactlylenbytes into the given buffer.intreadInt(long pos)Reads an integer at the given position in the filelongreadLong(long pos)Reads a long at the given position in the fileshortreadShort(long pos)Reads a short at the given position in the filevoidseek(long position)longsize()ByteBuffersDataInputslice(long offset, long length)private static java.util.List<java.nio.ByteBuffer>sliceBufferList(java.util.List<java.nio.ByteBuffer> buffers, long offset, long length)java.lang.StringtoString()-
Methods inherited from class org.apache.lucene.store.DataInput
clone, readBytes, readInt, readLELongs, readLong, readMapOfStrings, readSetOfStrings, readShort, readString, readVInt, readVLong, readZInt, readZLong, skipBytes
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
-
-
-
Constructor Detail
-
ByteBuffersDataInput
public ByteBuffersDataInput(java.util.List<java.nio.ByteBuffer> buffers)
Read data from a set of contiguous buffers. All data buffers except for the last one must have an identical remaining number of bytes in the buffer (that is a power of two). The last buffer can be of an arbitrary remaining length.
-
-
Method Detail
-
size
public long size()
-
ramBytesUsed
public long ramBytesUsed()
Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin interfaceAccountable
-
readByte
public byte readByte() throws java.io.EOFExceptionDescription copied from class:DataInputReads and returns a single byte.- Specified by:
readBytein classDataInput- Throws:
java.io.EOFException- See Also:
DataOutput.writeByte(byte)
-
readBytes
public void readBytes(java.nio.ByteBuffer buffer, int len) throws java.io.EOFExceptionReads exactlylenbytes into the given buffer. The buffer must have enough remaining limit. If there are fewer thanlenbytes in the input,EOFExceptionis thrown.- Throws:
java.io.EOFException
-
readBytes
public void readBytes(byte[] arr, int off, int len) throws java.io.EOFExceptionDescription copied from class:DataInputReads a specified number of bytes into an array at the specified offset.- Specified by:
readBytesin classDataInput- Parameters:
arr- the array to read bytes intooff- the offset in the array to start storing byteslen- the number of bytes to read- Throws:
java.io.EOFException- See Also:
DataOutput.writeBytes(byte[],int)
-
readByte
public byte readByte(long pos)
Description copied from interface:RandomAccessInputReads a byte at the given position in the file- Specified by:
readBytein interfaceRandomAccessInput- See Also:
DataInput.readByte()
-
readShort
public short readShort(long pos)
Description copied from interface:RandomAccessInputReads a short at the given position in the file- Specified by:
readShortin interfaceRandomAccessInput- See Also:
DataInput.readShort()
-
readInt
public int readInt(long pos)
Description copied from interface:RandomAccessInputReads an integer at the given position in the file- Specified by:
readIntin interfaceRandomAccessInput- See Also:
DataInput.readInt()
-
readLong
public long readLong(long pos)
Description copied from interface:RandomAccessInputReads a long at the given position in the file- Specified by:
readLongin interfaceRandomAccessInput- See Also:
DataInput.readLong()
-
position
public long position()
-
seek
public void seek(long position) throws java.io.EOFException- Throws:
java.io.EOFException
-
slice
public ByteBuffersDataInput slice(long offset, long length)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
blockIndex
private final int blockIndex(long pos)
-
blockOffset
private final int blockOffset(long pos)
-
blockSize
private int blockSize()
-
isPowerOfTwo
private static final boolean isPowerOfTwo(int v)
-
ensureAssumptions
private static void ensureAssumptions(java.util.List<java.nio.ByteBuffer> buffers)
-
determineBlockPage
static int determineBlockPage(java.util.List<java.nio.ByteBuffer> buffers)
-
sliceBufferList
private static java.util.List<java.nio.ByteBuffer> sliceBufferList(java.util.List<java.nio.ByteBuffer> buffers, long offset, long length)
-
-