Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
more documentation in surf::Routing
[simgrid.git] / src / surf / host_interface.hpp
index 4c2a174..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
    *
@@ -91,11 +88,10 @@ public:
    * @param name The name of the Host
    * @param props Dictionary of properties associated to this Host
    * @param storage The Storage associated to this Host
-   * @param netElm The RoutingEdge associated to this Host
    * @param cpu The Cpu associated to this Host
    */
-  Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
-                     xbt_dynar_t storage, NetCard *netElm, Cpu *cpu);
+  Host(HostModel *model, const char *name, xbt_dict_t props,
+                     xbt_dynar_t storage, Cpu *cpu);
 
   /**
    * @brief Host constructor
@@ -105,24 +101,20 @@ public:
    * @param props Dictionary of properties associated to this Host
    * @param constraint The lmm constraint associated to this Host if it is part of a LMM component
    * @param storage The Storage associated to this Host
-   * @param netElm The RoutingEdge associated to this Host
    * @param cpu The Cpu associated to this Host
    */
-  Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
-      lmm_constraint_t constraint, xbt_dynar_t storage, NetCard *netElm,
-      Cpu *cpu);
+  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;
@@ -243,7 +235,6 @@ public:
 
 public:
   xbt_dynar_t p_storage;
-  NetCard *p_netElm;
   Cpu *p_cpu;
   simgrid::Host* p_host = nullptr;