def download_slot_callback(added, task): assert isinstance(task, ReadStoreFromNodeTask) if added: invoke_in_main_thread(self._tree_model.append, task) else: invoke_in_main_thread(self._tree_model.remove, task)
def store_to_node_task_cb(added, task): assert isinstance(task, StoreToNodeTask) if added: invoke_in_main_thread(self._tree_model.append, task) else: invoke_in_main_thread(self._tree_model.remove, task)
def connect(self): t = 2 nodes = self._get_known_nodes_from_config() random.shuffle(nodes) nodes = itertools.cycle(nodes) for address in nodes: self.observer(DHTClientController.CONNECTING) join_network_task = self._client.dht_network.join_network(address) result = join_network_task.result() if result: invoke_in_main_thread(self.observer, DHTClientController.CONNECTED) break else: invoke_in_main_thread(self.observer, DHTClientController.DISCONNECTED) t *= 2 t = min(3600, t) time.sleep(t)
def stop(self, *args): self.singletons[DHTClientController].stop() invoke_in_main_thread(self.app.quit)
def f(*args): invoke_in_main_thread(self._disable_scan_ui)