summaryrefslogtreecommitdiff
path: root/python/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid')
-rw-r--r--python/qpid/codec.py17
-rw-r--r--python/qpid/spec.py1
2 files changed, 18 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
diff --git a/python/qpid/spec.py b/python/qpid/spec.py
index 31c79276aa..4d0497bced 100644
--- a/python/qpid/spec.py
+++ b/python/qpid/spec.py
@@ -255,6 +255,7 @@ class Method(Metadata):
"shortstr": "",
"longstr": "",
"table": {},
+ "array": [],
"octet": 0,
"short": 0,
"long": 0,