예제 #1
0
    def __init__(self):
        logger_format = '%(asctime)-15s:: %(message)s'
        logging.basicConfig(format=logger_format,
                            filename="./logs/central_node")
        self._logger = logging.getLogger("CentralNode")
        self._node_mapping = NodeMap()
        self._node_manager = NodeManager()
        self._table = dict()
        self._table_lock = Lock()
        self._latency_map = LatencyMap()
        #dict to store test data
        self._time_data_final = dict()

        #shared queue for broadcasting packets
        # each queue entry should be a tuple
        # containing the next hop ip and data
        # (next_hop_ip, data)
        self._packet_queue = Queue.Queue(maxsize=0)
        for i in range(self._NUM_PROCESSING_THREADS):
            t = Thread(target=self._process_packet)
            t.setDaemon(True)
            t.start()

        t_server = Thread(target=self._central_node_server)
        t_server.setDaemon(True)
        t_server.start()