protected Answer<?> claimFragment(final long offset) { return invocation -> { final ClaimedFragment claimedFragment = (ClaimedFragment) invocation.getArguments()[0]; final int length = (int) invocation.getArguments()[1]; fragmentOffset = claimedFragment.getOffset(); claimedFragment.wrap(sendBuffer, 0, alignedFramedLength(length), () -> {}); final long claimedPosition = offset + alignedFramedLength(length); return claimedPosition; }; }
protected Answer<?> claimFragment(final long offset) { return invocation -> { final ClaimedFragment claimedFragment = (ClaimedFragment) invocation.getArguments()[0]; final int length = (int) invocation.getArguments()[1]; fragmentOffset = claimedFragment.getOffset(); claimedFragment.wrap(sendBuffer, 0, alignedFramedLength(length), () -> {}); final long claimedPosition = offset + alignedFramedLength(length); return claimedPosition; }; }
public boolean trySend(Dispatcher sendBuffer) { final int requiredLength = getLength(); long claimedOffset; do { claimedOffset = sendBuffer.claim(claimedFragment, requiredLength, remoteStreamId); } while (claimedOffset == -2); if (claimedOffset >= 0) { try { final MutableDirectBuffer buffer = claimedFragment.getBuffer(); final int writeOffset = claimedFragment.getOffset(); write(buffer, writeOffset); claimedFragment.commit(); return true; } catch (Throwable e) { claimedFragment.abort(); } } return false; }
public boolean trySend(Dispatcher sendBuffer) { final int requiredLength = getLength(); long claimedOffset; do { claimedOffset = sendBuffer.claim(claimedFragment, requiredLength, remoteStreamId); } while (claimedOffset == -2); if (claimedOffset >= 0) { try { final MutableDirectBuffer buffer = claimedFragment.getBuffer(); final int writeOffset = claimedFragment.getOffset(); write(buffer, writeOffset); claimedFragment.commit(); return true; } catch (Throwable e) { claimedFragment.abort(); } } return false; }
private boolean handleControlMessageRequest( final RecordMetadata eventMetadata, final DirectBuffer buffer, final int messageOffset, final int messageLength) { boolean isHandled = false; long publishPosition; do { publishPosition = controlMessageDispatcher.claim( claimedControlMessageFragment, ControlMessageRequestHeaderDescriptor.framedLength(messageLength)); } while (publishPosition == -2); if (publishPosition >= 0) { final MutableDirectBuffer writeBuffer = claimedControlMessageFragment.getBuffer(); int writeBufferOffset = claimedControlMessageFragment.getOffset(); controlMessageRequestHeaderDescriptor .wrap(writeBuffer, writeBufferOffset) .streamId(eventMetadata.getRequestStreamId()) .requestId(eventMetadata.getRequestId()); writeBufferOffset += ControlMessageRequestHeaderDescriptor.headerLength(); writeBuffer.putBytes(writeBufferOffset, buffer, messageOffset, messageLength); claimedControlMessageFragment.commit(); isHandled = true; } return isHandled; }
private boolean handleControlMessageRequest( final RecordMetadata eventMetadata, final DirectBuffer buffer, final int messageOffset, final int messageLength) { boolean isHandled = false; long publishPosition; do { publishPosition = controlMessageDispatcher.claim( claimedControlMessageFragment, ControlMessageRequestHeaderDescriptor.framedLength(messageLength)); } while (publishPosition == -2); if (publishPosition >= 0) { final MutableDirectBuffer writeBuffer = claimedControlMessageFragment.getBuffer(); int writeBufferOffset = claimedControlMessageFragment.getOffset(); controlMessageRequestHeaderDescriptor .wrap(writeBuffer, writeBufferOffset) .streamId(eventMetadata.getRequestStreamId()) .requestId(eventMetadata.getRequestId()); writeBufferOffset += ControlMessageRequestHeaderDescriptor.headerLength(); writeBuffer.putBytes(writeBufferOffset, buffer, messageOffset, messageLength); claimedControlMessageFragment.commit(); isHandled = true; } return isHandled; }
try { final MutableDirectBuffer writeBuffer = claimedFragment.getBuffer(); final int bufferOffset = claimedFragment.getOffset();
try { final MutableDirectBuffer writeBuffer = claimedFragment.getBuffer(); final int bufferOffset = claimedFragment.getOffset();