コード例 #1
0
    def __init__(self,
                 hosts,
                 routers,
                 links,
                 display_graph=True,
                 graph_output=None):
        """
        A network instance with flows.

        Args:
            hosts (Host[]):     The list of hosts.
            routers (Router[]): The list of routers.
            links (Link[]):     The list of links.
            display_graph(bool) Whether we should display the graph when done
            graph_output(str)   Output folder if data needs saving
        """
        super(Network, self).__init__()
        Network.TIME = 0
        self.hosts = hosts
        self.routers = routers
        self.links = links

        self.event_queue = EventDispatcher()

        for target in self.hosts + self.routers + self.links:
            self.event_queue.listen(target)

        self.running = False

        self.grapher = Grapher(graph_output)
        self.displayGraph = display_graph
コード例 #2
0

def get_argument_parser():
    parser = argparse.ArgumentParser()
    parser.add_argument("filenames",
                        help="The filenames of the csv file to plot",
                        nargs="*",
                        type=str)
    parser.add_argument("-b",
                        "--bucket-size",
                        help="Size of bucket to use for graph smoothing (ms)",
                        nargs="*",
                        type=int,
                        default=None)
    return parser


if __name__ == '__main__':
    # Parse command line arguments
    args = get_argument_parser().parse_args()
    # Plot the files
    grapher = Grapher()
    assert args.bucket_size is None or \
        len(args.filenames) == len(args.bucket_size), \
        "Need a bucket width for every graph"
    for i, filename in enumerate(args.filenames):
        bucket_size = int(args.bucket_size[i]) if args.bucket_size else None
        grapher.plot_csv(filename, bucket_size)
    # Show the graphs
    grapher.show()