be39dc21389452065a1ecc5dbe05beb7d2076466
1 # from queue import Queue
2 # from ya2.engine.network.network import AbsNetwork, NetworkThread, msg_rpc_call
3 # from ya2.engine.network.binary import BinaryData
6 # class ClientThread(NetworkThread):
8 # def __init__(self, srv_addr, eng, port):
9 # self.srv_addr = srv_addr
10 # NetworkThread.__init__(self, eng, port)
12 # self.rpc_ret = Queue()
14 # def _configure_socket(self):
15 # self.tcp_sock.connect((self.srv_addr, self.port))
17 # def _rpc_cb(self, data, sock):
18 # self.rpc_ret.put(data)
20 # def _queue(self, sock):
23 # def send_msg(self, msg, receiver=None): self.msgs.put(msg)
25 # def do_rpc(self, funcname, *args, **kwargs):
27 # msg_size, msg_data = BinaryData.pack(
28 # [msg_rpc_call, funcname, args, kwargs])
29 # self.msgs.put((msg_size, msg_data))
30 # return self.rpc_ret.get()
33 # class Client(AbsNetwork):
35 # def __init__(self, port, srv_addr):
36 # AbsNetwork.__init__(self, port)
37 # self.srv_addr = srv_addr
38 # self._functions = []
40 # def start(self, read_cb):
41 # return AbsNetwork.start(self, read_cb)
43 # def _bld_netw_thr(self):
44 # srv, port = self.srv_addr.split(':')
45 # return ClientThread(srv, self.eng, int(port))
47 # def _configure_udp(self): pass
49 # def send_udp(self, data_lst, sender):
50 # host, port = self.srv_addr.split(':')
51 # msg_size, msg_data = BinaryData.pack([sender] + data_lst)
52 # self.udp_sock.sendto(msg_data, (host, int(port)))
54 # def register_rpc(self, funcname): self._functions += [funcname]
56 # def unregister_rpc(self, funcname): self._functions.remove(funcname)
58 # def __getattr__(self, attr):
59 # if attr not in self._functions: raise AttributeError(attr)
61 # def do_rpc(*args, **kwargs):
62 # return self.netw_thr.do_rpc(attr, *args, **kwargs)