Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[surf] Triggers the destructed callbacks on the full object
[simgrid.git] / src / surf / host_ptask_L07.cpp
index d6d022a..54b101e 100644 (file)
@@ -270,14 +270,9 @@ Action *HostL07Model::executeParallelTask(int host_nb,
   return action;
 }
 
-Host *HostL07Model::createHost(const char *name,RoutingEdge *netElm, Cpu *cpu)
+Host *HostL07Model::createHost(const char *name,RoutingEdge *netElm, Cpu *cpu, xbt_dict_t props)
 {
-  HostL07 *host = new HostL07(this, name, NULL, netElm, cpu);
-
-  surf_callback_emit(hostCreatedCallbacks, host);
-  xbt_lib_set(host_lib, name, SURF_HOST_LEVEL, host);
-
-  return host;
+  return new HostL07(this, name, props, netElm, cpu);
 }
 
 Action *NetworkL07Model::communicate(RoutingEdge *src, RoutingEdge *dst,
@@ -310,16 +305,11 @@ Cpu *CpuL07Model::createCpu(const char *name,  xbt_dynar_t powerPeak,
                           int pstate, double power_scale,
                           tmgr_trace_t power_trace, int core,
                           e_surf_resource_state_t state_initial,
-                          tmgr_trace_t state_trace,
-                          xbt_dict_t cpu_properties)
+                          tmgr_trace_t state_trace)
 {
   double power_initial = xbt_dynar_get_as(powerPeak, pstate, double);
-  sg_host_t sg_host = sg_host_by_name(name);
-
-  CpuL07 *cpu = new CpuL07(this, name, cpu_properties,
-                                    power_initial, power_scale, power_trace,
+  CpuL07 *cpu = new CpuL07(this, name, power_initial, power_scale, power_trace,
                          core, state_initial, state_trace);
-  sg_host_surfcpu_register(sg_host, cpu);
   return cpu;
 }
 
@@ -415,10 +405,15 @@ HostL07::HostL07(HostModel *model, const char* name, xbt_dict_t props, RoutingEd
 {
 }
 
-CpuL07::CpuL07(CpuL07Model *model, const char* name, xbt_dict_t props,
+HostL07::~HostL07()
+{
+  this->die();
+}
+
+CpuL07::CpuL07(CpuL07Model *model, const char* name,
                     double speedInitial, double speedScale, tmgr_trace_t speedTrace,
                           int core, e_surf_resource_state_t state_initial, tmgr_trace_t state_trace)
- : Cpu(model, name, props, lmm_constraint_new(ptask_maxmin_system, this, speedInitial * speedScale),
+ : Cpu(model, name, lmm_constraint_new(ptask_maxmin_system, this, speedInitial * speedScale),
           core, speedInitial, speedScale, state_initial)
 {
   xbt_assert(m_speedScale > 0, "Power has to be >0");
@@ -432,6 +427,11 @@ CpuL07::CpuL07(CpuL07Model *model, const char* name, xbt_dict_t props,
        p_stateEvent = tmgr_history_add_trace(history, state_trace, 0.0, 0, this);
 }
 
+CpuL07::~CpuL07()
+{
+  this->die();
+}
+
 LinkL07::LinkL07(NetworkL07Model *model, const char* name, xbt_dict_t props,
                         double bw_initial,
                         tmgr_trace_t bw_trace,
@@ -462,12 +462,12 @@ Action *CpuL07::execute(double size)
   double *flops_amount = xbt_new0(double, 1);
   double *bytes_amount = xbt_new0(double, 1);
 
-  host_list[0] = sg_host_by_name(getName());
+  host_list[0] = getHost();
   flops_amount[0] = size;
 
-  return static_cast<HostL07Model*>(getModel())->executeParallelTask(1, host_list,
-                                             flops_amount,
-                                     bytes_amount, -1);
+  return static_cast<CpuL07Model*>(getModel())
+    ->p_hostModel
+    ->executeParallelTask( 1, host_list, flops_amount, bytes_amount, -1);
 }
 
 Action *CpuL07::sleep(double duration)