コード例 #1
0
class Peer():
    def add_args(self, parser):
        parser.add_argument("-s",
                            "--set_of_rules",
                            default="ims",
                            help="set of rules")
        parser.add_argument(
            "-a",
            "--splitter_address",
            default="127.0.1.1",
            help="Splitter address")  # Remove when STS is implemented
        # Remove when STS is implemented
        parser.add_argument("-p",
                            "--splitter_port",
                            default=Peer_DBS.splitter[1],
                            type=int,
                            help="Splitter port")
        parser.add_argument("-m",
                            "--peer_port",
                            default=0,
                            type=int,
                            help="Peer port (default={})".format(
                                Peer_DBS.peer_port))
        if __debug__:
            parser.add_argument("--loglevel",
                                default=logging.ERROR,
                                help="Log level (default={})".format(
                                    logging.getLevelName(logging.ERROR)))
            logging.basicConfig(
                format="%(message)s - %(asctime)s - %(name)s - %(levelname)s")

    def instance(self, args):
        Peer_DBS.peer_port = int(args.peer_port)
        Peer_DBS.splitter = (args.splitter_address, int(args.splitter_port))
        if args.set_of_rules == "DBS":
            self.peer = Peer_DBS("P", "Peer_DBS", args.loglevel)
        else:
            self.peer = Peer_IMS("P", "Peer_IMS", args.loglevel)

    def run(self, args):
        self.peer.connect_to_the_splitter(peer_port=args.peer_port)
        self.peer.receive_public_endpoint()
        self.peer.receive_buffer_size()
        self.peer.receive_the_number_of_peers()
        self.peer.listen_to_the_team()
        self.peer.receive_the_list_of_peers()
        self.peer.run()