summaryrefslogtreecommitdiff
path: root/python/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid')
-rw-r--r--python/qpid/datatypes.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/python/qpid/datatypes.py b/python/qpid/datatypes.py
index 36b290700b..ba9eaa053f 100644
--- a/python/qpid/datatypes.py
+++ b/python/qpid/datatypes.py
@@ -72,11 +72,40 @@ class Message:
else:
self.body = None
if len(args) > 1:
- self.headers = args[:-1]
+ self.headers = list(args[:-1])
else:
self.headers = None
self.id = None
+ def has(self, name):
+ return self.get(name) != None
+
+ def get(self, name):
+ if self.headers:
+ for h in self.headers:
+ if h._type.name == name:
+ return h
+ return None
+
+ def set(self, header):
+ if self.headers is None:
+ self.headers = []
+ idx = 0
+ while idx < len(self.headers):
+ if self.headers[idx]._type == header._type:
+ self.headers[idx] = header
+ return
+ idx += 1
+ self.headers.append(header)
+
+ def clear(self, name):
+ idx = 0
+ while idx < len(self.headers):
+ if self.headers[idx]._type.name == name:
+ del self.headers[idx]
+ return
+ idx += 1
+
def __repr__(self):
args = []
if self.headers: