diff options
| author | Gordon Sim <gsim@apache.org> | 2007-09-03 17:35:35 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-09-03 17:35:35 +0000 |
| commit | 331b0e84ae06da0c057a82c0f5b67f550bcd636b (patch) | |
| tree | 91342743f16ad473b456a5ef336409e4af38cd5a /cpp/src/qpid/framing/SequenceNumberSet.cpp | |
| parent | cadb67eb27e00abb493793363dcf37f4d2f563dc (diff) | |
| download | qpid-python-331b0e84ae06da0c057a82c0f5b67f550bcd636b.tar.gz | |
Initial implementation (plus very simple tests) of message.acquire, message.release, message.reject and message.flush.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@572394 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing/SequenceNumberSet.cpp')
| -rw-r--r-- | cpp/src/qpid/framing/SequenceNumberSet.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/qpid/framing/SequenceNumberSet.cpp b/cpp/src/qpid/framing/SequenceNumberSet.cpp index 357b5dabd7..3bee5fb09a 100644 --- a/cpp/src/qpid/framing/SequenceNumberSet.cpp +++ b/cpp/src/qpid/framing/SequenceNumberSet.cpp @@ -44,6 +44,22 @@ uint32_t SequenceNumberSet::encodedSize() const return 2 /*count*/ + (size() * 4); } +SequenceNumberSet SequenceNumberSet::condense() const +{ + SequenceNumberSet result; + const_iterator last = end(); + for (const_iterator i = begin(); i != end(); i++) { + if (last == end()) { + last = i; + } else if (*i - *last > 1) { + result.push_back(*last); + result.push_back(*i); + last = end(); + } + } + return result; +} + namespace qpid{ namespace framing{ |
