summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-03-06 15:05:04 +0000
committerRafael H. Schloming <rhs@apache.org>2008-03-06 15:05:04 +0000
commit19ad6741d3579b1ffce70a43271e4e4f804ad643 (patch)
tree1eae6754355e7696902d8db28f790b4019485df5
parent4c269fa3fdf07c6f3fa12023c5a14012919456a9 (diff)
downloadqpid-python-19ad6741d3579b1ffce70a43271e4e4f804ad643.tar.gz
preliminary support for message headers
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@634289 13f79535-47bb-0310-9956-ffa450edef68
-rwxr-xr-xpython/hello-010-world4
-rw-r--r--python/qpid/session.py10
-rwxr-xr-xpython/server0104
3 files changed, 14 insertions, 4 deletions
diff --git a/python/hello-010-world b/python/hello-010-world
index 5ae42c2ac1..ff01cf9ed7 100755
--- a/python/hello-010-world
+++ b/python/hello-010-world
@@ -22,8 +22,10 @@ ssn = conn.session("my-session", timeout=10)
ssn.queue_declare("asdf")
+
ssn.message_transfer("this", None, None, Message("testing..."))
-ssn.message_transfer("is", None, None, Message("more testing..."))
+props = ssn.delivery_properties(routing_key="asdf")
+ssn.message_transfer("is", None, None, Message(props, "more testing..."))
ssn.message_transfer("a")
ssn.message_transfer("test")
diff --git a/python/qpid/session.py b/python/qpid/session.py
index 7702a19251..c628762dac 100644
--- a/python/qpid/session.py
+++ b/python/qpid/session.py
@@ -73,9 +73,17 @@ class Session(Invoker):
if cmd is not None and cmd.track == self.spec["track.command"].value:
return cmd
else:
+ # XXX
+ for st in self.spec.structs.values():
+ if st.name == name:
+ return st
return None
def invoke(self, type, args, kwargs):
+ # XXX
+ if not hasattr(type, "track"):
+ return type.new(args, kwargs)
+
if self.channel == None:
raise SessionDetached()
@@ -106,7 +114,7 @@ class Session(Invoker):
if message.headers != None:
sc = StringCodec(self.spec)
for st in message.headers:
- sc.write_struct32(st.type, st)
+ sc.write_struct32(st)
seg = Segment(False, message.body == None, self.spec["segment_type.header"].value,
type.track, self.channel.id, sc.encoded)
self.send(seg)
diff --git a/python/server010 b/python/server010
index ee47731a60..ecf76577ec 100755
--- a/python/server010
+++ b/python/server010
@@ -28,9 +28,9 @@ class SessionDelegate(Client):
def queue_query(self, qq):
return qq.type.result.type.new((qq.queue,), {})
- def message_transfer(self, cmd, header, body):
+ def message_transfer(self, cmd, headers, body):
m = Message(body)
- m.header = header
+ m.headers = headers
self.session.message_transfer(cmd.destination, cmd.accept_mode, cmd.acquire_mode, m)
def message_accept(self, messages):