Package org.apache.solr.store.blockcache
Class CustomBufferedIndexInput
- java.lang.Object
-
- org.apache.lucene.store.DataInput
-
- org.apache.lucene.store.IndexInput
-
- org.apache.solr.store.blockcache.CustomBufferedIndexInput
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Cloneable
- Direct Known Subclasses:
HdfsDirectory.HdfsIndexInput
public abstract class CustomBufferedIndexInput extends org.apache.lucene.store.IndexInput
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description protected byte[]
buffer
static int
BUFFER_SIZE
-
Constructor Summary
Constructors Constructor Description CustomBufferedIndexInput(String resourceDesc)
CustomBufferedIndexInput(String resourceDesc, int bufferSize)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.apache.lucene.store.IndexInput
clone()
void
close()
protected abstract void
closeInternal()
protected int
flushBuffer(org.apache.lucene.store.IndexOutput out, long numBytes)
Flushes the in-memory bufer to the given output, copying at mostnumBytes
.long
getFilePointer()
byte
readByte()
void
readBytes(byte[] b, int offset, int len)
void
readBytes(byte[] b, int offset, int len, boolean useBuffer)
int
readInt()
protected abstract void
readInternal(byte[] b, int offset, int length)
Expert: implements buffer refill.long
readLong()
int
readVInt()
long
readVLong()
void
seek(long pos)
protected abstract void
seekInternal(long pos)
Expert: implements seek.org.apache.lucene.store.IndexInput
slice(String sliceDescription, long offset, long length)
-
Methods inherited from class org.apache.lucene.store.IndexInput
getFullSliceDescription, length, randomAccessSlice, toString
-
-
-
-
Method Detail
-
readByte
public byte readByte() throws IOException
- Specified by:
readByte
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
readBytes
public void readBytes(byte[] b, int offset, int len) throws IOException
- Specified by:
readBytes
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
readBytes
public void readBytes(byte[] b, int offset, int len, boolean useBuffer) throws IOException
- Overrides:
readBytes
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
readInt
public int readInt() throws IOException
- Overrides:
readInt
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
readLong
public long readLong() throws IOException
- Overrides:
readLong
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
readVInt
public int readVInt() throws IOException
- Overrides:
readVInt
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
readVLong
public long readVLong() throws IOException
- Overrides:
readVLong
in classorg.apache.lucene.store.DataInput
- Throws:
IOException
-
close
public final void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classorg.apache.lucene.store.IndexInput
- Throws:
IOException
-
closeInternal
protected abstract void closeInternal() throws IOException
- Throws:
IOException
-
readInternal
protected abstract void readInternal(byte[] b, int offset, int length) throws IOException
Expert: implements buffer refill. Reads bytes from the current position in the input.- Parameters:
b
- the array to read bytes intooffset
- the offset in the array to start storing byteslength
- the number of bytes to read- Throws:
IOException
-
getFilePointer
public long getFilePointer()
- Specified by:
getFilePointer
in classorg.apache.lucene.store.IndexInput
-
seek
public void seek(long pos) throws IOException
- Specified by:
seek
in classorg.apache.lucene.store.IndexInput
- Throws:
IOException
-
seekInternal
protected abstract void seekInternal(long pos) throws IOException
Expert: implements seek. Sets current position in this file, where the nextreadInternal(byte[],int,int)
will occur.- Throws:
IOException
- See Also:
readInternal(byte[],int,int)
-
clone
public org.apache.lucene.store.IndexInput clone()
- Overrides:
clone
in classorg.apache.lucene.store.IndexInput
-
slice
public org.apache.lucene.store.IndexInput slice(String sliceDescription, long offset, long length) throws IOException
- Specified by:
slice
in classorg.apache.lucene.store.IndexInput
- Throws:
IOException
-
flushBuffer
protected int flushBuffer(org.apache.lucene.store.IndexOutput out, long numBytes) throws IOException
Flushes the in-memory bufer to the given output, copying at mostnumBytes
.NOTE: this method does not refill the buffer, however it does advance the buffer position.
- Returns:
- the number of bytes actually flushed from the in-memory buffer.
- Throws:
IOException
-
-