summaryrefslogtreecommitdiff
path: root/python/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid')
-rw-r--r--python/qpid/session.py13
-rw-r--r--python/qpid/spec010.py10
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):