]> AND Public Git Repository - simgrid.git/blobdiff - include/simgrid/s4u/Engine.hpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Kill unimplemented declarations.
[simgrid.git] / include / simgrid / s4u / Engine.hpp
index fcbf72a846fa73a4891efc5f6716d69b7d69b324..56af65fe32effd3494ba8bfe80ff8583d783f22d 100644 (file)
@@ -105,10 +105,6 @@ protected:
   friend kernel::routing::NetZoneImpl;
   friend kernel::resource::HostImpl;
   friend kernel::resource::StandardLinkImpl;
-  void host_register(const std::string& name, Host* host);
-  void host_unregister(const std::string& name);
-  void link_register(const std::string& name, const Link* link);
-  void link_unregister(const std::string& name);
   void netpoint_register(simgrid::kernel::routing::NetPoint* card);
   void netpoint_unregister(simgrid::kernel::routing::NetPoint* card);
   void set_netzone_root(const NetZone* netzone);
@@ -200,7 +196,8 @@ public:
   static void set_config(const std::string& name, double value);
   static void set_config(const std::string& name, const std::string& value);
 
-  Engine* set_default_comm_data_copy_callback(void (*callback)(kernel::activity::CommImpl*, void*, size_t));
+  Engine*
+  set_default_comm_data_copy_callback(const std::function<void(kernel::activity::CommImpl*, void*, size_t)>& callback);
 
   /** Add a callback fired when the platform is created (ie, the xml file parsed),
    * right before the actual simulation starts. */
@@ -208,10 +205,15 @@ public:
   /** Add a callback fired when the platform is about to be created
    * (ie, after any configuration change and just before the resource creation) */
   static void on_platform_creation_cb(const std::function<void()>& cb) { on_platform_creation.connect(cb); }
+  /** Add a callback fired when the main simulation loop starts, at the beginning of the first call to Engine::run() */
+  static void on_simulation_start_cb(const std::function<void()>& cb) { on_simulation_start.connect(cb); }
   /** Add a callback fired when the main simulation loop ends, just before the end of Engine::run() */
   static void on_simulation_end_cb(const std::function<void()>& cb) { on_simulation_end.connect(cb); }
 
-  /** Add a callback fired when the time jumps into the future */
+  /** Add a callback fired when the time jumps into the future.
+   *
+   * It is fired right after the time change (use get_clock() to get the new timestamp).
+   * The callback parameter is the time delta since previous timestamp. */
   static void on_time_advance_cb(const std::function<void(double)>& cb) { on_time_advance.connect(cb); }
 
   /** Add a callback fired when the time cannot advance because of inter-actors deadlock. Note that the on_exit of each
@@ -225,9 +227,11 @@ public:
 #endif
 
 private:
-  static xbt::signal<void()> on_simulation_end;
+  static xbt::signal<void()> on_simulation_start;
   static xbt::signal<void(double)> on_time_advance;
   static xbt::signal<void(void)> on_deadlock;
+  static xbt::signal<void()> on_simulation_end;
+
   kernel::EngineImpl* const pimpl;
   static Engine* instance_;
   void initialize(int* argc, char** argv);