summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/framing')
-rw-r--r--cpp/src/qpid/framing/SequenceNumber.cpp15
-rw-r--r--cpp/src/qpid/framing/SequenceNumber.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/cpp/src/qpid/framing/SequenceNumber.cpp b/cpp/src/qpid/framing/SequenceNumber.cpp
index ea1a34b1cf..24867130a2 100644
--- a/cpp/src/qpid/framing/SequenceNumber.cpp
+++ b/cpp/src/qpid/framing/SequenceNumber.cpp
@@ -51,6 +51,11 @@ const SequenceNumber SequenceNumber::operator++(int)
return old;
}
+SequenceNumber SequenceNumber::operator+(uint32_t i) const
+{
+ return SequenceNumber(value + i);
+}
+
bool SequenceNumber::operator<(const SequenceNumber& other) const
{
return (value - other.value) < 0;
@@ -61,6 +66,16 @@ bool SequenceNumber::operator>(const SequenceNumber& other) const
return other < *this;
}
+bool SequenceNumber::operator<=(const SequenceNumber& other) const
+{
+ return *this == other || *this < other;
+}
+
+bool SequenceNumber::operator>=(const SequenceNumber& other) const
+{
+ return *this == other || *this > other;
+}
+
namespace qpid {
namespace framing {
diff --git a/cpp/src/qpid/framing/SequenceNumber.h b/cpp/src/qpid/framing/SequenceNumber.h
index 3e0dfea2af..9b8f0659b2 100644
--- a/cpp/src/qpid/framing/SequenceNumber.h
+++ b/cpp/src/qpid/framing/SequenceNumber.h
@@ -39,10 +39,13 @@ class SequenceNumber
SequenceNumber& operator++();//prefix ++
const SequenceNumber operator++(int);//postfix ++
+ SequenceNumber operator+(uint32_t) const;
bool operator==(const SequenceNumber& other) const;
bool operator!=(const SequenceNumber& other) const;
bool operator<(const SequenceNumber& other) const;
bool operator>(const SequenceNumber& other) const;
+ bool operator<=(const SequenceNumber& other) const;
+ bool operator>=(const SequenceNumber& other) const;
uint32_t getValue() const { return (uint32_t) value; }
friend int32_t operator-(const SequenceNumber& a, const SequenceNumber& b);