X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0e9c0448c6566825b170b98ecff716b098bda10e..3d7871258a01dc77c95cd4618034b8fd89bbd8d9:/src/surf/ns3/ns3_simulator.h diff --git a/src/surf/ns3/ns3_simulator.h b/src/surf/ns3/ns3_simulator.h index 0429c50521..2847a6037f 100644 --- a/src/surf/ns3/ns3_simulator.h +++ b/src/surf/ns3/ns3_simulator.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2012. The SimGrid Team. +/* Copyright (c) 2007-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -7,66 +7,41 @@ #ifndef _NS3_SIM_H #define _NS3_SIM_H -#ifdef __cplusplus +#include -#include "ns3/core-module.h" -#include "my-point-to-point-helper.h" +#include "ns3_interface.h" -#ifdef _NS3_3_10 - /*NS3 3.10*/ - #include "ns3/helper-module.h" - #include "ns3/simulator-module.h" - #include "ns3/node-module.h" - #include "ns3/helper-module.h" - #include "ns3/global-routing-module.h" - #include "ns3/tcp-socket-factory.h" -#else - /*NS3 3.12*/ - #include "ns3/node.h" - #include "ns3/global-route-manager.h" - #include "ns3/csma-helper.h" - #include "ns3/internet-stack-helper.h" - #include "ns3/ipv4-address-helper.h" - #include "ns3/point-to-point-helper.h" - #include "ns3/packet-sink-helper.h" - #include "ns3/inet-socket-address.h" - #include "ns3/tcp-socket-factory.h" -#endif - -using namespace ns3; -using namespace std; +#include +#include +#include +#include +#include +#include +#include -struct MySocket{ - uint32_t bufferedBytes; - uint32_t sentBytes; - uint32_t remaining; - uint32_t totalBytes; - char finished; - void* action; +class SgFlow { +public: + SgFlow(uint32_t totalBytes, simgrid::surf::NetworkNS3Action* action); + + // private: + std::uint32_t bufferedBytes_ = 0; + std::uint32_t sentBytes_ = 0; + std::uint32_t remaining_; + std::uint32_t totalBytes_; + bool finished_ = false; + simgrid::surf::NetworkNS3Action* action_; }; -//Simulator s; -class NS3Sim { +void StartFlow(ns3::Ptr sock, const char* to, uint16_t port_number); -private: - -public: - NS3Sim(); - ~NS3Sim(); - void create_flow_NS3(Ptr src, - Ptr dst, - uint16_t port_number, - double start, - const char *addr, - uint32_t TotalBytes, - void * action); - void simulator_start(double min); - void* get_action_from_socket(void *socket); - double get_remains_from_socket(void *socket); - double get_sent_from_socket(void *socket); - char get_finished(void *socket); -}; +static inline const char* transformSocketPtr(ns3::Ptr localSocket) +{ + static char key[24]; + std::stringstream sstream; + sstream << localSocket; + snprintf(key, 24, "%s", sstream.str().c_str()); -#endif /* __cplusplus */ + return key; +} #endif