Class RingBufferDescriptor


  • public final class RingBufferDescriptor
    extends java.lang.Object
    Layout description for the underlying buffer used by a RingBuffer. 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.
    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.
    • Constructor Detail

      • RingBufferDescriptor

        private RingBufferDescriptor()
    • 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.