summaryrefslogtreecommitdiff
path: root/python/qpid/codec010.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid/codec010.py')
-rw-r--r--python/qpid/codec010.py18
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):