public class SingleChronicleQueue extends Object implements RollingChronicleQueue
Modifier and Type | Field and Description |
---|---|
static String |
DISK_SPACE_CHECKER_NAME |
protected int |
sourceId |
protected ThreadLocal<ExcerptAppender> |
strongExcerptAppenderThreadLocal |
static String |
SUFFIX |
protected ThreadLocal<WeakReference<ExcerptAppender>> |
weakExcerptAppenderThreadLocal |
TEST_BLOCK_SIZE
Modifier | Constructor and Description |
---|---|
protected |
SingleChronicleQueue(SingleChronicleQueueBuilder<?> builder) |
Modifier and Type | Method and Description |
---|---|
ExcerptAppender |
acquireAppender()
An Appender can be used to writeBytes new excerpts sequentially to the upper.
|
<T> void |
addCloseListener(T key,
Consumer<T> closer) |
long |
blockSize() |
long |
bufferCapacity() |
boolean |
buffered() |
void |
clear()
Remove all the entries in the queue.
|
void |
close() |
long |
countExcerpts(long fromIndex,
long toIndex)
Will give you the number of excerpts between 2 index?s ( as exists on the current file
system ).
|
ExcerptTailer |
createTailer()
Tailers are NOT thread-safe, sharing the Tailer between threads will lead to errors and unpredictable behaviour.
|
int |
cycle() |
int |
cycle(net.openhft.chronicle.core.time.TimeProvider timeProvider) |
int |
deltaCheckpointInterval() |
static File |
directoryListingPath(File queueFolder) |
String |
dump()
Dump a Queue in YAML format.
|
void |
dump(Writer writer,
long fromIndex,
long toIndex)
Dump a range of entries to a Writer
|
long |
entryCount()
Counts the number of messages in this queue instance.
|
long |
epoch() |
net.openhft.chronicle.core.threads.EventLoop |
eventLoop() |
long |
exceptsPerCycle(int cycle) |
File |
file() |
String |
fileAbsolutePath()
Cache this value as getAbsolutePath is expensive
|
protected int |
fileToCycle(File queueFile) |
int |
firstCycle() |
long |
firstIndex() |
int |
indexCount() |
int |
indexSpacing() |
boolean |
isClosed() |
long |
lastAcknowledgedIndexReplicated() |
int |
lastCycle() |
NavigableSet<Long> |
listCyclesBetween(int lowerCycle,
int upperCycle) |
protected ExcerptAppender |
newAppender() |
int |
nextCycle(int cycle,
TailerDirection direction)
the next available cycle, no cycle will be created by this method, this method is typically
used by a tailer to jump to the next cycle when the cycles are not adjacent.
|
Consumer<net.openhft.chronicle.bytes.BytesRingBufferStats> |
onRingBufferStats() |
long |
overlapSize() |
QueueLock |
queueLock() |
StoreRecoveryFactory |
recoverySupplier() |
void |
release(CommonStore store) |
RollCycle |
rollCycle() |
int |
sourceId() |
WireStore |
storeForCycle(int cycle,
long epoch,
boolean createIfAbsent) |
net.openhft.chronicle.core.time.TimeProvider |
time() |
String |
toString() |
net.openhft.chronicle.wire.WireType |
wireType() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createAppender, dump, methodWriter, methodWriterBuilder, numberOfReferences
public static final String SUFFIX
public static final String DISK_SPACE_CHECKER_NAME
protected final ThreadLocal<WeakReference<ExcerptAppender>> weakExcerptAppenderThreadLocal
protected final ThreadLocal<ExcerptAppender> strongExcerptAppenderThreadLocal
protected int sourceId
protected SingleChronicleQueue(@NotNull SingleChronicleQueueBuilder<?> builder)
@NotNull public static File directoryListingPath(File queueFolder) throws IOException
IOException
public int sourceId()
sourceId
in interface ChronicleQueue
public void clear()
ChronicleQueue
clear
in interface ChronicleQueue
@NotNull public File file()
file
in interface ChronicleQueue
@NotNull public String fileAbsolutePath()
ChronicleQueue
fileAbsolutePath
in interface ChronicleQueue
@NotNull public String dump()
ChronicleQueue
dump
in interface ChronicleQueue
public void dump(@NotNull Writer writer, long fromIndex, long toIndex)
ChronicleQueue
dump
in interface ChronicleQueue
writer
- to write tofromIndex
- first index to includetoIndex
- last index to include.public int indexCount()
indexCount
in interface RollingChronicleQueue
public int indexSpacing()
indexSpacing
in interface RollingChronicleQueue
public long epoch()
epoch
in interface RollingChronicleQueue
@NotNull public RollCycle rollCycle()
rollCycle
in interface RollingChronicleQueue
public StoreRecoveryFactory recoverySupplier()
recoverySupplier
in interface RollingChronicleQueue
public int deltaCheckpointInterval()
deltaCheckpointInterval
in interface RollingChronicleQueue
public boolean buffered()
@Nullable public net.openhft.chronicle.core.threads.EventLoop eventLoop()
@NotNull protected ExcerptAppender newAppender()
@NotNull public ExcerptAppender acquireAppender()
ChronicleQueue
An Appender can be used to writeBytes new excerpts sequentially to the upper.
Appenders are NOT thread-safe, sharing the Appender between threads will lead to errors and unpredictable behaviour.
This method returns ThreadLocal
appender, so does not produce any garbage, hence it's safe to simply call
this method every time an appender is needed.
acquireAppender
in interface ChronicleQueue
@NotNull public QueueLock queueLock()
queueLock
in interface RollingChronicleQueue
@NotNull public ExcerptTailer createTailer()
ChronicleQueue
createTailer
in interface ChronicleQueue
@Nullable public final WireStore storeForCycle(int cycle, long epoch, boolean createIfAbsent)
storeForCycle
in interface RollingChronicleQueue
cycle
- the cycleepoch
- an epoch offset as the number of number of milliseconds since January
1, 1970, 00:00:00 GMTcreateIfAbsent
- create missing stores if true, or return null if missingWireStore
associated with this cycle
, or null if !createIfAbsent
is false and absentpublic int nextCycle(int cycle, @NotNull TailerDirection direction) throws ParseException
RollingChronicleQueue
nextCycle
in interface RollingChronicleQueue
cycle
- the current cycledirection
- the directionParseException
public long exceptsPerCycle(int cycle)
public long countExcerpts(long fromIndex, long toIndex) throws IllegalStateException
countExcerpts
in interface RollingChronicleQueue
fromIndex
- the lower indextoIndex
- the higher indexIllegalStateException
- if we are not able to read the chronicle filespublic NavigableSet<Long> listCyclesBetween(int lowerCycle, int upperCycle) throws ParseException
ParseException
public <T> void addCloseListener(T key, Consumer<T> closer)
public boolean isClosed()
public void close()
close
in interface Closeable
close
in interface AutoCloseable
public final void release(@Nullable CommonStore store)
release
in interface RollingChronicleQueue
store
- the store
to releasepublic final int cycle()
cycle
in interface RollingChronicleQueue
public final int cycle(net.openhft.chronicle.core.time.TimeProvider timeProvider)
public long firstIndex()
firstIndex
in interface ChronicleQueue
public long entryCount()
public int firstCycle()
firstCycle
in interface RollingChronicleQueue
public int lastCycle()
lastCycle
in interface RollingChronicleQueue
protected int fileToCycle(File queueFile)
@NotNull public Consumer<net.openhft.chronicle.bytes.BytesRingBufferStats> onRingBufferStats()
public long blockSize()
public long overlapSize()
@NotNull public net.openhft.chronicle.wire.WireType wireType()
wireType
in interface ChronicleQueue
public long bufferCapacity()
@NotNull public net.openhft.chronicle.core.time.TimeProvider time()
public long lastAcknowledgedIndexReplicated()
lastAcknowledgedIndexReplicated
in interface ChronicleQueue
Copyright © 2018. All rights reserved.