/** Commit all fragments of the batch so that it can be read by subscriptions. */ public void commit() { final int firstFragmentFramedLength = -buffer.getInt(lengthOffset(FIRST_FRAGMENT_OFFSET)); // do not set batch flags if only one fragment in the batch if (currentOffset > 0) { // set batch begin flag final byte firstFragmentFlags = buffer.getByte(flagsOffset(FIRST_FRAGMENT_OFFSET)); buffer.putByte(flagsOffset(FIRST_FRAGMENT_OFFSET), enableFlagBatchBegin(firstFragmentFlags)); // set positive length => commit fragment int fragmentOffset = DataFrameDescriptor.alignedLength(firstFragmentFramedLength); while (fragmentOffset < nextOffset) { final int fragmentFramedLength = -buffer.getInt(lengthOffset(fragmentOffset)); buffer.putInt(lengthOffset(fragmentOffset), fragmentFramedLength); fragmentOffset += DataFrameDescriptor.alignedLength(fragmentFramedLength); } // set batch end flag final byte lastFragmentFlags = buffer.getByte(flagsOffset(currentOffset)); buffer.putByte(flagsOffset(currentOffset), enableFlagBatchEnd(lastFragmentFlags)); } fillRemainingBatchSize(); // commit the first fragment at the end so that the batch can be read at // once buffer.putIntOrdered(lengthOffset(FIRST_FRAGMENT_OFFSET), firstFragmentFramedLength); onCompleteHandler.run(); reset(); }
/** Commit all fragments of the batch so that it can be read by subscriptions. */ public void commit() { final int firstFragmentFramedLength = -buffer.getInt(lengthOffset(FIRST_FRAGMENT_OFFSET)); // do not set batch flags if only one fragment in the batch if (currentOffset > 0) { // set batch begin flag final byte firstFragmentFlags = buffer.getByte(flagsOffset(FIRST_FRAGMENT_OFFSET)); buffer.putByte(flagsOffset(FIRST_FRAGMENT_OFFSET), enableFlagBatchBegin(firstFragmentFlags)); // set positive length => commit fragment int fragmentOffset = DataFrameDescriptor.alignedLength(firstFragmentFramedLength); while (fragmentOffset < nextOffset) { final int fragmentFramedLength = -buffer.getInt(lengthOffset(fragmentOffset)); buffer.putInt(lengthOffset(fragmentOffset), fragmentFramedLength); fragmentOffset += DataFrameDescriptor.alignedLength(fragmentFramedLength); } // set batch end flag final byte lastFragmentFlags = buffer.getByte(flagsOffset(currentOffset)); buffer.putByte(flagsOffset(currentOffset), enableFlagBatchEnd(lastFragmentFlags)); } fillRemainingBatchSize(); // commit the first fragment at the end so that the batch can be read at // once buffer.putIntOrdered(lengthOffset(FIRST_FRAGMENT_OFFSET), firstFragmentFramedLength); onCompleteHandler.run(); reset(); }