Package org.apache.lucene.util
Class ThrottledIndexOutput
- java.lang.Object
-
- org.apache.lucene.store.DataOutput
-
- org.apache.lucene.store.IndexOutput
-
- org.apache.lucene.util.ThrottledIndexOutput
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class ThrottledIndexOutput extends IndexOutput
Intentionally slow IndexOutput for testing.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MIN_WRITTEN_BYTES
-
Constructor Summary
Constructors Constructor Description ThrottledIndexOutput(int bytesPerSecond, long delays, int minBytesWritten, IndexOutput delegate)ThrottledIndexOutput(int bytesPerSecond, long flushDelayMillis, long closeDelayMillis, long seekDelayMillis, long minBytesWritten, IndexOutput delegate)ThrottledIndexOutput(int bytesPerSecond, long delayInMillis, IndexOutput delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes this stream to further operations.voidcopyBytes(DataInput input, long numBytes)Copy numBytes bytes from input to ourself.voidflush()Forces any buffered output to be written.protected longgetDelay(boolean closing)longgetFilePointer()Returns the current position in this file, where the next write will occur.longlength()The number of bytes in the file.static intmBitsToBytes(int mbits)ThrottledIndexOutputnewFromDelegate(IndexOutput output)voidseek(long pos)Sets current position in this file, where the next write will occur.voidsetLength(long length)Set the file length.voidwriteByte(byte b)Writes a single byte.voidwriteBytes(byte[] b, int offset, int length)Writes an array of bytes.-
Methods inherited from class org.apache.lucene.store.DataOutput
writeBytes, writeChars, writeChars, writeInt, writeLong, writeShort, writeString, writeStringStringMap, writeVInt, writeVLong
-
-
-
-
Field Detail
-
DEFAULT_MIN_WRITTEN_BYTES
public static final int DEFAULT_MIN_WRITTEN_BYTES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ThrottledIndexOutput
public ThrottledIndexOutput(int bytesPerSecond, long delayInMillis, IndexOutput delegate)
-
ThrottledIndexOutput
public ThrottledIndexOutput(int bytesPerSecond, long delays, int minBytesWritten, IndexOutput delegate)
-
ThrottledIndexOutput
public ThrottledIndexOutput(int bytesPerSecond, long flushDelayMillis, long closeDelayMillis, long seekDelayMillis, long minBytesWritten, IndexOutput delegate)
-
-
Method Detail
-
newFromDelegate
public ThrottledIndexOutput newFromDelegate(IndexOutput output)
-
mBitsToBytes
public static final int mBitsToBytes(int mbits)
-
flush
public void flush() throws IOExceptionDescription copied from class:IndexOutputForces any buffered output to be written.- Specified by:
flushin classIndexOutput- Throws:
IOException
-
close
public void close() throws IOExceptionDescription copied from class:IndexOutputCloses this stream to further operations.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classIndexOutput- Throws:
IOException
-
getFilePointer
public long getFilePointer()
Description copied from class:IndexOutputReturns the current position in this file, where the next write will occur.- Specified by:
getFilePointerin classIndexOutput- See Also:
IndexOutput.seek(long)
-
seek
public void seek(long pos) throws IOExceptionDescription copied from class:IndexOutputSets current position in this file, where the next write will occur.- Specified by:
seekin classIndexOutput- Throws:
IOException- See Also:
IndexOutput.getFilePointer()
-
length
public long length() throws IOExceptionDescription copied from class:IndexOutputThe number of bytes in the file.- Specified by:
lengthin classIndexOutput- Throws:
IOException
-
writeByte
public void writeByte(byte b) throws IOExceptionDescription copied from class:DataOutputWrites a single byte.- Specified by:
writeBytein classDataOutput- Throws:
IOException- See Also:
DataInput.readByte()
-
writeBytes
public void writeBytes(byte[] b, int offset, int length) throws IOExceptionDescription copied from class:DataOutputWrites an array of bytes.- Specified by:
writeBytesin classDataOutput- Parameters:
b- the bytes to writeoffset- the offset in the byte arraylength- the number of bytes to write- Throws:
IOException- See Also:
DataInput.readBytes(byte[],int,int)
-
getDelay
protected long getDelay(boolean closing)
-
setLength
public void setLength(long length) throws IOExceptionDescription copied from class:IndexOutputSet the file length. By default, this method does nothing (it's optional for a Directory to implement it). But, certain Directory implementations (for example @see FSDirectory) can use this to inform the underlying IO system to pre-allocate the file to the specified size. If the length is longer than the current file length, the bytes added to the file are undefined. Otherwise the file is truncated.- Overrides:
setLengthin classIndexOutput- Parameters:
length- file length- Throws:
IOException
-
copyBytes
public void copyBytes(DataInput input, long numBytes) throws IOException
Description copied from class:DataOutputCopy numBytes bytes from input to ourself.- Overrides:
copyBytesin classDataOutput- Throws:
IOException
-
-