Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
directly store the ns3Node, don't rely on a num ID to find it later on
[simgrid.git] / src / surf / ns3 / ns3_interface.hpp
index 58ed7d1..dfee129 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef NS3_INTERFACE_HPP
 #define NS3_INTERFACE_HPP
 
+#include "ns3/ptr.h"
 #include "simgrid/s4u/Host.hpp"
 
 namespace simgrid {
@@ -13,6 +14,9 @@ namespace surf {
 class NetworkNS3Action;
 }
 }
+namespace ns3 {
+class Node;
+}
 
 class NetPointNs3 {
 public:
@@ -20,19 +24,18 @@ public:
 
   explicit NetPointNs3();
   int node_num;
+  ns3::Ptr<ns3::Node> ns3Node_;
 };
 
-SG_BEGIN_DECL()
+extern "C" {
 
 XBT_PUBLIC(void) ns3_initialize(const char* TcpProtocol);
 XBT_PUBLIC(void)
-ns3_create_flow(sg_host_t src, sg_host_t dst, u_int32_t TotalBytes,
-                simgrid::surf::NetworkNS3Action* action);
+ns3_create_flow(sg_host_t src, sg_host_t dst, u_int32_t TotalBytes, simgrid::surf::NetworkNS3Action* action);
 XBT_PUBLIC(void) ns3_simulator(double maxSeconds);
 XBT_PUBLIC(void*) ns3_add_router(const char* id);
 XBT_PUBLIC(void) ns3_add_link(NetPointNs3* src, NetPointNs3* dst, double bw, double lat);
 XBT_PUBLIC(void) ns3_add_cluster(const char* id, double bw, double lat);
-
-SG_END_DECL()
+}
 
 #endif