Package com.wavefront.agent.queueing
Class TapeQueueFile
- java.lang.Object
-
- com.wavefront.agent.queueing.TapeQueueFile
-
- All Implemented Interfaces:
QueueFile,Closeable,AutoCloseable,Iterable<byte[]>
public class TapeQueueFile extends Object implements QueueFile
AQueueFiletoQueueFileadapter.- Author:
- [email protected]
-
-
Constructor Summary
Constructors Constructor Description TapeQueueFile(com.squareup.tape2.QueueFile delegate)TapeQueueFile(com.squareup.tape2.QueueFile delegate, BiConsumer<Integer,Long> writeStatsConsumer)TapeQueueFile(com.squareup.tape2.QueueFile delegate, BiConsumer<Integer,Long> writeStatsConsumer, com.wavefront.common.TimeProvider clock)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(byte[] data, int offset, int count)Adds an element to the end of the queue.longavailableBytes()Returns the number of bytes available for adding new tasks without growing the file.voidclear()Clears this queue.voidclose()booleanisEmpty()Checks whether this queue is empty.Iterator<byte[]>iterator()byte[]peek()Reads the eldest element.voidremove()Removes the eldest element.intsize()Returns the number of elements in this queue.longstorageBytes()Returns the storage size (on-disk file size) in bytes.longusedBytes()Returns the number of bytes used for data.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
TapeQueueFile
public TapeQueueFile(com.squareup.tape2.QueueFile delegate)
- Parameters:
delegate- tape queue file
-
TapeQueueFile
public TapeQueueFile(com.squareup.tape2.QueueFile delegate, @Nullable BiConsumer<Integer,Long> writeStatsConsumer)- Parameters:
delegate- tape queue filewriteStatsConsumer- consumer for statistics on writes (bytes written and millis taken)
-
TapeQueueFile
public TapeQueueFile(com.squareup.tape2.QueueFile delegate, @Nullable BiConsumer<Integer,Long> writeStatsConsumer, @Nullable com.wavefront.common.TimeProvider clock)- Parameters:
delegate- tape queue filewriteStatsConsumer- consumer for statistics on writes (bytes written and millis taken)clock- time provider (in millis)
-
-
Method Detail
-
add
public void add(byte[] data, int offset, int count) throws IOExceptionDescription copied from interface:QueueFileAdds an element to the end of the queue.- Specified by:
addin interfaceQueueFile- Parameters:
data- to copy bytes fromoffset- to start from in buffercount- number of bytes to copy- Throws:
IOException
-
isEmpty
public boolean isEmpty()
Description copied from interface:QueueFileChecks whether this queue is empty.
-
peek
@Nullable public byte[] peek() throws IOException
Description copied from interface:QueueFileReads the eldest element. Returns null if the queue is empty.- Specified by:
peekin interfaceQueueFile- Returns:
- the eldest element.
- Throws:
IOException
-
size
public int size()
Description copied from interface:QueueFileReturns the number of elements in this queue.
-
storageBytes
public long storageBytes()
Description copied from interface:QueueFileReturns the storage size (on-disk file size) in bytes.- Specified by:
storageBytesin interfaceQueueFile- Returns:
- file size in bytes.
-
usedBytes
public long usedBytes()
Description copied from interface:QueueFileReturns the number of bytes used for data.
-
availableBytes
public long availableBytes()
Description copied from interface:QueueFileReturns the number of bytes available for adding new tasks without growing the file.- Specified by:
availableBytesin interfaceQueueFile- Returns:
- bytes available.
-
remove
public void remove() throws IOExceptionDescription copied from interface:QueueFileRemoves the eldest element.- Specified by:
removein interfaceQueueFile- Throws:
IOException
-
clear
public void clear() throws IOExceptionDescription copied from interface:QueueFileClears this queue. Truncates the file to the initial size.- Specified by:
clearin interfaceQueueFile- Throws:
IOException
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
-