summaryrefslogtreecommitdiff
path: root/python/qpid/session.py
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2009-01-08 17:10:20 +0000
committerRafael H. Schloming <rhs@apache.org>2009-01-08 17:10:20 +0000
commit27293b8e3624cb13fa346016b65f0b8a71b0279a (patch)
tree36d99e9e1f39715e0669834520ce638e3904b937 /python/qpid/session.py
parentfc6840f32b54a81241fa91b0c0248ce395609ba6 (diff)
downloadqpid-python-27293b8e3624cb13fa346016b65f0b8a71b0279a.tar.gz
made codegen happen on module import rather than on object instantiation, this makes things like help(Session) much more useful
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@732760 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/session.py')
-rw-r--r--python/qpid/session.py23
1 files changed, 4 insertions, 19 deletions
diff --git a/python/qpid/session.py b/python/qpid/session.py
index 4a7ecbc28a..587a226aa1 100644
--- a/python/qpid/session.py
+++ b/python/qpid/session.py
@@ -18,7 +18,8 @@
#
from threading import Condition, RLock, Lock, currentThread
-from invoker import Invoker
+from spec import SPEC
+from generator import command_invoker
from datatypes import RangedSet, Struct, Future
from codec010 import StringCodec
from assembler import Segment
@@ -43,11 +44,10 @@ def server(*args):
INCOMPLETE = object()
-class Session(Invoker):
+class Session(command_invoker(SPEC)):
- def __init__(self, name, spec, auto_sync=True, timeout=10, delegate=client):
+ def __init__(self, name, auto_sync=True, timeout=10, delegate=client):
self.name = name
- self.spec = spec
self.auto_sync = auto_sync
self.timeout = timeout
self.channel = None
@@ -133,21 +133,6 @@ class Session(Invoker):
finally:
self.lock.release()
- def resolve_method(self, name):
- cmd = self.spec.instructions.get(name)
- if cmd is not None and cmd.track == self.spec["track.command"].value:
- return self.METHOD, cmd
- else:
- # XXX
- for st in self.spec.structs.values():
- if st.name == name:
- return self.METHOD, st
- if self.spec.structs_by_name.has_key(name):
- return self.METHOD, self.spec.structs_by_name[name]
- if self.spec.enums.has_key(name):
- return self.VALUE, self.spec.enums[name]
- return self.ERROR, None
-
def invoke(self, type, args, kwargs):
# XXX
if not hasattr(type, "track"):