move callbacks to the network class
This commit is contained in:
@@ -17,8 +17,22 @@ class Network(threading.Thread):
|
||||
self.queue = Queue.Queue()
|
||||
self.default_server = self.config.get('server')
|
||||
self.servers_list = interface.filter_protocol(interface.DEFAULT_SERVERS,'s')
|
||||
self.callbacks = {}
|
||||
|
||||
|
||||
def register_callback(self, event, callback):
|
||||
with self.lock:
|
||||
if not self.callbacks.get(event):
|
||||
self.callbacks[event] = []
|
||||
self.callbacks[event].append(callback)
|
||||
|
||||
|
||||
def trigger_callback(self, event):
|
||||
with self.lock:
|
||||
callbacks = self.callbacks.get(event,[])[:]
|
||||
if callbacks:
|
||||
[callback() for callback in callbacks]
|
||||
|
||||
|
||||
def start_interfaces(self):
|
||||
|
||||
@@ -26,22 +40,29 @@ class Network(threading.Thread):
|
||||
self.interfaces[server] = interface.Interface({'server':server})
|
||||
|
||||
for i in self.interfaces.values():
|
||||
i.network = self # fixme
|
||||
i.start(self.queue)
|
||||
|
||||
if self.default_server:
|
||||
self.interface = interface.Interface({'server':self.default_server})
|
||||
self.interface.network = self # fixme
|
||||
self.interface.start(self.queue)
|
||||
else:
|
||||
self.interface = self.interfaces[0]
|
||||
|
||||
|
||||
def start(self, wait=False):
|
||||
|
||||
self.start_interfaces()
|
||||
threading.Thread.__init__(self)
|
||||
if wait:
|
||||
self.interface.connect_event.wait()
|
||||
return self.interface.is_connected
|
||||
|
||||
|
||||
|
||||
def run(self):
|
||||
self.blockchain.start()
|
||||
self.start_interfaces()
|
||||
|
||||
with self.lock:
|
||||
self.running = True
|
||||
|
||||
Reference in New Issue
Block a user