Package org.agrona.concurrent.ringbuffer
Class RingBufferDescriptor
- java.lang.Object
-
- org.agrona.concurrent.ringbuffer.RingBufferDescriptor
-
public final class RingBufferDescriptor extends java.lang.Object
Layout description for the underlying buffer used by aRingBuffer
. The buffer consists of a ring of messages which is a power of 2 in size, followed by a trailer section containing state information for the producers and consumers of the ring.
-
-
Field Summary
Fields Modifier and Type Field Description static int
CONSUMER_HEARTBEAT_OFFSET
Offset within the trailer for where the consumer heartbeat time value is stored.static int
CORRELATION_COUNTER_OFFSET
Offset within the trailer for where the correlation counter value is stored.static int
HEAD_CACHE_POSITION_OFFSET
Offset within the trailer for where the head cache value is stored.static int
HEAD_POSITION_OFFSET
Offset within the trailer for where the head value is stored.static int
TAIL_POSITION_OFFSET
Offset within the trailer for where the tail value is stored.static int
TRAILER_LENGTH
Total length of the trailer in bytes.
-
Constructor Summary
Constructors Modifier Constructor Description private
RingBufferDescriptor()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
checkCapacity(int capacity, int minCapacity)
Check the buffer capacity is the correct size (a power of 2 +TRAILER_LENGTH
) and that it satisfies minimum capacity size.
-
-
-
Field Detail
-
TAIL_POSITION_OFFSET
public static final int TAIL_POSITION_OFFSET
Offset within the trailer for where the tail value is stored.
-
HEAD_CACHE_POSITION_OFFSET
public static final int HEAD_CACHE_POSITION_OFFSET
Offset within the trailer for where the head cache value is stored.
-
HEAD_POSITION_OFFSET
public static final int HEAD_POSITION_OFFSET
Offset within the trailer for where the head value is stored.
-
CORRELATION_COUNTER_OFFSET
public static final int CORRELATION_COUNTER_OFFSET
Offset within the trailer for where the correlation counter value is stored.
-
CONSUMER_HEARTBEAT_OFFSET
public static final int CONSUMER_HEARTBEAT_OFFSET
Offset within the trailer for where the consumer heartbeat time value is stored.
-
TRAILER_LENGTH
public static final int TRAILER_LENGTH
Total length of the trailer in bytes.
-
-
Method Detail
-
checkCapacity
public static int checkCapacity(int capacity, int minCapacity)
Check the buffer capacity is the correct size (a power of 2 +TRAILER_LENGTH
) and that it satisfies minimum capacity size.- Parameters:
capacity
- to be checked.minCapacity
- minimum required capacity of the ring buffer.- Returns:
- the capacity to store the data in the ring buffer, i.e.
capacity - TRAILER_LENGTH
. - Throws:
java.lang.IllegalArgumentException
- if the buffer capacity is incorrect.
-
-