diff options
author | Rafael H. Schloming <rhs@apache.org> | 2009-01-08 17:10:20 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2009-01-08 17:10:20 +0000 |
commit | 27293b8e3624cb13fa346016b65f0b8a71b0279a (patch) | |
tree | 36d99e9e1f39715e0669834520ce638e3904b937 /python/qpid/session.py | |
parent | fc6840f32b54a81241fa91b0c0248ce395609ba6 (diff) | |
download | qpid-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.py | 23 |
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"): |