summaryrefslogtreecommitdiff
path: root/python/qpid/codec.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid/codec.py')
-rw-r--r--python/qpid/codec.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/python/qpid/codec.py b/python/qpid/codec.py
index 18928698a5..6399ad2a5d 100644
--- a/python/qpid/codec.py
+++ b/python/qpid/codec.py
@@ -510,6 +510,23 @@ class Codec:
type = self.spec.structs[codec.decode_short()]
return codec.decode_struct_body(type)
+ def decode_array(self):
+ size = self.decode_long()
+ code = self.decode_octet()
+ count = self.decode_long()
+ result = []
+ for i in range(0, count):
+ if self.types.has_key(code):
+ value = self.decode(self.types[code])
+ else:
+ w = width(code)
+ if fixed(code):
+ value = self.read(w)
+ else:
+ value = self.read(self.dec_num(w))
+ result.append(value)
+ return result
+
def fixed(code):
return (code >> 6) != 2