diff options
| author | Gordon Sim <gsim@apache.org> | 2007-07-24 14:08:32 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-07-24 14:08:32 +0000 |
| commit | 9f120205e0d7a0b2666b9fd21a5296db07e32fd8 (patch) | |
| tree | b263ca1fa1863eca341d370dc5dd29ef97bc91bd /python/qpid/peer.py | |
| parent | 6aa2316d7712a709e9782919afd2a14cfaafc7a9 (diff) | |
| download | qpid-python-9f120205e0d7a0b2666b9fd21a5296db07e32fd8.tar.gz | |
Some initial 0-10 support including placeholders for new domains, use of execution layer for synchronising methods with no explicit responses and a new set of tests (mainly just copies of the 0-9 ones, but these will be altered as 0-10 support progresses).
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@559055 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/peer.py')
| -rw-r--r-- | python/qpid/peer.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/python/qpid/peer.py b/python/qpid/peer.py index 9880eea19b..d7ae85e345 100644 --- a/python/qpid/peer.py +++ b/python/qpid/peer.py @@ -189,7 +189,9 @@ class Channel: self.completion = ExecutionCompletion() # Use reliable framing if version == 0-9. - self.reliable = (spec.major == 0 and spec.minor == 9) + # (also for 0-10 while transitioning...) + self.reliable = (spec.major == 0 and (spec.minor == 9 or spec.minor == 10)) + self.use_execution_layer = (spec.major == 0 and spec.minor == 10) self.synchronous = True def close(self, reason): @@ -199,6 +201,7 @@ class Channel: self.reason = reason self.incoming.close() self.responses.close() + self.completion.close() def write(self, frame, content = None): if self.closed: @@ -261,6 +264,11 @@ class Channel: self.request(frame, self.queue_response, content) if not frame.method.responses: + if self.use_execution_layer and type.klass.name != "execution": + self.execution_flush() + self.completion.wait() + if self.closed: + raise Closed(self.reason) return None try: resp = self.responses.get() @@ -353,6 +361,9 @@ class ExecutionCompletion: if method.klass.name != "execution": self.command_id = self.sequence.next() + def close(self): + self.completed.set() + def complete(self, mark): self.mark = mark self.completed.set() |
