You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2008/03/06 14:00:59 UTC
svn commit: r634255 - in /incubator/qpid/trunk/qpid/python: hello-010-world
qpid/codec010.py qpid/datatypes.py qpid/session.py server010
tests/datatypes.py
Author: rhs
Date: Thu Mar 6 05:00:58 2008
New Revision: 634255
URL: http://svn.apache.org/viewvc?rev=634255&view=rev
Log:
added codec for sequence_set; added id to Message; RangeSet -> RangedSet; added RangedSet.add(lower, upper)
Modified:
incubator/qpid/trunk/qpid/python/hello-010-world
incubator/qpid/trunk/qpid/python/qpid/codec010.py
incubator/qpid/trunk/qpid/python/qpid/datatypes.py
incubator/qpid/trunk/qpid/python/qpid/session.py
incubator/qpid/trunk/qpid/python/server010
incubator/qpid/trunk/qpid/python/tests/datatypes.py
Modified: incubator/qpid/trunk/qpid/python/hello-010-world
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/hello-010-world?rev=634255&r1=634254&r2=634255&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/hello-010-world (original)
+++ incubator/qpid/trunk/qpid/python/hello-010-world Thu Mar 6 05:00:58 2008
@@ -4,7 +4,7 @@
from qpid.connection010 import Connection
from qpid.spec010 import load
from qpid.util import connect
-from qpid.datatypes import Message
+from qpid.datatypes import Message, RangedSet
if "-v" in sys.argv:
level = logging.DEBUG
@@ -27,10 +27,16 @@
ssn.message_transfer("a")
ssn.message_transfer("test")
-print ssn.incoming("this").get()
-print ssn.incoming("is").get()
-print ssn.incoming("a").get()
-print ssn.incoming("test").get()
+m1 = ssn.incoming("this").get()
+print m1
+m2 = ssn.incoming("is").get()
+print m2
+m3 = ssn.incoming("a").get()
+print m3
+m4 = ssn.incoming("test").get()
+print m4
+
+ssn.message_accept(RangedSet(m1.id, m2.id, m3.id, m4.id))
print ssn.queue_query("testing")
Modified: incubator/qpid/trunk/qpid/python/qpid/codec010.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/qpid/codec010.py?rev=634255&r1=634254&r2=634255&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/qpid/codec010.py (original)
+++ incubator/qpid/trunk/qpid/python/qpid/codec010.py Thu Mar 6 05:00:58 2008
@@ -18,6 +18,7 @@
#
from packer import Packer
+from datatypes import RangedSet
class Codec(Packer):
@@ -122,6 +123,23 @@
def write_vbin16(self, b):
self.write_uint16(len(b))
self.write(b)
+
+ def read_sequence_set(self):
+ result = RangedSet()
+ size = self.read_uint16()
+ nranges = size/8
+ while nranges > 0:
+ lower = self.read_sequence_no()
+ upper = self.read_sequence_no()
+ result.add(lower, upper)
+ nranges -= 1
+ return result
+ def write_sequence_set(self, ss):
+ size = 8*len(ss.ranges)
+ self.write_uint16(size)
+ for range in ss.ranges:
+ self.write_sequence_no(range.lower)
+ self.write_sequence_no(range.upper)
def read_vbin32(self):
return self.read(self.read_uint32())
Modified: incubator/qpid/trunk/qpid/python/qpid/datatypes.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/qpid/datatypes.py?rev=634255&r1=634254&r2=634255&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/qpid/datatypes.py (original)
+++ incubator/qpid/trunk/qpid/python/qpid/datatypes.py Thu Mar 6 05:00:58 2008
@@ -42,20 +42,26 @@
self.headers = args[:-1]
else:
self.headers = None
+ self.id = None
def __repr__(self):
args = []
if self.headers:
- args.extend(self.headers)
+ args.extend(map(repr, self.headers))
if self.body:
- args.append(self.body)
- return "Message(%s)" % ", ".join(map(repr, args))
+ args.append(repr(self.body))
+ if self.id is not None:
+ args.append("id=%s" % self.id)
+ return "Message(%s)" % ", ".join(args)
class Range:
- def __init__(self, lower, upper):
+ def __init__(self, lower, upper = None):
self.lower = lower
- self.upper = upper
+ if upper is None:
+ self.upper = lower
+ else:
+ self.upper = upper
def __contains__(self, n):
return self.lower <= n and n <= self.upper
@@ -69,16 +75,15 @@
def span(self, r):
return Range(min(self.lower, r.lower), max(self.upper, r.upper))
- def __str__(self):
- return "Range(%s, %s)" % (self.lower, self.upper)
-
def __repr__(self):
- return str(self)
+ return "Range(%s, %s)" % (self.lower, self.upper)
-class RangeSet:
+class RangedSet:
- def __init__(self):
+ def __init__(self, *args):
self.ranges = []
+ for n in args:
+ self.add(n)
def __contains__(self, n):
for r in self.ranges:
@@ -100,14 +105,11 @@
idx += 1
self.ranges.append(range)
- def add(self, n):
- self.add_range(Range(n, n))
-
- def __str__(self):
- return "RangeSet(%s)" % str(self.ranges)
+ def add(self, lower, upper = None):
+ self.add_range(Range(lower, upper))
def __repr__(self):
- return str(self)
+ return "RangedSet(%s)" % str(self.ranges)
class Future:
def __init__(self, initial=None):
Modified: incubator/qpid/trunk/qpid/python/qpid/session.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/qpid/session.py?rev=634255&r1=634254&r2=634255&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/qpid/session.py (original)
+++ incubator/qpid/trunk/qpid/python/qpid/session.py Thu Mar 6 05:00:58 2008
@@ -19,7 +19,7 @@
from threading import Event, RLock
from invoker import Invoker
-from datatypes import RangeSet, Struct, Future
+from datatypes import RangedSet, Struct, Future
from codec010 import StringCodec
from assembler import Segment
from queue import Queue
@@ -170,7 +170,7 @@
self.session = session
self.next_id = None
self.next_offset = None
- self._completed = RangeSet()
+ self._completed = RangedSet()
def received(self, seg):
if self.next_id == None or self.next_offset == None:
@@ -220,8 +220,6 @@
else:
idx += 1
-from queue import Queue, Closed, Empty
-
class Delegate:
def __init__(self, session):
@@ -238,6 +236,7 @@
def message_transfer(self, cmd, headers, body):
m = Message(body)
m.headers = headers
+ m.id = cmd.id
messages = self.session.incoming(cmd.destination)
messages.put(m)
msg.debug("RECV: %s", m)
Modified: incubator/qpid/trunk/qpid/python/server010
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/server010?rev=634255&r1=634254&r2=634255&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/server010 (original)
+++ incubator/qpid/trunk/qpid/python/server010 Thu Mar 6 05:00:58 2008
@@ -33,6 +33,9 @@
m.header = header
self.session.message_transfer(cmd.destination, cmd.accept_mode, cmd.acquire_mode, m)
+ def message_accept(self, messages):
+ print "ACCEPT %s" % messages
+
server = Server()
for s in listen("0.0.0.0", spec.port):
Modified: incubator/qpid/trunk/qpid/python/tests/datatypes.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/tests/datatypes.py?rev=634255&r1=634254&r2=634255&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/tests/datatypes.py (original)
+++ incubator/qpid/trunk/qpid/python/tests/datatypes.py Thu Mar 6 05:00:58 2008
@@ -20,7 +20,7 @@
from unittest import TestCase
from qpid.datatypes import *
-class RangeSetTest(TestCase):
+class RangedSetTest(TestCase):
def check(self, ranges):
posts = []
@@ -39,7 +39,7 @@
idx += 2
def test(self):
- rs = RangeSet()
+ rs = RangedSet()
self.check(rs.ranges)
@@ -85,7 +85,7 @@
rs.add(-3)
self.check(rs.ranges)
- rs.add_range(Range(1, 20))
+ rs.add(1, 20)
assert 21 not in rs
assert 20 in rs
self.check(rs.ranges)