diff options
Diffstat (limited to 'python/qpid/codec010.py')
| -rw-r--r-- | python/qpid/codec010.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/python/qpid/codec010.py b/python/qpid/codec010.py index 2dcba4e917..f6539ffcee 100644 --- a/python/qpid/codec010.py +++ b/python/qpid/codec010.py @@ -18,6 +18,7 @@ # from packer import Packer +from datatypes import RangedSet class Codec(Packer): @@ -123,6 +124,23 @@ class Codec(Packer): self.write_uint16(len(b)) self.write(b) + def read_sequence_set(self): + result = RangedSet() + size = self.read_uint16() + nranges = size/8 + while nranges > 0: + lower = self.read_sequence_no() + upper = self.read_sequence_no() + result.add(lower, upper) + nranges -= 1 + return result + def write_sequence_set(self, ss): + size = 8*len(ss.ranges) + self.write_uint16(size) + for range in ss.ranges: + self.write_sequence_no(range.lower) + self.write_sequence_no(range.upper) + def read_vbin32(self): return self.read(self.read_uint32()) def write_vbin32(self, b): |
