class xAlice: def __init__(self, config): assert isinstance(config, ClientConfig) config.in_use = True self.config = config # begin XXX This is supposed to be "equivalent" to Alice.main; # work out what that means and unify the two! self.actual_alice = Alice(config.actual_config) self.actual_alice.listener.start() self.actual_alice.start() # end XXX global tr tr = self.actual_alice.tr self.sinfo = {} self.cinfo = {} link = self.actual_alice.link self.sinfo["server"]=link.peer[0] self.sinfo["ip"]=link.server_ip def disconnect(self): pass # XXX def get_server_info(self): link = self.actual_alice.link self.sinfo["connection time"] = time.time() - link.time_connected self.sinfo["message count" ] = (link.messages_out, link.messages_in) self.sinfo["last message" ] = time.time() - link.last_sent return self.sinfo def get_client_info(self): link = self.actual_alice.link # This is not "efficient" but, like, whatever: if "public_ip" in link.__dict__: self.cinfo["public ip"] = link.public_ip else: self.cinfo["public ip"] = None self.cinfo["network interface"] = self.actual_alice.config.interface self.cinfo["ntp method"] = self.actual_alice.time_manager.method self.cinfo["clock dispersion"] = self.actual_alice.root_dispersion return self.cinfo def get_peers(self): peers = self.actual_alice.fm.peers.items() return [xPeer(p, self.actual_alice.fm) for p in peers]
class xAlice: def __init__(self, config): assert isinstance(config, ClientConfig) config.in_use = True self.config = config # begin XXX This is supposed to be "equivalent" to Alice.main; # work out what that means and unify the two! self.actual_alice = Alice(config.actual_config) self.actual_alice.listener.start() self.actual_alice.start() # end XXX global tr tr = self.actual_alice.tr self.sinfo = {} self.cinfo = {} link = self.actual_alice.link self.sinfo["server"] = link.peer[0] self.sinfo["ip"] = link.server_ip def disconnect(self): pass # XXX def get_server_info(self): link = self.actual_alice.link self.sinfo["connection time"] = time.time() - link.time_connected self.sinfo["message count"] = (link.messages_out, link.messages_in) self.sinfo["last message"] = time.time() - link.last_sent return self.sinfo def get_client_info(self): link = self.actual_alice.link # This is not "efficient" but, like, whatever: if "public_ip" in link.__dict__: self.cinfo["public ip"] = link.public_ip else: self.cinfo["public ip"] = None self.cinfo["network interface"] = self.actual_alice.config.interface self.cinfo["ntp method"] = self.actual_alice.time_manager.method self.cinfo["clock dispersion"] = self.actual_alice.root_dispersion return self.cinfo def get_peers(self): peers = self.actual_alice.fm.peers.items() return [xPeer(p, self.actual_alice.fm) for p in peers]
def __init__(self, config): assert isinstance(config, ClientConfig) config.in_use = True self.config = config # begin XXX This is supposed to be "equivalent" to Alice.main; # work out what that means and unify the two! self.actual_alice = Alice(config.actual_config) self.actual_alice.listener.start() self.actual_alice.start() # end XXX global tr tr = self.actual_alice.tr self.sinfo = {} self.cinfo = {} link = self.actual_alice.link self.sinfo["server"] = link.peer[0] self.sinfo["ip"] = link.server_ip
def __init__(self, config): assert isinstance(config, ClientConfig) config.in_use = True self.config = config # begin XXX This is supposed to be "equivalent" to Alice.main; # work out what that means and unify the two! self.actual_alice = Alice(config.actual_config) self.actual_alice.listener.start() self.actual_alice.start() # end XXX global tr tr = self.actual_alice.tr self.sinfo = {} self.cinfo = {} link = self.actual_alice.link self.sinfo["server"]=link.peer[0] self.sinfo["ip"]=link.server_ip