public static ByteBuf newMultiMessageAck(long consumerId, List<Pair<Long, Long>> entries) { CommandAck.Builder ackBuilder = CommandAck.newBuilder(); ackBuilder.setConsumerId(consumerId); ackBuilder.setAckType(AckType.Individual); int entriesCount = entries.size(); for (int i = 0; i < entriesCount; i++) { long ledgerId = entries.get(i).getLeft(); long entryId = entries.get(i).getRight(); MessageIdData.Builder messageIdDataBuilder = MessageIdData.newBuilder(); messageIdDataBuilder.setLedgerId(ledgerId); messageIdDataBuilder.setEntryId(entryId); MessageIdData messageIdData = messageIdDataBuilder.build(); ackBuilder.addMessageId(messageIdData); messageIdDataBuilder.recycle(); } CommandAck ack = ackBuilder.build(); ByteBuf res = serializeWithSize(BaseCommand.newBuilder().setType(Type.ACK).setAck(ack)); for (int i = 0; i < entriesCount; i++) { ack.getMessageId(i).recycle(); } ack.recycle(); ackBuilder.recycle(); return res; }
handleAck(ack); for (int i = 0; i < ack.getMessageIdCount(); i++) { ack.getMessageId(i).recycle();
MessageIdData msgId = ack.getMessageId(0); PositionImpl position = PositionImpl.get(msgId.getLedgerId(), msgId.getEntryId()); subscription.acknowledgeMessage(Collections.singletonList(position), AckType.Cumulative, properties); MessageIdData msgId = ack.getMessageId(i); PositionImpl position = PositionImpl.get(msgId.getLedgerId(), msgId.getEntryId()); positionsAcked.add(position);
handleAck(ack); for (int i = 0; i < ack.getMessageIdCount(); i++) { ack.getMessageId(i).recycle();
public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; if (!hasConsumerId()) { memoizedIsInitialized = 0; return false; } if (!hasAckType()) { memoizedIsInitialized = 0; return false; } for (int i = 0; i < getMessageIdCount(); i++) { if (!getMessageId(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } for (int i = 0; i < getPropertiesCount(); i++) { if (!getProperties(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } memoizedIsInitialized = 1; return true; }
public static ByteBuf newMultiMessageAck(long consumerId, List<Pair<Long, Long>> entries) { CommandAck.Builder ackBuilder = CommandAck.newBuilder(); ackBuilder.setConsumerId(consumerId); ackBuilder.setAckType(AckType.Individual); int entriesCount = entries.size(); for (int i = 0; i < entriesCount; i++) { long ledgerId = entries.get(i).getLeft(); long entryId = entries.get(i).getRight(); MessageIdData.Builder messageIdDataBuilder = MessageIdData.newBuilder(); messageIdDataBuilder.setLedgerId(ledgerId); messageIdDataBuilder.setEntryId(entryId); MessageIdData messageIdData = messageIdDataBuilder.build(); ackBuilder.addMessageId(messageIdData); messageIdDataBuilder.recycle(); } CommandAck ack = ackBuilder.build(); ByteBuf res = serializeWithSize(BaseCommand.newBuilder().setType(Type.ACK).setAck(ack)); for (int i = 0; i < entriesCount; i++) { ack.getMessageId(i).recycle(); } ack.recycle(); ackBuilder.recycle(); return res; }
public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized != -1) return isInitialized == 1; if (!hasConsumerId()) { memoizedIsInitialized = 0; return false; } if (!hasAckType()) { memoizedIsInitialized = 0; return false; } for (int i = 0; i < getMessageIdCount(); i++) { if (!getMessageId(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } for (int i = 0; i < getPropertiesCount(); i++) { if (!getProperties(i).isInitialized()) { memoizedIsInitialized = 0; return false; } } memoizedIsInitialized = 1; return true; }