Mercurial > hg > FederatedLinda
comparison tools/python-PE/CompactRouting/Start-dycstra.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 re | |
2 import sys | |
3 import string | |
4 import struct | |
5 | |
6 sys.path.append('../modules') | |
7 | |
8 import FederatedLinda | |
9 from CompactRouting import * | |
10 | |
11 ROUTING_HEADER_FORMAT = "!I" | |
12 MAKER = "::::" | |
13 | |
14 TUPLE_ID_LINKCONFIG = 1 | |
15 TUPLE_ID_ROUTING = 2 | |
16 | |
17 ROUTING_COMMAND_CONNECT = 1 | |
18 ROUTING_COMMAND_DISCONNECT = 2 | |
19 ROUTING_COMMAND_TRANSFER = 3 | |
20 ROUTING_COMMAND_UPDATE_TABLE = 4 | |
21 | |
22 testxml = \ | |
23 """<graph name = "Graf"> | |
24 <node label = "A" tsid = "localhost:10000"> | |
25 <destination label = "B"/> | |
26 </node> | |
27 <node label = "B" tsid = "localhost:10001"> | |
28 <destination label = "C"/> | |
29 <destination label = "D"/> | |
30 </node> | |
31 <node label = "C" tsid = "localhost:10002"> | |
32 <destination label = "D"/> | |
33 </node> | |
34 <node label = "D" tsid = "localhost:10003"> | |
35 </node> | |
36 </graph> | |
37 """ | |
38 | |
39 def getFirstTsid(xmltext): | |
40 p = re.compile('(?<=tsid = \").*(?=\")') | |
41 m = p.findall(xmltext) | |
42 return m[0] | |
43 | |
44 | |
45 | |
46 if __name__ == "__main__": | |
47 | |
48 if (len(sys.argv) == 2): | |
49 print " : %s <xmlfilename>" % sys.argv[0] | |
50 xmltext = open(sys.argv[1]).read() | |
51 if xmltext is None: | |
52 sys.exit(1) | |
53 | |
54 else: | |
55 xmltext = testxml | |
56 #close else | |
57 pass | |
58 | |
59 firsttsid = getFirstTsid(xmltext) | |
60 flinda = FederatedLinda.FederatedLinda() | |
61 #first Landmark set | |
62 landmark_tsidlist = firsttsid + "," | |
63 #define dycstra hopcount | |
64 landmark_hopcount = 2 | |
65 | |
66 host, portnum = string.split(firsttsid,':') | |
67 | |
68 #set send packet format | |
69 data = struct.pack(ROUTING_HEADER_FORMAT,landmark_hopcount)+landmark_tsidlist+MAKER+testxml | |
70 linda1 = flinda.open(host, int(portnum)) | |
71 linda1.Out(TUPLE_ID_LINKCONFIG, data) | |
72 | |
73 #landmark_data = struct.pack(ROUTING_HEADER_FORMAT,landmark_hopcount,rt.landmark_tslist) | |
74 #linda1.Out(TUPLE_ID_LANDMARKCONFIG, landmark_data) | |
75 | |
76 flinda.sync() | |
77 | |
78 | |
79 |