Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / src / surf / host_clm03.cpp
index 2932677..e4d4957 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2014. The SimGrid Team.
+/* Copyright (c) 2013-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,7 +8,7 @@
 
 #include "cpu_cas01.hpp"
 #include "simgrid/sg_config.h"
-#include "vm_interface.hpp"
+#include "virtual_machine.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host);
 
@@ -46,14 +46,6 @@ void surf_host_model_init_compound()
   sg_platf_host_add_cb(host_parse_init);
 }
 
-HostCLM03Model::HostCLM03Model()
- : HostModel("Host CLM03")
-{
-}
-
-HostCLM03Model::~HostCLM03Model()
-{}
-
 Host *HostCLM03Model::createHost(const char *name){
   sg_host_t sg_host = sg_host_by_name(name);
   Host *host = new HostCLM03(surf_host_model, name, NULL,
@@ -92,7 +84,7 @@ void HostCLM03Model::updateActionsState(double /*now*/, double /*delta*/){
 }
 
 Action *HostCLM03Model::executeParallelTask(int host_nb,
-                                        void **host_list,
+                                        sg_host_t *host_list,
                                         double *flops_amount,
                                         double *bytes_amount,
                                         double rate){
@@ -100,11 +92,12 @@ Action *HostCLM03Model::executeParallelTask(int host_nb,
   Action *action =NULL;
   if ((host_nb == 1)
       && (cost_or_zero(bytes_amount, 0) == 0.0)){
-    action = static_cast<HostCLM03*>(host_list[0])->execute(flops_amount[0]);
+    action = surf_host_execute(host_list[0],flops_amount[0]);
   } else if ((host_nb == 1)
            && (cost_or_zero(flops_amount, 0) == 0.0)) {
-    action = communicate(static_cast<HostCLM03*>(host_list[0]),
-               static_cast<HostCLM03*>(host_list[0]),bytes_amount[0], rate);
+    action = surf_network_model->communicate(sg_host_edge(host_list[0]),
+                                                sg_host_edge(host_list[0]),
+                                                                                        bytes_amount[0], rate);
   } else if ((host_nb == 2)
              && (cost_or_zero(flops_amount, 0) == 0.0)
              && (cost_or_zero(flops_amount, 1) == 0.0)) {
@@ -118,22 +111,17 @@ Action *HostCLM03Model::executeParallelTask(int host_nb,
       }
     }
     if (nb == 1){
-      action = communicate(static_cast<HostCLM03*>(host_list[0]),
-                 static_cast<HostCLM03*>(host_list[1]),value, rate);
+      action = surf_network_model->communicate(sg_host_edge(host_list[0]),
+                                                  sg_host_edge(host_list[1]),
+                                                                                          value, rate);
     }
   } else
-    THROW_UNIMPLEMENTED;      /* This model does not implement parallel tasks */
+    THROW_UNIMPLEMENTED;      /* This model does not implement parallel tasks for more than 2 hosts */
 #undef cost_or_zero
   xbt_free(host_list);
   return action;
 }
 
-Action *HostCLM03Model::communicate(Host *src, Host *dst, double size, double rate){
-  return surf_network_model->communicate(src->p_netElm, dst->p_netElm, size, rate);
-}
-
-
-
 /************
  * Resource *
  ************/