summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/AckPolicy.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client/AckPolicy.h')
-rw-r--r--cpp/src/qpid/client/AckPolicy.h29
1 files changed, 6 insertions, 23 deletions
diff --git a/cpp/src/qpid/client/AckPolicy.h b/cpp/src/qpid/client/AckPolicy.h
index d00df1ef26..2faa600556 100644
--- a/cpp/src/qpid/client/AckPolicy.h
+++ b/cpp/src/qpid/client/AckPolicy.h
@@ -23,6 +23,7 @@
#include "qpid/framing/SequenceSet.h"
#include "qpid/client/AsyncSession.h"
+#include "qpid/client/Message.h"
namespace qpid {
namespace client {
@@ -40,32 +41,14 @@ class AckPolicy
public:
/**
+ * Sends accepts and marks completion of received transfers.
+ *
*@param n: acknowledge every n messages.
*n==0 means no automatic acknowledgement.
*/
- AckPolicy(size_t n=1) : interval(n), count(n) {}
-
- void ack(const Message& msg, AsyncSession session) {
- accepted.add(msg.getId());
- if (!interval) return;
- if (--count==0) {
- session.markCompleted(msg.getId(), false, true);
- session.messageAccept(accepted);
- accepted.clear();
- count = interval;
- } else {
- session.markCompleted(msg.getId(), false, false);
- }
- }
-
- void ackOutstanding(AsyncSession session) {
- if (!accepted.empty()) {
- session.messageAccept(accepted);
- accepted.clear();
- session.sendCompletion();
- }
- }
-};
+ AckPolicy(size_t n=1);
+ void ack(const Message& msg, AsyncSession session);
+ void ackOutstanding(AsyncSession session);};
}} // namespace qpid::client