docs: public boolean receiveNext()
      {
          boolean isAvailable = false;
          final AtomicBuffer buffer = this.buffer;
          final long tail = buffer.getLongVolatile(tailCounterIndex);
          long cursor = nextRecord;
  
          if (tail > cursor)
          {
              final int capacity = this.capacity;
              int recordOffset = (int)cursor & (capacity - 1);
  
              if (!validate(cursor, buffer, capacity))
              {
                  lappedCount.lazySet(lappedCount.get() + 1);
  
                  cursor = buffer.getLong(latestCounterIndex);
                  recordOffset = (int)cursor & (capacity - 1);
              }
  
              this.cursor = cursor;
              nextRecord = cursor + align(buffer.getInt(lengthOffset(recordOffset)), RECORD_ALIGNMENT);
  
              if (PADDING_MSG_TYPE_ID == buffer.getInt(typeOffset(recordOffset)))
              {
                  recordOffset = 0;
                  this.cursor = nextRecord;
                  nextRecord += align(buffer.getInt(lengthOffset(recordOffset)), RECORD_ALIGNMENT);
              }
  
              this.recordOffset = recordOffset;
              isAvailable = true;
          }
  
          return isAvailable;
      }