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 int
DEFAULT_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 void
close()
Closes this stream to further operations.void
copyBytes(DataInput input, long numBytes)
Copy numBytes bytes from input to ourself.void
flush()
Forces any buffered output to be written.protected long
getDelay(boolean closing)
long
getFilePointer()
Returns the current position in this file, where the next write will occur.long
length()
The number of bytes in the file.static int
mBitsToBytes(int mbits)
ThrottledIndexOutput
newFromDelegate(IndexOutput output)
void
seek(long pos)
Sets current position in this file, where the next write will occur.void
setLength(long length)
Set the file length.void
writeByte(byte b)
Writes a single byte.void
writeBytes(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 IOException
Description copied from class:IndexOutput
Forces any buffered output to be written.- Specified by:
flush
in classIndexOutput
- Throws:
IOException
-
close
public void close() throws IOException
Description copied from class:IndexOutput
Closes this stream to further operations.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classIndexOutput
- Throws:
IOException
-
getFilePointer
public long getFilePointer()
Description copied from class:IndexOutput
Returns the current position in this file, where the next write will occur.- Specified by:
getFilePointer
in classIndexOutput
- See Also:
IndexOutput.seek(long)
-
seek
public void seek(long pos) throws IOException
Description copied from class:IndexOutput
Sets current position in this file, where the next write will occur.- Specified by:
seek
in classIndexOutput
- Throws:
IOException
- See Also:
IndexOutput.getFilePointer()
-
length
public long length() throws IOException
Description copied from class:IndexOutput
The number of bytes in the file.- Specified by:
length
in classIndexOutput
- Throws:
IOException
-
writeByte
public void writeByte(byte b) throws IOException
Description copied from class:DataOutput
Writes a single byte.- Specified by:
writeByte
in classDataOutput
- Throws:
IOException
- See Also:
DataInput.readByte()
-
writeBytes
public void writeBytes(byte[] b, int offset, int length) throws IOException
Description copied from class:DataOutput
Writes an array of bytes.- Specified by:
writeBytes
in 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 IOException
Description copied from class:IndexOutput
Set 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:
setLength
in classIndexOutput
- Parameters:
length
- file length- Throws:
IOException
-
copyBytes
public void copyBytes(DataInput input, long numBytes) throws IOException
Description copied from class:DataOutput
Copy numBytes bytes from input to ourself.- Overrides:
copyBytes
in classDataOutput
- Throws:
IOException
-
-