summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing/SequenceSet.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-05-09 18:46:17 +0000
committerAlan Conway <aconway@apache.org>2008-05-09 18:46:17 +0000
commitb0f3edfa2a68ccf34aa7a555d0d37c2e17b8421b (patch)
treea94c5a579769809f4d398f4c65ad579a432b93fd /cpp/src/qpid/framing/SequenceSet.h
parent2ebccc4f3ab6e7813ac2179c8318163ffdd22cff (diff)
downloadqpid-python-b0f3edfa2a68ccf34aa7a555d0d37c2e17b8421b.tar.gz
Support for 0-10 sessions, not yet integrated. Misc minor fixes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@654913 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing/SequenceSet.h')
-rw-r--r--cpp/src/qpid/framing/SequenceSet.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/cpp/src/qpid/framing/SequenceSet.h b/cpp/src/qpid/framing/SequenceSet.h
index 029a26818e..99e7cb4b21 100644
--- a/cpp/src/qpid/framing/SequenceSet.h
+++ b/cpp/src/qpid/framing/SequenceSet.h
@@ -34,6 +34,8 @@ class SequenceSet : public RangeSet<SequenceNumber> {
explicit SequenceSet(const RangeSet<SequenceNumber>& r)
: RangeSet<SequenceNumber>(r) {}
explicit SequenceSet(const SequenceNumber& s) { add(s); }
+ SequenceSet(const SequenceNumber& start, const SequenceNumber finish) { add(start,finish); }
+
void encode(Buffer& buffer) const;
void decode(Buffer& buffer);
@@ -41,17 +43,20 @@ class SequenceSet : public RangeSet<SequenceNumber> {
bool contains(const SequenceNumber& s) const;
void add(const SequenceNumber& s);
- void add(const SequenceNumber& start, const SequenceNumber& end);
+ void add(const SequenceNumber& start, const SequenceNumber& finish); // Closed range
void add(const SequenceSet& set);
void remove(const SequenceNumber& s);
- void remove(const SequenceNumber& start, const SequenceNumber& end);
+ void remove(const SequenceNumber& start, const SequenceNumber& finish); // Closed range
void remove(const SequenceSet& set);
- template <class T> T for_each(T& t) const {
- for (RangeIterator i = rangesBegin(); i != rangesEnd(); i++) {
+ template <class T> void for_each(T& t) const {
+ for (RangeIterator i = rangesBegin(); i != rangesEnd(); i++)
t(i->first(), i->last());
}
- return t;
+
+ template <class T> void for_each(const T& t) const {
+ for (RangeIterator i = rangesBegin(); i != rangesEnd(); i++)
+ t(i->first(), i->last());
}
friend std::ostream& operator<<(std::ostream&, const SequenceSet&);