Mercurial > hg > FederatedLinda
comparison tools/python-PE/Routing/FederatedLinda.py @ 8:6c40056777be
Initial revision
author | fuchita |
---|---|
date | Sat, 16 Feb 2008 13:18:02 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
7:1809e2b05824 | 8:6c40056777be |
---|---|
1 import psxlinda | |
2 | |
3 class FederatedLinda: | |
4 def __init__(self): | |
5 self.tuplespaces = [] | |
6 | |
7 def open(self, hostname, port): | |
8 tsid = psxlinda.open(hostname, port) | |
9 if (tsid == -1): | |
10 return None | |
11 | |
12 linda = Linda(tsid) | |
13 # self.tuplespaces.append(linda) | |
14 | |
15 return linda | |
16 | |
17 def sync(self): | |
18 psxlinda.sync() | |
19 | |
20 | |
21 # Reply from TupleSpace | |
22 | |
23 class Reply: | |
24 def __init__(self, seq): | |
25 self.seq = seq | |
26 | |
27 def reply(self): | |
28 return psxlinda.reply(self.seq) | |
29 | |
30 | |
31 # Linda class | |
32 TUPLE_ID_COUNT_CLIENT = 65535 | |
33 | |
34 class Linda: | |
35 def __init__(self, tsid): | |
36 self.tsid = tsid | |
37 | |
38 def In(self, tid): | |
39 seq = psxlinda.In(self.tsid, tid) | |
40 return Reply(seq) | |
41 | |
42 def Rd(self, tid): | |
43 seq = psxlinda.Rd(self.tsid, tid) | |
44 return Reply(seq) | |
45 | |
46 def Ck(self, tid): | |
47 seq = psxlinda.Ck(self.tsid, tid) | |
48 return Reply(seq) | |
49 | |
50 def WaitRd(self, tid): | |
51 seq = psxlinda.WaitRd(self.tsid, tid) | |
52 return Reply(seq) | |
53 | |
54 def Out(self, tid, data): | |
55 psxlinda.Out(self.tsid, tid, data) | |
56 | |
57 def close(self): | |
58 psxlinda.close(self.tsid) | |
59 self.tsid = None | |
60 | |
61 def getid(self): | |
62 rep = self.In(TUPLE_ID_COUNT_CLIENT) | |
63 ret = None | |
64 while (not ret): | |
65 psxlinda.sync() | |
66 ret = rep.reply() | |
67 return ret | |
68 | |
69 def __del__(self): | |
70 if self.tsid: | |
71 self.close() | |
72 |