diff options
Diffstat (limited to 'python/qpid')
| -rw-r--r-- | python/qpid/session.py | 13 | ||||
| -rw-r--r-- | python/qpid/spec010.py | 10 |
2 files changed, 20 insertions, 3 deletions
diff --git a/python/qpid/session.py b/python/qpid/session.py index a1103e0428..aa0446b941 100644 --- a/python/qpid/session.py +++ b/python/qpid/session.py @@ -75,7 +75,7 @@ class Session(Invoker): try: queue = self._incoming.get(destination) if queue == None: - queue = Queue() + queue = Incoming(self, destination) self._incoming[destination] = queue return queue finally: @@ -319,6 +319,17 @@ class Sender: for range in commands.ranges: self._completed.add(range.lower, range.upper) +class Incoming(Queue): + + def __init__(self, session, destination): + Queue.__init__(self) + self.session = session + self.destination = destination + + def start(self): + for unit in self.session.credit_unit.values(): + self.session.message_flow(self.destination, unit, 0xFFFFFFFF) + class Delegate: def __init__(self, session): diff --git a/python/qpid/spec010.py b/python/qpid/spec010.py index fb625eab65..58d305aa6c 100644 --- a/python/qpid/spec010.py +++ b/python/qpid/spec010.py @@ -170,10 +170,14 @@ class Enum: def __init__(self, name): self.name = name + self._names = () + self._values = () + + def values(self): + return self._values def __repr__(self): - return "%s(%s)" % (self.name, ", ".join([k for k in self.__dict__.keys() - if k != "name"])) + return "%s(%s)" % (self.name, ", ".join(self._names)) class Choice(Named, Node): @@ -192,6 +196,8 @@ class Choice(Named, Node): enum = Enum(node.name) node.spec.enums[node.name] = enum setattr(enum, self.name, self.value) + enum._names += (self.name,) + enum._values += (self.value,) class Composite(Type, Coded): |
