@@ -943,16 +943,17 @@ inline CommandSubscribe_InitialPosition ConsumerImpl::getInitialPosition() {
943943 BOOST_THROW_EXCEPTION (std::logic_error (" Invalid InitialPosition enumeration value" ));
944944}
945945
946- void ConsumerImpl::statsCallback (Result res, ResultCallback callback, CommandAck_AckType ackType) {
947- consumerStatsBasePtr_->messageAcknowledged (res, ackType);
946+ void ConsumerImpl::statsAckCallback (Result res, ResultCallback callback, CommandAck_AckType ackType,
947+ uint32_t numAcks) {
948+ consumerStatsBasePtr_->messageAcknowledged (res, ackType, numAcks);
948949 if (callback) {
949950 callback (res);
950951 }
951952}
952953
953954void ConsumerImpl::acknowledgeAsync (const MessageId& msgId, ResultCallback callback) {
954- ResultCallback cb = std::bind (&ConsumerImpl::statsCallback , get_shared_this_ptr (), std::placeholders::_1 ,
955- callback, CommandAck_AckType_Individual);
955+ ResultCallback cb = std::bind (&ConsumerImpl::statsAckCallback , get_shared_this_ptr (),
956+ std::placeholders::_1, callback, CommandAck_AckType_Individual, 1 );
956957 if (msgId.batchIndex () != -1 &&
957958 !batchAcknowledgementTracker_.isBatchReady (msgId, CommandAck_AckType_Individual)) {
958959 cb (ResultOk);
@@ -961,9 +962,19 @@ void ConsumerImpl::acknowledgeAsync(const MessageId& msgId, ResultCallback callb
961962 doAcknowledgeIndividual (msgId, cb);
962963}
963964
965+ void ConsumerImpl::acknowledgeAsync (const MessageIdList& messageIdList, ResultCallback callback) {
966+ ResultCallback cb =
967+ std::bind (&ConsumerImpl::statsAckCallback, get_shared_this_ptr (), std::placeholders::_1, callback,
968+ proto::CommandAck_AckType_Individual, messageIdList.size ());
969+ // Currently not supported batch message id individual index ack.
970+ this ->ackGroupingTrackerPtr_ ->addAcknowledgeList (messageIdList);
971+ this ->unAckedMessageTrackerPtr_ ->remove (messageIdList);
972+ cb (ResultOk);
973+ }
974+
964975void ConsumerImpl::acknowledgeCumulativeAsync (const MessageId& msgId, ResultCallback callback) {
965- ResultCallback cb = std::bind (&ConsumerImpl::statsCallback , get_shared_this_ptr (), std::placeholders::_1 ,
966- callback, CommandAck_AckType_Cumulative);
976+ ResultCallback cb = std::bind (&ConsumerImpl::statsAckCallback , get_shared_this_ptr (),
977+ std::placeholders::_1, callback, CommandAck_AckType_Cumulative, 1 );
967978 if (!isCumulativeAcknowledgementAllowed (config_.getConsumerType ())) {
968979 cb (ResultCumulativeAcknowledgementNotAllowedError);
969980 return ;
0 commit comments