diff options
Diffstat (limited to 'python/qpid')
| -rw-r--r-- | python/qpid/codec.py | 17 | ||||
| -rw-r--r-- | python/qpid/spec.py | 1 |
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, |
