コード例 #1
0
    def __init__(self, socket, config=None):

        if config is None:
            config = {}  # Do not use mutables as default arguments!
        threading.Thread.__init__(self)
        self.config = SimpleConfig(config) if type(config) == type({}) else config
        self.message_id = 0
        self.unanswered_requests = {}
        self.subscriptions = {}
        self.debug = False
        self.lock = threading.Lock()
        self.pending_transactions_for_notifications = []
        self.callbacks = {}
        self.running = True
        self.daemon = True

        if socket:
            self.pipe = util.SocketPipe(socket)
            self.network = None
        else:
            self.network = Network(config)
            self.pipe = util.QueuePipe(send_queue=self.network.requests_queue)
            self.network.start(self.pipe.get_queue)
            for key in ['status', 'banner', 'updated', 'servers', 'interfaces']:
                value = self.network.get_status_value(key)
                self.pipe.get_queue.put({'method': 'network.status', 'params': [key, value]})

        # status variables
        self.status = 'connecting'
        self.servers = {}
        self.banner = ''
        self.blockchain_height = 0
        self.server_height = 0
        self.interfaces = []
コード例 #2
0
ファイル: network_proxy.py プロジェクト: oktoshi/encompass
    def switch_to_active_chain(self):
        #        print("\nNetworkProxy switch to active chain, waiting for lock")
        with self.lock:
            #            print(" Got lock")
            self.message_id = 0
            self.unanswered_requests = {}
            self.subscriptions = {}
            self.pending_transactions_for_notifications = []
            #            print(" Stopping current network")
            self.network.stop()
            time.sleep(0.3)

            self.network = Network(self.config)
            #            print(" Set new network")
            self.pipe = util.QueuePipe(send_queue=self.network.requests_queue)
            self.network.start(self.pipe.get_queue)
            #            print(" Started new network")

            self.status = 'connecting'
            self.servers = {}
            self.banner = ''
            self.blockchain_height = 0
            self.server_height = 0
            self.interfaces = []

            for key in [
                    'status', 'banner', 'updated', 'servers', 'interfaces'
            ]:
                value = self.network.get_status_value(key)
                self.pipe.get_queue.put({
                    'method': 'network.status',
                    'params': [key, value]
                })
コード例 #3
0
    def __init__(self, socket, config=None):

        if config is None:
            config = {}  # Do not use mutables as default arguments!
        util.DaemonThread.__init__(self)
        self.config = SimpleConfig(config) if type(config) == type({}) else config
        self.message_id = 0
        self.unanswered_requests = {}
        self.subscriptions = {}
        self.debug = False
        self.lock = threading.Lock()
        self.callbacks = {}

        if socket:
            self.pipe = util.SocketPipe(socket)
            self.network = None
        else:
            self.pipe = util.QueuePipe()
            self.network = Network(self.pipe, config)
            self.network.start()
            for key in ['fee','status','banner','updated','servers','interfaces']:
                value = self.network.get_status_value(key)
                self.pipe.get_queue.put({'method':'network.status', 'params':[key, value]})

        # status variables
        self.status = 'unknown'
        self.servers = {}
        self.banner = ''
        self.blockchain_height = 0
        self.server_height = 0
        self.interfaces = []
        # value returned by estimatefee
        self.fee = None
コード例 #4
0
ファイル: daemon.py プロジェクト: XertroV/electrum3-lib
 def __init__(self, server, s):
     threading.Thread.__init__(self)
     self.server = server
     self.daemon = True
     self.client_pipe = util.SocketPipe(s)
     self.daemon_pipe = util.QueuePipe(
         send_queue=self.server.network.requests_queue)
     self.server.add_client(self)
コード例 #5
0
 def __init__(self, config):
     util.DaemonThread.__init__(self)
     self.debug = False
     self.config = config
     self.pipe = util.QueuePipe()
     self.network = Network(self.pipe, config)
     self.lock = threading.RLock()
     # each GUI is a client of the daemon
     self.clients = []
     self.request_id = 0
     self.requests = {}