/** 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(); }
/** * Finish reading and consume the fragments (i.e. update the subscription position). Mark all * fragments as failed. */ public void markFailed() { int fragmentOffset = 0; while (fragmentOffset < blockLength) { int framedFragmentLength = bufferView.getInt(DataFrameDescriptor.lengthOffset(fragmentOffset)); if (framedFragmentLength < 0) { framedFragmentLength = -framedFragmentLength; } final int frameLength = DataFrameDescriptor.alignedLength(framedFragmentLength); final int flagsOffset = DataFrameDescriptor.flagsOffset(fragmentOffset); final byte flags = bufferView.getByte(flagsOffset); bufferView.putByte(flagsOffset, DataFrameDescriptor.enableFlagFailed(flags)); fragmentOffset += frameLength; } updatePosition(); }
/** * Finish reading and consume the fragments (i.e. update the subscription position). Mark all * fragments as failed. */ public void markFailed() { int fragmentOffset = 0; while (fragmentOffset < blockLength) { int framedFragmentLength = bufferView.getInt(DataFrameDescriptor.lengthOffset(fragmentOffset)); if (framedFragmentLength < 0) { framedFragmentLength = -framedFragmentLength; } final int frameLength = DataFrameDescriptor.alignedLength(framedFragmentLength); final int flagsOffset = DataFrameDescriptor.flagsOffset(fragmentOffset); final byte flags = bufferView.getByte(flagsOffset); bufferView.putByte(flagsOffset, DataFrameDescriptor.enableFlagFailed(flags)); fragmentOffset += frameLength; } updatePosition(); }
final int flagsOffset = flagsOffset(fragmentOffset); final byte flags = buffer.getByte(flagsOffset); try {
final int flagsOffset = flagsOffset(fragmentOffset); final byte flags = buffer.getByte(flagsOffset); try {
final byte flags = buffer.getByte(flagsOffset(partitionOffset)); if (!isReadingBatch) { isReadingBatch = flagBatchBegin(flags);
final byte flags = buffer.getByte(flagsOffset(partitionOffset)); if (!isReadingBatch) { isReadingBatch = flagBatchBegin(flags);