-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
56 lines (48 loc) · 1.56 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from multiprocessing import managers
from message import message
n=100
GUEST=-2
SERVER=-1
class myManager(managers.BaseManager):
pass
def sucs(m,connection,key):
q = m.get_guest_queue()
connection.put(message(GUEST, SERVER, ("sucs", key)))
resp = q.get()
return resp.data[1]
def add_data(m,connection):
key = int(input("key:"))
content = input("data:")
nid=sucs(m,connection,key)
data = (key, content)
connection.put(message(None, -1, ("forward", message(nid, nid, ("adddata", data)))))
def get_data(m,connection,key):
nid=sucs(m,connection,key)
q = m.get_guest_queue()
connection.put(message(GUEST, SERVER, ("forward", message(GUEST, nid, ("getdata", key)))))
resp = q.get()
return resp.data[1]
def menue(m):
connection=m.get_connection()
inp = input(" 1-add data \n 2-sucs \n 3-stop \n 4-get data \n enter:")
if inp == "1":
add_data(m,connection)
elif (inp == "2"):
key = int(input("enter key :"))
resp=sucs(m,connection,key)
print(resp)
elif(inp=="4"):
key=int(input("enter key :"))
resp=get_data(m,connection,key)
print(resp)
elif (inp == "3"):
nid = int(input("enter node number :"))
connection.put(message(GUEST, SERVER, ("forward", message(GUEST, nid, ("stop", None)))))
menue(m)
if __name__ == '__main__':
myManager.register('get_connection')
myManager.register('get_inbox')
myManager.register('get_guest_queue')
m = myManager(address=('localhost', 50000), authkey=b'abc')
m.connect()
menue(m)