Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
more documentation in surf::Routing
[simgrid.git] / src / surf / host_interface.hpp
index a907656..0676724 100644 (file)
@@ -33,6 +33,7 @@ class XBT_PRIVATE HostAction;
 /*********
  * Tools *
  *********/
+
 XBT_PUBLIC_DATA(simgrid::surf::HostModel*) surf_host_model;
 XBT_PUBLIC(void) host_add_traces();
 
@@ -78,12 +79,8 @@ class Host :
 public:
   static simgrid::xbt::Extension<simgrid::Host, Host> EXTENSION_ID;
 
-  /* callbacks */
-  static simgrid::surf::signal<void(Host*)> onCreation;    /** Called on each newly created object */
-  static simgrid::surf::signal<void(Host*)> onDestruction; /** Called just before destructing an object */
-  static simgrid::surf::signal<void(Host*)> onStateChange; /** Called when the machine is turned on or off */
-
 public:
+  static void classInit(); // must be called before the first use of that class
   /**
    * @brief Host constructor
    *
@@ -93,7 +90,7 @@ public:
    * @param storage The Storage associated to this Host
    * @param cpu The Cpu associated to this Host
    */
-  Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+  Host(HostModel *model, const char *name, xbt_dict_t props,
                      xbt_dynar_t storage, Cpu *cpu);
 
   /**
@@ -106,20 +103,18 @@ public:
    * @param storage The Storage associated to this Host
    * @param cpu The Cpu associated to this Host
    */
-  Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+  Host(HostModel *model, const char *name, xbt_dict_t props,
       lmm_constraint_t constraint, xbt_dynar_t storage, Cpu *cpu);
 
   /* Host destruction logic */
   /**************************/
-protected:
   ~Host();
-public:
-       void destroy(); // Must be called instead of the destructor
-private:
-       bool currentlyDestroying_ = false;
-
 
 public:
+  HostModel *getModel()
+  {
+    return static_cast<HostModel*>(Resource::getModel());
+  }
   void attach(simgrid::Host* host);
 
   bool isOn() override;