X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ec14673a153cd09717e81a88458258b2c69c79a2..bdfe4f8674f98efbf2d67ad854ef83a1d5f855ed:/src/surf/gtnets/gtnets_simulator.h diff --git a/src/surf/gtnets/gtnets_simulator.h b/src/surf/gtnets/gtnets_simulator.h index 2b870a176e..9549978382 100644 --- a/src/surf/gtnets/gtnets_simulator.h +++ b/src/surf/gtnets/gtnets_simulator.h @@ -1,5 +1,5 @@ -/* $Id$ */ -/* Copyright (c) 2007 Kayo Fujiwara. All rights reserved. */ +/* Copyright (c) 2007-2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -15,17 +15,18 @@ #include //GTNetS include files -#include "simulator.h" // Definitions for the Simulator Object -#include "node.h" // Definitions for the Node Object -#include "linkp2p.h" // Definitions for point-to-point link objects -#include "ratetimeparse.h" // Definitions for Rate and Time objects -#include "application-tcpserver.h" // Definitions for TCPServer application -#include "application-tcpsend.h" // Definitions for TCP Sending application -#include "tcp-tahoe.h" // Definitions for TCP Tahoe +#include "simulator.h" // Definitions for the Simulator Object +#include "node.h" // Definitions for the Node Object +#include "linkp2p.h" // Definitions for point-to-point link objects +#include "ratetimeparse.h" // Definitions for Rate and Time objects +#include "application-tcpserver.h" // Definitions for TCPServer application +#include "application-tcpsend.h" // Definitions for TCP Sending application +#include "tcp-tahoe.h" // Definitions for TCP Tahoe #include "tcp-reno.h" #include "tcp-newreno.h" #include "event.h" #include "routing-manual.h" +#include "red.h" using namespace std; @@ -34,45 +35,50 @@ class GTSim { public: GTSim(); + GTSim(int WindowSize); ~GTSim(); -public: +public: int add_link(int id, double bandwidth, double latency); int add_onehop_route(int src, int dst, int link); - int add_route(int src, int dst, int* links, int nlink); + int add_route(int src, int dst, int *links, int nlink); int add_router(int id); - int create_flow(int src, int dst, long datasize, void* metadata); + int create_flow(int src, int dst, long datasize, void *metadata); double get_time_to_next_flow_completion(); - int run_until_next_flow_completion(void*** metadata, int* number_of_flows); + int run_until_next_flow_completion(void ***metadata, + int *number_of_flows); int run(double deltat); // returns the total received by the TCPServer peer of the given action double gtnets_get_flow_rx(void *metadata); void create_gtnets_topology(); void print_topology(); + void set_jitter(double); + void set_jitter_seed(int); private: void add_nodes(); void node_connect(); bool node_include(int); bool link_include(int); - Simulator* sim_; - GTNETS_Topology* topo_; - RoutingManual* rm_; + Simulator *sim_; + GTNETS_Topology *topo_; + RoutingManual *rm_; + REDQueue *red_queue_; int nnode_; int is_topology_; int nflow_; + double jitter_; + int jitter_seed_; + map < int, Uniform * >uniform_jitter_generator_; - map gtnets_servers_; - map gtnets_clients_; - map gtnets_links_; - map gtnets_nodes_; - //added by pedro in order to get statistics - map gtnets_action_to_flow_; + map < int, TCPServer * >gtnets_servers_; + map < int, TCPSend * >gtnets_clients_; + map < int, Linkp2p * >gtnets_links_; + map < int, Node * >gtnets_nodes_; + map < void *, int >gtnets_action_to_flow_; - map gtnets_metadata_; + map < int, void *>gtnets_metadata_; }; -#endif /* __cplusplus */ +#endif /* __cplusplus */ #endif - -