Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sed -i -e 's/\t/ /g' [sources] Please people, stop using tabs
[simgrid.git] / src / surf / network_constant.cpp
index 9461678..0e2b4b7 100644 (file)
@@ -5,18 +5,11 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "network_constant.hpp"
-#include "surf/random_mgr.h"
 
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
-static int host_number_int = 0;
+#include "host_interface.hpp"
+#include "src/surf/platform.hpp"
 
-static void netcste_count_hosts(sg_platf_host_cbarg_t /*h*/) {
-  host_number_int++;
-}
-static void netcste_parse_nolink(sg_platf_link_cbarg_t link){
-       xbt_die("There is no link in the Constant network model. "
-                       "Please remove any link from your platform (and switch to routing='None')");
-}
+XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
 
 /*********
  * Model *
@@ -24,17 +17,20 @@ static void netcste_parse_nolink(sg_platf_link_cbarg_t link){
 void surf_network_model_init_Constant()
 {
   xbt_assert(surf_network_model == NULL);
-  surf_network_model = new NetworkConstantModel();
+  surf_network_model = new simgrid::surf::NetworkConstantModel();
+  xbt_dynar_push(all_existing_models, &surf_network_model);
 
   routing_model_create(NULL);
 
-  sg_platf_host_add_cb(netcste_count_hosts);
-  sg_platf_link_add_cb(netcste_parse_nolink);
-
-  Model *model = surf_network_model;
-  xbt_dynar_push(model_list, &model);
+  simgrid::surf::on_link.connect([](sg_platf_link_cbarg_t link){
+      xbt_die("There is no link in the Constant network model. "
+          "Please remove any link from your platform (and switch to routing='None')");
+  });
 }
 
+namespace simgrid {
+namespace surf {
+
 double NetworkConstantModel::shareResources(double /*now*/)
 {
   NetworkConstantAction *action = NULL;
@@ -42,8 +38,8 @@ double NetworkConstantModel::shareResources(double /*now*/)
 
   ActionList *actionSet = getRunningActionSet();
   for(ActionList::iterator it(actionSet->begin()), itend(actionSet->end())
-        ; it != itend ; ++it) {
-       action = static_cast<NetworkConstantAction*>(&*it);
+   ; it != itend ; ++it) {
+  action = static_cast<NetworkConstantAction*>(&*it);
         if (action->m_latency > 0 && (min < 0 || action->m_latency < min))
             min = action->m_latency;
   }
@@ -58,7 +54,7 @@ void NetworkConstantModel::updateActionsState(double /*now*/, double delta)
   for(ActionList::iterator it(actionSet->begin()), itNext=it, itend(actionSet->end())
      ; it != itend ; it=itNext) {
     ++itNext;
-       action = static_cast<NetworkConstantAction*>(&*it);
+  action = static_cast<NetworkConstantAction*>(&*it);
     if (action->m_latency > 0) {
       if (action->m_latency > delta) {
         double_update(&(action->m_latency), delta, sg_surf_precision);
@@ -81,8 +77,8 @@ void NetworkConstantModel::updateActionsState(double /*now*/, double delta)
   }
 }
 
-Action *NetworkConstantModel::communicate(RoutingEdge *src, RoutingEdge *dst,
-                                        double size, double rate)
+Action *NetworkConstantModel::communicate(NetCard *src, NetCard *dst,
+                             double size, double rate)
 {
   char *src_name = src->getName();
   char *dst_name = dst->getName();
@@ -91,7 +87,7 @@ Action *NetworkConstantModel::communicate(RoutingEdge *src, RoutingEdge *dst,
   NetworkConstantAction *action = new NetworkConstantAction(this, size, sg_latency_factor);
   XBT_OUT();
 
-  surf_callback_emit(networkCommunicateCallbacks, action, src, dst, size, rate);
+  networkCommunicateCallbacks(action, src, dst, size, rate);
   return action;
 }
 
@@ -103,8 +99,8 @@ int NetworkConstantAction::unref()
 {
   m_refcount--;
   if (!m_refcount) {
-       if (actionHook::is_linked())
-         p_stateSet->erase(p_stateSet->iterator_to(*this));
+  if (action_hook.is_linked())
+    p_stateSet->erase(p_stateSet->iterator_to(*this));
     delete this;
   return 1;
   }
@@ -116,24 +112,5 @@ void NetworkConstantAction::cancel()
   return;
 }
 
-void NetworkConstantAction::setCategory(const char */*category*/)
-{
-  //ignore completely the categories in constant model, they are not traced
-}
-
-void NetworkConstantAction::suspend()
-{
-  m_suspended = true;
-}
-
-void NetworkConstantAction::resume()
-{
-  if (m_suspended)
-       m_suspended = false;
 }
-
-bool NetworkConstantAction::isSuspended()
-{
-  return m_suspended;
 }
-