00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _framing_SequenceNumber_h
00022 #define _framing_SequenceNumber_h
00023
00024 #include "amqp_types.h"
00025
00026 namespace qpid {
00027 namespace framing {
00028
00032 class SequenceNumber
00033 {
00034 int32_t value;
00035
00036 public:
00037 SequenceNumber();
00038 SequenceNumber(uint32_t v);
00039
00040 SequenceNumber& operator++();
00041 const SequenceNumber operator++(int);
00042 SequenceNumber& operator--();
00043 bool operator==(const SequenceNumber& other) const;
00044 bool operator!=(const SequenceNumber& other) const;
00045 bool operator<(const SequenceNumber& other) const;
00046 bool operator>(const SequenceNumber& other) const;
00047 bool operator<=(const SequenceNumber& other) const;
00048 bool operator>=(const SequenceNumber& other) const;
00049 uint32_t getValue() const { return (uint32_t) value; }
00050 operator uint32_t() const { return (uint32_t) value; }
00051
00052 friend int32_t operator-(const SequenceNumber& a, const SequenceNumber& b);
00053
00054 template <class S> void serialize(S& s) { s(value); }
00055 };
00056
00057 struct Window
00058 {
00059 SequenceNumber hwm;
00060 SequenceNumber lwm;
00061 };
00062
00063 }}
00064
00065
00066 #endif