/** {@inheritDoc} */ public boolean write( final int msgTypeId, final DirectBuffer srcBuffer, final int srcIndex, final int length) { checkTypeId(msgTypeId); checkMsgLength(length); boolean isSuccessful = false; final AtomicBuffer buffer = this.buffer; final int recordLength = length + HEADER_LENGTH; final int requiredCapacity = align(recordLength, ALIGNMENT); final int recordIndex = claimCapacity(buffer, requiredCapacity); if (INSUFFICIENT_CAPACITY != recordIndex) { buffer.putLongOrdered(recordIndex, makeHeader(-recordLength, msgTypeId)); UnsafeAccess.UNSAFE.storeFence(); buffer.putBytes(encodedMsgOffset(recordIndex), srcBuffer, srcIndex, length); buffer.putIntOrdered(lengthOffset(recordIndex), recordLength); isSuccessful = true; } return isSuccessful; }