final DirectBytes ringIndexSlice = ms.bytes(ringIndexLocationsStart, ringIndexLocationsLen);
ringIndex = new SharedRingIndex(ringIndexSlice);
// provides an index to the data in the ring buffer, the size of this index is proportional to the capacity of the ring buffer
final DirectBytes storeSlice = ms.bytes(ringIndexLocationsLen, storeLen);
dataLocator = new SharedLocalDataLocator(capacity, maxSize, storeSlice, clazz);
} else if (type == Type.REMOTE_PRODUCER || type == Type.REMOTE_CONSUMER) {
final int bufferSize = capacity * align(maxSize, 4);
final ByteBuffer buffer = ByteBuffer.allocateDirect(bufferSize).order(ByteOrder.nativeOrder());