Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Unify models apis
authorPaul Bédaride <paul.bedaride@gmail.com>
Mon, 12 May 2014 09:00:41 +0000 (11:00 +0200)
committerPaul Bédaride <paul.bedaride@gmail.com>
Fri, 16 May 2014 12:22:08 +0000 (14:22 +0200)
38 files changed:
examples/java/surfCpuModel/CpuConstantModel.java
src/bindings/java/org/simgrid/surf/CpuModel.java
src/bindings/java/org/simgrid/surf/Model.java
src/bindings/java/org/simgrid/surf/SurfJNI.java
src/bindings/java/surf.i
src/bindings/java/surfJAVA_wrap.cxx
src/bindings/java/surfJAVA_wrap.h
src/bindings/java/surf_swig.cpp
src/bindings/java/surfdoc.i
src/include/surf/surf.h
src/surf/cpu_cas01.cpp
src/surf/cpu_cas01.hpp
src/surf/cpu_interface.cpp
src/surf/cpu_interface.hpp
src/surf/cpu_ti.cpp
src/surf/cpu_ti.hpp
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_constant.hpp
src/surf/network_interface.cpp
src/surf/network_interface.hpp
src/surf/network_ns3.cpp
src/surf/network_ns3.hpp
src/surf/storage_interface.hpp
src/surf/storage_n11.cpp
src/surf/storage_n11.hpp
src/surf/surf_c_bindings.cpp
src/surf/surf_interface.cpp
src/surf/surf_interface.hpp
src/surf/vm_workstation_hl13.cpp
src/surf/vm_workstation_hl13.hpp
src/surf/vm_workstation_interface.hpp
src/surf/workstation_clm03.cpp
src/surf/workstation_clm03.hpp
src/surf/workstation_interface.cpp
src/surf/workstation_interface.hpp
src/surf/workstation_ptask_L07.cpp
src/surf/workstation_ptask_L07.hpp

index 7f7d418..fb2925a 100644 (file)
@@ -14,7 +14,7 @@ public class CpuConstantModel extends CpuModel {
     Msg.info("Initialize Cpu Constant Model");
   }
 
-  public Cpu createResource(String name, double[] power_peak, int pstate, double power_scale, TmgrTrace power_trace, int core, ResourceState state_initial, TmgrTrace state_trace, XbtDict cpu_properties) {
+  public Cpu createCpu(String name, double[] power_peak, int pstate, double power_scale, TmgrTrace power_trace, int core, ResourceState state_initial, TmgrTrace state_trace, XbtDict cpu_properties) {
     Msg.info("New Cpu("+name+", "+power_peak[pstate]+", "+power_scale+")");
 
     CpuConstant res = new CpuConstant(this, name, cpu_properties, core, power_peak[pstate], power_scale);
index 466308a..b5572a8 100644 (file)
@@ -81,13 +81,9 @@ public class CpuModel extends Model {
     * @return The new Cpu
     * @see Cpu
     */
-  public Cpu createResource(String name, double[] power_peak, int pstate, double power_scale, TmgrTrace power_trace, int core, ResourceState state_initial, TmgrTrace state_trace, XbtDict cpu_properties) {
-  long cPtr = SurfJNI.CpuModel_createResource(swigCPtr, this, name, power_peak, pstate, power_scale, TmgrTrace.getCPtr(power_trace), power_trace, core, state_initial.swigValue(), TmgrTrace.getCPtr(state_trace), state_trace, XbtDict.getCPtr(cpu_properties), cpu_properties);
+  public Cpu createCpu(String name, double[] power_peak, int pstate, double power_scale, TmgrTrace power_trace, int core, ResourceState state_initial, TmgrTrace state_trace, XbtDict cpu_properties) {
+  long cPtr = SurfJNI.CpuModel_createCpu(swigCPtr, this, name, power_peak, pstate, power_scale, TmgrTrace.getCPtr(power_trace), power_trace, core, state_initial.swigValue(), TmgrTrace.getCPtr(state_trace), state_trace, XbtDict.getCPtr(cpu_properties), cpu_properties);
   return (Cpu)Surf.getCpuDirector(cPtr);
 }
 
-  public void addTraces() {
-    SurfJNI.CpuModel_addTraces(swigCPtr, this);
-  }
-
 }
index f1caaa3..3e6e7f8 100644 (file)
@@ -46,15 +46,6 @@ public class Model {
   }
 
   
-  /**
-    * Model constructor
-    * @param name The name of the model
-    */
-  public Model(String name) {
-    this(SurfJNI.new_Model(name), true);
-  }
-
-  
   /**
     * @return The name of the model
     */
@@ -107,4 +98,8 @@ public class Model {
     return (cPtr == 0) ? null : new ActionList(cPtr, false);
   }
 
+  public void addTraces() {
+    SurfJNI.Model_addTraces(swigCPtr, this);
+  }
+
 }
index 040ca88..53cc07e 100644 (file)
@@ -71,7 +71,6 @@ public class SurfJNI {
   public final static native void delete_TmgrTrace(long jarg1);
   public final static native long TmgrTraceEvent_getIdx(long jarg1, TmgrTraceEvent jarg1_);
   public final static native void delete_TmgrTraceEvent(long jarg1);
-  public final static native long new_Model(String jarg1);
   public final static native String Model_getName(long jarg1, Model jarg1_);
   public final static native double Model_shareResources(long jarg1, Model jarg1_, double jarg2);
   public final static native double Model_shareResourcesLazy(long jarg1, Model jarg1_, double jarg2);
@@ -80,11 +79,11 @@ public class SurfJNI {
   public final static native void Model_updateActionsStateLazy(long jarg1, Model jarg1_, double jarg2, double jarg3);
   public final static native void Model_updateActionsStateFull(long jarg1, Model jarg1_, double jarg2, double jarg3);
   public final static native long Model_getRunningActionSet(long jarg1, Model jarg1_);
+  public final static native void Model_addTraces(long jarg1, Model jarg1_);
   public final static native void delete_Model(long jarg1);
   public final static native long new_CpuModel(String jarg1);
   public final static native void delete_CpuModel(long jarg1);
-  public final static native long CpuModel_createResource(long jarg1, CpuModel jarg1_, String jarg2, double[] jarg3, int jarg4, double jarg5, long jarg6, TmgrTrace jarg6_, int jarg7, int jarg8, long jarg9, TmgrTrace jarg9_, long jarg10, XbtDict jarg10_);
-  public final static native void CpuModel_addTraces(long jarg1, CpuModel jarg1_);
+  public final static native long CpuModel_createCpu(long jarg1, CpuModel jarg1_, String jarg2, double[] jarg3, int jarg4, double jarg5, long jarg6, TmgrTrace jarg6_, int jarg7, int jarg8, long jarg9, TmgrTrace jarg9_, long jarg10, XbtDict jarg10_);
   public final static native void CpuModel_director_connect(CpuModel obj, long cptr, boolean mem_own, boolean weak_global);
   public final static native void CpuModel_change_ownership(CpuModel obj, long cptr, boolean take_or_release);
   public final static native String Resource_getName(long jarg1, Resource jarg1_);
@@ -208,12 +207,12 @@ public class SurfJNI {
   public static long SwigDirector_CpuModel_getRunningActionSet(CpuModel self) {
     return ActionList.getCPtr(self.getRunningActionSet());
   }
-  public static long SwigDirector_CpuModel_createResource(CpuModel self, String name, double[] power_peak, int pstate, double power_scale, long power_trace, int core, int state_initial, long state_trace, long cpu_properties) {
-    return Cpu.getCPtr(self.createResource(name, power_peak, pstate, power_scale, (power_trace == 0) ? null : new TmgrTrace(power_trace, false), core, ResourceState.swigToEnum(state_initial), (state_trace == 0) ? null : new TmgrTrace(state_trace, false), (cpu_properties == 0) ? null : new XbtDict(cpu_properties, false)));
-  }
   public static void SwigDirector_CpuModel_addTraces(CpuModel self) {
     self.addTraces();
   }
+  public static long SwigDirector_CpuModel_createCpu(CpuModel self, String name, double[] power_peak, int pstate, double power_scale, long power_trace, int core, int state_initial, long state_trace, long cpu_properties) {
+    return Cpu.getCPtr(self.createCpu(name, power_peak, pstate, power_scale, (power_trace == 0) ? null : new TmgrTrace(power_trace, false), core, ResourceState.swigToEnum(state_initial), (state_trace == 0) ? null : new TmgrTrace(state_trace, false), (cpu_properties == 0) ? null : new XbtDict(cpu_properties, false)));
+  }
   public static boolean SwigDirector_Cpu_isUsed(Cpu self) {
     return self.isUsed();
   }
index 70006b3..1c61df5 100644 (file)
@@ -246,6 +246,8 @@ public:
   virtual void updateActionsStateFull(double now, double delta);
 
   virtual ActionList *getRunningActionSet();
+
+  virtual void addTraces()=0;
 };
 
 %feature("director") CpuModel;
@@ -253,13 +255,12 @@ class CpuModel : public Model {
 public:
   CpuModel(const char *name);
   virtual ~CpuModel();
-  virtual Cpu *createResource(const char *name, DoubleDynar power_peak,
+  virtual Cpu *createCpu(const char *name, DoubleDynar power_peak,
                               int pstate, double power_scale,
                               tmgr_trace *power_trace, int core,
                               e_surf_resource_state_t state_initial,
                               tmgr_trace *state_trace,
                               s_xbt_dict *cpu_properties)=0;
-  virtual void addTraces()=0;
 };
 
 class Resource {
index ee52a22..32b8675 100644 (file)
@@ -1514,12 +1514,31 @@ ActionList *SwigDirector_CpuModel::getRunningActionSet() {
   return c_result;
 }
 
+void SwigDirector_CpuModel::addTraces() {
+  JNIEnvWrapper swigjnienv(this) ;
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;
+  jobject swigjobj = (jobject) NULL ;
+  
+  if (!swig_override[7]) {
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method CpuModel::addTraces.");
+    return;
+  }
+  swigjobj = swig_get_self(jenv);
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {
+    jenv->CallStaticVoidMethod(Swig::jclass_SurfJNI, Swig::director_methids[16], swigjobj);
+    if (jenv->ExceptionCheck() == JNI_TRUE) return ;
+  } else {
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");
+  }
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);
+}
+
 SwigDirector_CpuModel::~SwigDirector_CpuModel() {
   swig_disconnect_director_self("swigDirectorDisconnect");
 }
 
 
-Cpu *SwigDirector_CpuModel::createResource(char const *name, DoubleDynar power_peak, int pstate, double power_scale, tmgr_trace *power_trace, int core, e_surf_resource_state_t state_initial, tmgr_trace *state_trace, s_xbt_dict *cpu_properties) {
+Cpu *SwigDirector_CpuModel::createCpu(char const *name, DoubleDynar power_peak, int pstate, double power_scale, tmgr_trace *power_trace, int core, e_surf_resource_state_t state_initial, tmgr_trace *state_trace, s_xbt_dict *cpu_properties) {
   Cpu *c_result = 0 ;
   jlong jresult = 0 ;
   JNIEnvWrapper swigjnienv(this) ;
@@ -1535,8 +1554,8 @@ Cpu *SwigDirector_CpuModel::createResource(char const *name, DoubleDynar power_p
   jlong jstate_trace = 0 ;
   jlong jcpu_properties = 0 ;
   
-  if (!swig_override[7]) {
-    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method CpuModel::createResource.");
+  if (!swig_override[8]) {
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method CpuModel::createCpu.");
     return c_result;
   }
   swigjobj = swig_get_self(jenv);
@@ -1560,7 +1579,7 @@ Cpu *SwigDirector_CpuModel::createResource(char const *name, DoubleDynar power_p
     jstate_initial = (jint) state_initial;
     *((tmgr_trace **)&jstate_trace) = (tmgr_trace *) state_trace; 
     *((s_xbt_dict **)&jcpu_properties) = (s_xbt_dict *) cpu_properties; 
-    jresult = (jlong) jenv->CallStaticLongMethod(Swig::jclass_SurfJNI, Swig::director_methids[16], swigjobj, jname, jpower_peak, jpstate, jpower_scale, jpower_trace, jcore, jstate_initial, jstate_trace, jcpu_properties);
+    jresult = (jlong) jenv->CallStaticLongMethod(Swig::jclass_SurfJNI, Swig::director_methids[17], swigjobj, jname, jpower_peak, jpstate, jpower_scale, jpower_trace, jcore, jstate_initial, jstate_trace, jcpu_properties);
     if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;
     c_result = *(Cpu **)&jresult; 
   } else {
@@ -1570,25 +1589,6 @@ Cpu *SwigDirector_CpuModel::createResource(char const *name, DoubleDynar power_p
   return c_result;
 }
 
-void SwigDirector_CpuModel::addTraces() {
-  JNIEnvWrapper swigjnienv(this) ;
-  JNIEnv * jenv = swigjnienv.getJNIEnv() ;
-  jobject swigjobj = (jobject) NULL ;
-  
-  if (!swig_override[8]) {
-    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method CpuModel::addTraces.");
-    return;
-  }
-  swigjobj = swig_get_self(jenv);
-  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {
-    jenv->CallStaticVoidMethod(Swig::jclass_SurfJNI, Swig::director_methids[17], swigjobj);
-    if (jenv->ExceptionCheck() == JNI_TRUE) return ;
-  } else {
-    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");
-  }
-  if (swigjobj) jenv->DeleteLocalRef(swigjobj);
-}
-
 void SwigDirector_CpuModel::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {
   static struct {
     const char *mname;
@@ -1617,10 +1617,10 @@ void SwigDirector_CpuModel::swig_connect_director(JNIEnv *jenv, jobject jself, j
       "getRunningActionSet", "()Lorg/simgrid/surf/ActionList;", NULL 
     },
     {
-      "createResource", "(Ljava/lang/String;[DIDLorg/simgrid/surf/TmgrTrace;ILorg/simgrid/surf/ResourceState;Lorg/simgrid/surf/TmgrTrace;Lorg/simgrid/surf/XbtDict;)Lorg/simgrid/surf/Cpu;", NULL 
+      "addTraces", "()V", NULL 
     },
     {
-      "addTraces", "()V", NULL 
+      "createCpu", "(Ljava/lang/String;[DIDLorg/simgrid/surf/TmgrTrace;ILorg/simgrid/surf/ResourceState;Lorg/simgrid/surf/TmgrTrace;Lorg/simgrid/surf/XbtDict;)Lorg/simgrid/surf/Cpu;", NULL 
     }
   };
   
@@ -2809,27 +2809,6 @@ SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_delete_1TmgrTraceEvent(JNI
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_simgrid_surf_SurfJNI_new_1Model(JNIEnv *jenv, jclass jcls, jstring jarg1) {
-  jlong jresult = 0 ;
-  char *arg1 = (char *) 0 ;
-  Model *result = 0 ;
-  
-  (void)jenv;
-  (void)jcls;
-  arg1 = 0;
-  if (jarg1) {
-    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
-    if (!arg1) return 0;
-  }
-  result = (Model *)new Model((char const *)arg1);
-  *(Model **)&jresult = result; 
-  {
-    
-  }
-  return jresult;
-}
-
-
 SWIGEXPORT jstring JNICALL Java_org_simgrid_surf_SurfJNI_Model_1getName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
   jstring jresult = 0 ;
   Model *arg1 = (Model *) 0 ;
@@ -2956,6 +2935,17 @@ SWIGEXPORT jlong JNICALL Java_org_simgrid_surf_SurfJNI_Model_1getRunningActionSe
 }
 
 
+SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_Model_1addTraces(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+  Model *arg1 = (Model *) 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(Model **)&jarg1; 
+  (arg1)->addTraces();
+}
+
+
 SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_delete_1Model(JNIEnv *jenv, jclass jcls, jlong jarg1) {
   Model *arg1 = (Model *) 0 ;
   
@@ -2997,7 +2987,7 @@ SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_delete_1CpuModel(JNIEnv *j
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_simgrid_surf_SurfJNI_CpuModel_1createResource(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdoubleArray jarg3, jint jarg4, jdouble jarg5, jlong jarg6, jobject jarg6_, jint jarg7, jint jarg8, jlong jarg9, jobject jarg9_, jlong jarg10, jobject jarg10_) {
+SWIGEXPORT jlong JNICALL Java_org_simgrid_surf_SurfJNI_CpuModel_1createCpu(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jdoubleArray jarg3, jint jarg4, jdouble jarg5, jlong jarg6, jobject jarg6_, jint jarg7, jint jarg8, jlong jarg9, jobject jarg9_, jlong jarg10, jobject jarg10_) {
   jlong jresult = 0 ;
   CpuModel *arg1 = (CpuModel *) 0 ;
   char *arg2 = (char *) 0 ;
@@ -3037,7 +3027,7 @@ SWIGEXPORT jlong JNICALL Java_org_simgrid_surf_SurfJNI_CpuModel_1createResource(
   arg8 = (e_surf_resource_state_t)jarg8; 
   arg9 = *(tmgr_trace **)&jarg9; 
   arg10 = *(s_xbt_dict **)&jarg10; 
-  result = (Cpu *)(arg1)->createResource((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
+  result = (Cpu *)(arg1)->createCpu((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
   *(Cpu **)&jresult = result; 
   {
     
@@ -3046,17 +3036,6 @@ SWIGEXPORT jlong JNICALL Java_org_simgrid_surf_SurfJNI_CpuModel_1createResource(
 }
 
 
-SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_CpuModel_1addTraces(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
-  CpuModel *arg1 = (CpuModel *) 0 ;
-  
-  (void)jenv;
-  (void)jcls;
-  (void)jarg1_;
-  arg1 = *(CpuModel **)&jarg1; 
-  (arg1)->addTraces();
-}
-
-
 SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_CpuModel_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {
   CpuModel *obj = *((CpuModel **)&objarg);
   (void)jcls;
@@ -4141,10 +4120,10 @@ SWIGEXPORT void JNICALL Java_org_simgrid_surf_SurfJNI_swig_1module_1init(JNIEnv
       "SwigDirector_CpuModel_getRunningActionSet", "(Lorg/simgrid/surf/CpuModel;)J" 
     },
     {
-      "SwigDirector_CpuModel_createResource", "(Lorg/simgrid/surf/CpuModel;Ljava/lang/String;[DIDJIIJJ)J
+      "SwigDirector_CpuModel_addTraces", "(Lorg/simgrid/surf/CpuModel;)V
     },
     {
-      "SwigDirector_CpuModel_addTraces", "(Lorg/simgrid/surf/CpuModel;)V
+      "SwigDirector_CpuModel_createCpu", "(Lorg/simgrid/surf/CpuModel;Ljava/lang/String;[DIDJIIJJ)J
     },
     {
       "SwigDirector_Cpu_isUsed", "(Lorg/simgrid/surf/Cpu;)Z" 
index cb0143b..065713a 100644 (file)
@@ -46,9 +46,9 @@ public:
     virtual void updateActionsStateLazy(double now, double delta);
     virtual void updateActionsStateFull(double now, double delta);
     virtual ActionList *getRunningActionSet();
-    virtual ~SwigDirector_CpuModel();
-    virtual Cpu *createResource(char const *name, DoubleDynar power_peak, int pstate, double power_scale, tmgr_trace *power_trace, int core, e_surf_resource_state_t state_initial, tmgr_trace *state_trace, s_xbt_dict *cpu_properties);
     virtual void addTraces();
+    virtual ~SwigDirector_CpuModel();
+    virtual Cpu *createCpu(char const *name, DoubleDynar power_peak, int pstate, double power_scale, tmgr_trace *power_trace, int core, e_surf_resource_state_t state_initial, tmgr_trace *state_trace, s_xbt_dict *cpu_properties);
 public:
     bool swig_overrides(int n) {
       return (n < 9 ? swig_override[n] : false);
index afff2a9..fef1748 100644 (file)
@@ -26,7 +26,7 @@ static void java_cpu_model_init_preparse() {
   surf_cpu_model_pm = java_cpu_model;
   xbt_dynar_push(model_list, &java_cpu_model);
   xbt_dynar_push(model_list_invoke, &java_cpu_model);
-  sg_platf_host_add_cb(parse_cpu_init);
+  sg_platf_host_add_cb(cpu_parse_init);
 }
 
 void setCpuModel(CpuModel *cpuModel){
index d88734c..bea7464 100644 (file)
@@ -68,7 +68,7 @@
   public";
 
 
-%javamethodmodifiers CpuModel::createResource(const char *name, DoubleDynar power_peak,
+%javamethodmodifiers CpuModel::createCpu(const char *name, DoubleDynar power_peak,
                               int pstate, double power_scale,
                               tmgr_trace *power_trace, int core,
                               e_surf_resource_state_t state_initial,
index 2903c05..8c10321 100644 (file)
@@ -1198,7 +1198,7 @@ XBT_PUBLIC_DATA(s_surf_model_description_t)
  *  Such model is subject to modification with warning in the ChangeLog so monitor it!
  *
  */
-XBT_PUBLIC(void) surf_vm_workstation_model_init_current_default(void);
+XBT_PUBLIC(void) surf_vm_workstation_model_init_HL13(void);
 
 /** \ingroup SURF_models
  *  \brief The list of all available vm workstation model models
index 3c6662d..342d039 100644 (file)
@@ -19,8 +19,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_cas, surf_cpu,
 
 static void cpu_define_callbacks()
 {
-  sg_platf_host_add_cb(parse_cpu_init);
-  sg_platf_postparse_add_cb(add_traces_cpu);
+  sg_platf_host_add_cb(cpu_parse_init);
+  sg_platf_postparse_add_cb(cpu_add_traces);
 }
 
 /*********
@@ -106,20 +106,7 @@ CpuCas01Model::~CpuCas01Model()
   delete p_cpuRunningActionSetThatDoesNotNeedBeingChecked;
 }
 
-void CpuCas01Model::parseInit(sg_platf_host_cbarg_t host)
-{
-  createResource(host->id,
-        host->power_peak,
-        host->pstate,
-        host->power_scale,
-        host->power_trace,
-        host->core_amount,
-        host->initial_state,
-        host->state_trace,
-        host->properties);
-}
-
-CpuPtr CpuCas01Model::createResource(const char *name, xbt_dynar_t power_peak,
+CpuPtr CpuCas01Model::createCpu(const char *name, xbt_dynar_t power_peak,
                                  int pstate, double power_scale,
                           tmgr_trace_t power_trace, int core,
                           e_surf_resource_state_t state_initial,
index 438f3c2..0993fea 100644 (file)
@@ -29,14 +29,13 @@ public:
   double (CpuCas01Model::*shareResources)(double now);
   void (CpuCas01Model::*updateActionsState)(double now, double delta);
 
-  void parseInit(sg_platf_host_cbarg_t host);  
-  CpuPtr createResource(const char *name, xbt_dynar_t power_peak, int pstate,
+  CpuPtr createCpu(const char *name, xbt_dynar_t power_peak, 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);
-  double shareResourcesFull(double now);  
+  double shareResourcesFull(double now);
   void addTraces();
   ActionListPtr p_cpuRunningActionSetThatDoesNotNeedBeingChecked;
 };
index 1a08d36..089e373 100644 (file)
@@ -30,20 +30,9 @@ surf_callback(void, CpuPtr) cpuDestructedCallbacks;
 surf_callback(void, CpuPtr, e_surf_resource_state_t, e_surf_resource_state_t) cpuStateChangedCallbacks;
 surf_callback(void, CpuActionPtr, e_surf_action_state_t, e_surf_action_state_t) cpuActionStateChangedCallbacks;
 
-void parse_cpu_init(sg_platf_host_cbarg_t host){
-  surf_cpu_model_pm->parseInit(host);
-}
-
-void add_traces_cpu(){
-  surf_cpu_model_pm->addTraces();
-}
-
-/*********
- * Model *
- *********/
-void CpuModel::parseInit(sg_platf_host_cbarg_t host)
-{
-  createResource(host->id,
+void cpu_parse_init(sg_platf_host_cbarg_t host){
+  surf_cpu_model_pm->createCpu(
+        host->id,
         host->power_peak,
         host->pstate,
         host->power_scale,
@@ -54,6 +43,13 @@ void CpuModel::parseInit(sg_platf_host_cbarg_t host)
         host->properties);
 }
 
+void cpu_add_traces(){
+  surf_cpu_model_pm->addTraces();
+}
+
+/*********
+ * Model *
+ *********/
 void CpuModel::updateActionsStateLazy(double now, double /*delta*/)
 {
   CpuActionPtr action;
index b2f4e8a..f877b1f 100644 (file)
@@ -54,9 +54,9 @@ XBT_PUBLIC_DATA( surf_callback(void, CpuPtr, e_surf_resource_state_t, e_surf_res
  */
 XBT_PUBLIC_DATA( surf_callback(void, CpuActionPtr, e_surf_action_state_t, e_surf_action_state_t)) cpuActionStateChangedCallbacks;
 
-XBT_PUBLIC(void) parse_cpu_init(sg_platf_host_cbarg_t host);
+XBT_PUBLIC(void) cpu_parse_init(sg_platf_host_cbarg_t host);
 
-XBT_PUBLIC(void) add_traces_cpu();
+XBT_PUBLIC(void) cpu_add_traces();
 
 /*********
  * Model *
@@ -80,9 +80,7 @@ public:
    *
    * @param host [TODO]
    */
-  void parseInit(sg_platf_host_cbarg_t host);
-
-  virtual CpuPtr createResource(const char *name, xbt_dynar_t power_peak,
+  virtual CpuPtr createCpu(const char *name, xbt_dynar_t power_peak,
                       int pstate, double power_scale,
                           tmgr_trace_t power_trace, int core,
                           e_surf_resource_state_t state_initial,
@@ -91,8 +89,6 @@ public:
 
   void updateActionsStateLazy(double now, double delta);
   void updateActionsStateFull(double now, double delta);
-
-  virtual void addTraces() =0;
 };
 
 /************
index 5c083d5..0c5fbb5 100644 (file)
@@ -381,8 +381,8 @@ int CpuTiTrace::binarySearch(double *array, double a, int low, int high)
 
 static void cpu_ti_define_callbacks()
 {
-  sg_platf_host_add_cb(parse_cpu_init);
-  sg_platf_postparse_add_cb(add_traces_cpu);
+  sg_platf_host_add_cb(cpu_parse_init);
+  sg_platf_postparse_add_cb(cpu_add_traces);
 }
 
 /*********
@@ -427,7 +427,7 @@ CpuTiModel::~CpuTiModel()
   xbt_heap_free(p_tiActionHeap);
 }
 
-CpuPtr CpuTiModel::createResource(const char *name,
+CpuPtr CpuTiModel::createCpu(const char *name,
                               xbt_dynar_t powerPeak,
                               int pstate,
                            double powerScale,
index 1361b0e..6670643 100644 (file)
@@ -84,9 +84,7 @@ class CpuTiModel : public CpuModel {
 public:
   CpuTiModel();
   ~CpuTiModel();
-
-  void parseInit(sg_platf_host_cbarg_t host);
-  CpuPtr createResource(const char *name,  xbt_dynar_t powerPeak,
+  CpuPtr 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,
index 73bc407..ae1fbc8 100644 (file)
@@ -22,95 +22,10 @@ int sg_network_crosstraffic = 0;
  * CallBacks *
  *************/
 
-static void net_parse_link_init(sg_platf_link_cbarg_t link){
-  if (link->policy == SURF_LINK_FULLDUPLEX) {
-    char *link_id;
-    link_id = bprintf("%s_UP", link->id);
-    surf_network_model->createResource(link_id,
-                      link->bandwidth,
-                      link->bandwidth_trace,
-                      link->latency,
-                      link->latency_trace,
-                      link->state,
-                      link->state_trace, link->policy, link->properties);
-    xbt_free(link_id);
-    link_id = bprintf("%s_DOWN", link->id);
-    surf_network_model->createResource(link_id,
-                      link->bandwidth,
-                      link->bandwidth_trace,
-                      link->latency,
-                      link->latency_trace,
-                      link->state,
-                      link->state_trace, link->policy, link->properties);
-    xbt_free(link_id);
-  } else {
-       surf_network_model->createResource(link->id,
-                      link->bandwidth,
-                      link->bandwidth_trace,
-                      link->latency,
-                      link->latency_trace,
-                      link->state,
-                      link->state_trace, link->policy, link->properties);
-  }
-}
-
-static void net_add_traces(void){
-  xbt_dict_cursor_t cursor = NULL;
-  char *trace_name, *elm;
-
-  static int called = 0;
-  if (called)
-    return;
-  called = 1;
-
-  /* connect all traces relative to network */
-  xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
-                                   xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
-
-    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
-               trace_name, elm);
-    xbt_assert(trace,
-               "Cannot connect trace %s to link %s: trace undefined",
-               trace_name, elm);
-
-    link->p_stateEvent = tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(link));
-  }
-
-  xbt_dict_foreach(trace_connect_list_bandwidth, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
-                                xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
-
-    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
-               trace_name, elm);
-    xbt_assert(trace,
-               "Cannot connect trace %s to link %s: trace undefined",
-               trace_name, elm);
-
-    link->p_power.event = tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(link));
-  }
-
-  xbt_dict_foreach(trace_connect_list_latency, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
-                                   xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
-
-    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
-               trace_name, elm);
-    xbt_assert(trace,
-               "Cannot connect trace %s to link %s: trace undefined",
-               trace_name, elm);
-
-    link->p_latEvent = tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(link));
-  }
-}
-
 void net_define_callbacks(void)
 {
   /* Figuring out the network links */
-  sg_platf_link_add_cb(net_parse_link_init);
+  sg_platf_link_add_cb(netlink_parse_init);
   sg_platf_postparse_add_cb(net_add_traces);
 }
 
@@ -271,7 +186,7 @@ void NetworkCm02Model::initialize()
        p_maxminSystem = lmm_system_new(m_selectiveUpdate);
 
   const char* lb_name = "__loopback__";
-  routing_model_create(static_cast<ResourcePtr>(createResource(lb_name,
+  routing_model_create(static_cast<ResourcePtr>(createNetworkLink(lb_name,
                                                   498000000, NULL, 0.000015, NULL,
                                                   SURF_RESOURCE_ON, NULL,
                                                   SURF_LINK_FATPIPE, NULL)));
@@ -286,7 +201,7 @@ void NetworkCm02Model::initialize()
   m_haveGap = false;
 }
 
-NetworkLinkPtr NetworkCm02Model::createResource(const char *name,
+NetworkLinkPtr NetworkCm02Model::createNetworkLink(const char *name,
                                  double bw_initial,
                                  tmgr_trace_t bw_trace,
                                  double lat_initial,
@@ -486,7 +401,58 @@ ActionPtr NetworkCm02Model::communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
   return action;
 }
 
+void NetworkCm02Model::addTraces(){
+  xbt_dict_cursor_t cursor = NULL;
+  char *trace_name, *elm;
+
+  static int called = 0;
+  if (called)
+    return;
+  called = 1;
+
+  /* connect all traces relative to network */
+  xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
+    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+    NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
+                            xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
+
+    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
+               trace_name, elm);
+    xbt_assert(trace,
+               "Cannot connect trace %s to link %s: trace undefined",
+               trace_name, elm);
+
+    link->p_stateEvent = tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(link));
+  }
 
+  xbt_dict_foreach(trace_connect_list_bandwidth, cursor, trace_name, elm) {
+    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+    NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
+                                xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
+
+    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
+               trace_name, elm);
+    xbt_assert(trace,
+               "Cannot connect trace %s to link %s: trace undefined",
+               trace_name, elm);
+
+    link->p_power.event = tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(link));
+  }
+
+  xbt_dict_foreach(trace_connect_list_latency, cursor, trace_name, elm) {
+    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+    NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
+                            xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
+
+    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
+               trace_name, elm);
+    xbt_assert(trace,
+               "Cannot connect trace %s to link %s: trace undefined",
+               trace_name, elm);
+
+    link->p_latEvent = tmgr_history_add_trace(history, trace, 0.0, 0, static_cast<ResourcePtr>(link));
+  }
+}
 
 /************
  * Resource *
index c31c1c9..dc0028f 100644 (file)
@@ -48,7 +48,7 @@ public:
   }
   ~NetworkCm02Model() {
   }
-  NetworkLinkPtr createResource(const char *name,
+  NetworkLinkPtr createNetworkLink(const char *name,
                                    double bw_initial,
                                    tmgr_trace_t bw_trace,
                                    double lat_initial,
@@ -57,6 +57,7 @@ public:
                                    tmgr_trace_t state_trace,
                                    e_surf_link_sharing_policy_t policy,
                                    xbt_dict_t properties);
+  void addTraces();
   void updateActionsStateLazy(double now, double delta);
   ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
                                           double size, double rate);
index 46ac808..e793ac3 100644 (file)
@@ -36,7 +36,6 @@ public:
   ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
                                           double size, double rate);
   void gapRemove(ActionPtr action);
-  //FIXME:virtual void addTraces() =0;
 };
 
 /************
index 39195ef..f852823 100644 (file)
@@ -23,6 +23,42 @@ surf_callback(void, NetworkLinkPtr, e_surf_resource_state_t, e_surf_resource_sta
 surf_callback(void, NetworkActionPtr, e_surf_action_state_t, e_surf_action_state_t) networkActionStateChangedCallbacks;
 surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate) networkCommunicateCallbacks;
 
+void netlink_parse_init(sg_platf_link_cbarg_t link){
+  if (link->policy == SURF_LINK_FULLDUPLEX) {
+    char *link_id;
+    link_id = bprintf("%s_UP", link->id);
+    surf_network_model->createNetworkLink(link_id,
+                      link->bandwidth,
+                      link->bandwidth_trace,
+                      link->latency,
+                      link->latency_trace,
+                      link->state,
+                      link->state_trace, link->policy, link->properties);
+    xbt_free(link_id);
+    link_id = bprintf("%s_DOWN", link->id);
+    surf_network_model->createNetworkLink(link_id,
+                      link->bandwidth,
+                      link->bandwidth_trace,
+                      link->latency,
+                      link->latency_trace,
+                      link->state,
+                      link->state_trace, link->policy, link->properties);
+    xbt_free(link_id);
+  } else {
+  surf_network_model->createNetworkLink(link->id,
+                      link->bandwidth,
+                      link->bandwidth_trace,
+                      link->latency,
+                      link->latency_trace,
+                      link->state,
+                      link->state_trace, link->policy, link->properties);
+  }
+}
+
+void net_add_traces(){
+  surf_network_model->addTraces();
+}
+
 /*********
  * Model *
  *********/
index f85abe1..b654419 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef SURF_NETWORK_INTERFACE_HPP_
 #define SURF_NETWORK_INTERFACE_HPP_
 
+
 /***********
  * Classes *
  ***********/
@@ -59,8 +60,9 @@ XBT_PUBLIC_DATA( surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, Routi
 /*********
  * Tools *
  *********/
+XBT_PUBLIC(void) netlink_parse_init(sg_platf_link_cbarg_t link);
 
-void net_define_callbacks(void);
+XBT_PUBLIC(void) net_add_traces();
 
 /*********
  * Model *
@@ -113,7 +115,7 @@ public:
    * @param properties Dictionary of properties associated to this Resource
    * @return The created NetworkLink
    */
-  virtual NetworkLinkPtr createResource(const char *name,
+  virtual NetworkLinkPtr createNetworkLink(const char *name,
                                    double bw_initial,
                                    tmgr_trace_t bw_trace,
                                    double lat_initial,
@@ -123,7 +125,6 @@ public:
                                    e_surf_link_sharing_policy_t policy,
                                    xbt_dict_t properties)=0;
 
-
   virtual void gapAppend(double /*size*/, const NetworkLinkPtr /*link*/, NetworkActionPtr /*action*/) {};
 
   /**
index f566367..403e1a5 100644 (file)
@@ -57,7 +57,7 @@ static void parse_ns3_add_link(sg_platf_link_cbarg_t link)
 
   if(!IPV4addr) IPV4addr = xbt_dynar_new(sizeof(char*),free);
 
-  NetworkLinkPtr net_link = surf_network_model->createResource(link->id,
+  NetworkLinkPtr net_link = surf_network_model->createNetworkLink(link->id,
                                      link->bandwidth,
                                      link->bandwidth_trace,
                                      link->latency,
@@ -294,7 +294,7 @@ NetworkNS3Model::~NetworkNS3Model() {
   xbt_dict_free(&dict_socket);
 }
 
-NetworkLinkPtr NetworkNS3Model::createResource(const char *name,
+NetworkLinkPtr NetworkNS3Model::createNetworkLink(const char *name,
                                         double bw_initial,
                                         tmgr_trace_t bw_trace,
                                         double lat_initial,
index 2b28eed..dbd1132 100644 (file)
@@ -37,7 +37,7 @@ public:
   NetworkNS3Model();
 
   ~NetworkNS3Model();
-  NetworkLinkPtr createResource(const char *name,
+  NetworkLinkPtr createNetworkLink(const char *name,
                                         double bw_initial,
                                         tmgr_trace_t bw_trace,
                                         double lat_initial,
@@ -51,6 +51,7 @@ public:
                                           double size, double rate);
   double shareResources(double now);
   void updateActionsState(double now, double delta);
+  void addTraces(){DIE_IMPOSSIBLE;}
 };
 
 /************
index 61ef3ab..1906768 100644 (file)
@@ -88,7 +88,7 @@ public:
    * @param attach [description]
    * @return The created Storage
    */
-  virtual StoragePtr createResource(const char* id,
+  virtual StoragePtr createStorage(const char* id,
                                     const char* type_id,
                                     const char* content_name,
                                     const char* content_type,
index d0bc408..36251f6 100644 (file)
@@ -68,7 +68,7 @@ static void parse_storage_init(sg_platf_storage_cbarg_t storage)
       storage->content_type,
       storage->properties);
 
-  surf_storage_model->createResource(storage->id,
+  surf_storage_model->createStorage(storage->id,
                                      ((storage_type_t) stype)->type_id,
                                      storage->content,
                                      storage->content_type,
@@ -234,7 +234,7 @@ StorageN11Model::~StorageN11Model(){
   storage_running_action_set_that_does_not_need_being_checked = NULL;
 }
 
-StoragePtr StorageN11Model::createResource(const char* id, const char* type_id,
+StoragePtr StorageN11Model::createStorage(const char* id, const char* type_id,
                const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach)
 {
 
index d479002..2ec1123 100644 (file)
@@ -37,8 +37,9 @@ class StorageN11Model : public StorageModel {
 public:
   StorageN11Model();
   ~StorageN11Model();
-  StoragePtr createResource(const char* id, const char* type_id,
+  StoragePtr createStorage(const char* id, const char* type_id,
                   const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach);
+  void addTraces(){DIE_IMPOSSIBLE;}
   double shareResources(double now);
   void updateActionsState(double now, double delta);
 };
index 6ee28a1..c43e99b 100644 (file)
@@ -287,7 +287,7 @@ xbt_dynar_t surf_workstation_model_get_route(surf_workstation_model_t /*model*/,
 }
 
 void surf_vm_workstation_model_create(const char *name, surf_resource_t ind_phys_host){
-  surf_vm_workstation_model->createResource(name, ind_phys_host);
+  surf_vm_workstation_model->createWorkstationVM(name, ind_phys_host);
 }
 
 surf_action_t surf_network_model_communicate(surf_network_model_t model, sg_routing_edge_t src, sg_routing_edge_t dst, double size, double rate){
index a4d47c2..90ad51c 100644 (file)
@@ -157,7 +157,7 @@ s_surf_model_description_t surf_workstation_model_description[] = {
 s_surf_model_description_t surf_vm_workstation_model_description[] = {
   {"default",
    "Default vm workstation model.",
-   surf_vm_workstation_model_init_current_default},
+   surf_vm_workstation_model_init_HL13},
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
 
index a636b30..4270a6e 100644 (file)
@@ -129,6 +129,8 @@ public:
    */
   virtual ~Model();
 
+  virtual void addTraces() =0;
+
   /**
    * @brief Get the name of the current Model
    *
index 92b0246..763be60 100644 (file)
@@ -9,7 +9,7 @@
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_vm_workstation);
 
-void surf_vm_workstation_model_init_current_default(void){
+void surf_vm_workstation_model_init_HL13(void){
   if (surf_cpu_model_vm) {
     surf_vm_workstation_model = new WorkstationVMHL13Model();
     ModelPtr model = static_cast<ModelPtr>(surf_vm_workstation_model);
@@ -38,15 +38,16 @@ ActionPtr WorkstationVMHL13Model::communicate(WorkstationPtr src, WorkstationPtr
 /* ind means ''indirect'' that this is a reference on the whole dict_elm
  * structure (i.e not on the surf_resource_private infos) */
 
-void WorkstationVMHL13Model::createResource(const char *name, void *ind_phys_workstation)
+WorkstationVMPtr WorkstationVMHL13Model::createWorkstationVM(const char *name, surf_resource_t ind_phys_workstation)
 {
-  WorkstationVMHL13Ptr ws = new WorkstationVMHL13(this, name, NULL, static_cast<surf_resource_t>(ind_phys_workstation));
+  WorkstationVMHL13Ptr ws = new WorkstationVMHL13(this, name, NULL, ind_phys_workstation);
 
   xbt_lib_set(host_lib, name, SURF_WKS_LEVEL, static_cast<ResourcePtr>(ws));
 
   /* TODO:
    * - check how network requests are scheduled between distinct processes competing for the same card.
    */
+  return ws;
 }
 
 static inline double get_solved_value(CpuActionPtr cpu_action)
@@ -245,7 +246,7 @@ WorkstationVMHL13::WorkstationVMHL13(WorkstationVMModelPtr model, const char* na
   /* We can assume one core and cas01 cpu for the first step.
    * Do xbt_lib_set(host_lib, name, SURF_CPU_LEVEL, cpu) if you get the resource. */
 
-  p_cpu = static_cast<CpuCas01ModelPtr>(surf_cpu_model_vm)->createResource(name, // name
+  p_cpu = static_cast<CpuCas01ModelPtr>(surf_cpu_model_vm)->createCpu(name, // name
       sub_cpu->getPowerPeakList(),        // host->power_peak,
       sub_cpu->getPState(),
       1,                          // host->power_scale,
index 24d6175..a17605c 100644 (file)
@@ -13,8 +13,6 @@
 #define GUESTOS_NOISE 100 // This value corresponds to the cost of the global action associated to the VM
                           // It corresponds to the cost of a VM running no tasks.
 
-void surf_vm_workstation_model_init(void);
-
 /***********
  * Classes *
  ***********/
@@ -25,10 +23,6 @@ typedef WorkstationVMHL13Model *WorkstationVMHL13ModelPtr;
 class WorkstationVMHL13;
 typedef WorkstationVMHL13 *WorkstationVMHL13Ptr;
 
-/*********
- * Tools *
- *********/
-
 /*********
  * Model *
  *********/
@@ -36,7 +30,8 @@ class WorkstationVMHL13Model : public WorkstationVMModel {
 public:
   WorkstationVMHL13Model();
   ~WorkstationVMHL13Model(){};
-  void createResource(const char *name, void *ind_phys_workstation);
+
+  WorkstationVMPtr createWorkstationVM(const char *name, surf_resource_t ind_phys_workstation);
   double shareResources(double now);
   void adjustWeightOfDummyCpuActions() {};
   ActionPtr communicate(WorkstationPtr src, WorkstationPtr dst, double size, double rate);
index 66a3e9d..4479a7f 100644 (file)
@@ -12,8 +12,6 @@
 #define GUESTOS_NOISE 100 // This value corresponds to the cost of the global action associated to the VM
                           // It corresponds to the cost of a VM running no tasks.
 
-void surf_vm_workstation_model_init(void);
-
 /***********
  * Classes *
  ***********/
@@ -68,15 +66,16 @@ public:
    */
   ~WorkstationVMModel(){};
 
+  WorkstationPtr createWorkstation(const char *name){DIE_IMPOSSIBLE;}
+
   /**
    * @brief Create a new WorkstationVM
-   * 
+   *
    * @param name The name of the new WorkstationVM
    * @param ind_phys_workstation The workstation hosting the VM
-   * 
+   *
    */
-  virtual void createResource(const char *name, void *ind_phys_workstation)=0;
-
+  virtual WorkstationVMPtr createWorkstationVM(const char *name, surf_resource_t ind_phys_workstation)=0;
   void adjustWeightOfDummyCpuActions() {};
 
   typedef boost::intrusive::list<WorkstationVM,
@@ -98,7 +97,7 @@ class WorkstationVM : public Workstation,
 public:
   /**
    * @brief WorkstationVM consrtructor
-   * 
+   *
    * @param model WorkstationModel associated to this Workstation
    * @param name The name of the Workstation
    * @param props Dictionary of properties associated to this Workstation
@@ -137,7 +136,7 @@ public:
 
   /**
    * @brief Migrate the VM to the destination host
-   * 
+   *
    * @param ind_vm_ws_dest The destination host
    */
   virtual void migrate(surf_resource_t ind_vm_ws_dest)=0;
index 254c1d1..10dd2e6 100644 (file)
@@ -15,10 +15,6 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_workstation);
  * CallBacks *
  *************/
 
-static void workstation_new(sg_platf_host_cbarg_t host){
-  reinterpret_cast<WorkstationCLM03ModelPtr>(surf_workstation_model)->createResource(host->id);
-}
-
 /*********
  * Model *
  *********/
@@ -34,7 +30,7 @@ void surf_workstation_model_init_current_default(void)
   ModelPtr model = static_cast<ModelPtr>(surf_workstation_model);
   xbt_dynar_push(model_list, &model);
   xbt_dynar_push(model_list_invoke, &model);
-  sg_platf_host_add_cb(workstation_new);
+  sg_platf_host_add_cb(workstation_parse_init);
 }
 
 void surf_workstation_model_init_compound()
@@ -47,7 +43,7 @@ void surf_workstation_model_init_compound()
   ModelPtr model = static_cast<ModelPtr>(surf_workstation_model);
   xbt_dynar_push(model_list, &model);
   xbt_dynar_push(model_list_invoke, &model);
-  sg_platf_host_add_cb(workstation_new);
+  sg_platf_host_add_cb(workstation_parse_init);
 }
 
 WorkstationCLM03Model::WorkstationCLM03Model()
@@ -58,12 +54,7 @@ WorkstationCLM03Model::WorkstationCLM03Model()
 WorkstationCLM03Model::~WorkstationCLM03Model()
 {}
 
-void WorkstationCLM03Model::parseInit(sg_platf_host_cbarg_t host){
-  createResource(host->id);
-}
-
-WorkstationPtr WorkstationCLM03Model::createResource(const char *name){
-
+WorkstationPtr WorkstationCLM03Model::createWorkstation(const char *name){
   WorkstationPtr workstation = new WorkstationCLM03(surf_workstation_model, name, NULL,
                  (xbt_dynar_t)xbt_lib_get_or_null(storage_lib, name, ROUTING_STORAGE_HOST_LEVEL),
                  (RoutingEdgePtr)xbt_lib_get_or_null(host_lib, name, ROUTING_HOST_LEVEL),
index f471b16..88b4854 100644 (file)
@@ -33,8 +33,7 @@ class WorkstationCLM03Model : public WorkstationModel {
 public:
   WorkstationCLM03Model();
   ~WorkstationCLM03Model();
-  void parseInit(sg_platf_host_cbarg_t host);
-  WorkstationPtr createResource(const char *name);
+  WorkstationPtr createWorkstation(const char *name);
   double shareResources(double now);
 
   void updateActionsState(double now, double delta);
index 70f949c..afd4bd1 100644 (file)
@@ -25,6 +25,15 @@ surf_callback(void, WorkstationPtr) workstationDestructedCallbacks;
 surf_callback(void, WorkstationPtr, e_surf_resource_state_t, e_surf_resource_state_t) workstationStateChangedCallbacks;
 surf_callback(void, WorkstationActionPtr, e_surf_action_state_t, e_surf_action_state_t) workstationActionStateChangedCallbacks;
 
+void workstation_parse_init(sg_platf_host_cbarg_t host)
+{
+  surf_workstation_model->createWorkstation(host->id);
+}
+
+void workstation_add_traces(){
+  surf_workstation_model->addTraces();
+}
+
 /*********
  * Model *
  *********/
index 0d50aff..6b0b975 100644 (file)
@@ -57,6 +57,8 @@ extern surf_callback(void, WorkstationActionPtr, e_surf_action_state_t, e_surf_a
  * Tools *
  *********/
 extern WorkstationModelPtr surf_workstation_model;
+XBT_PUBLIC(void) workstation_parse_init(sg_platf_host_cbarg_t host);
+XBT_PUBLIC(void) workstation_add_traces();
 
 /*********
  * Model *
@@ -84,6 +86,9 @@ public:
    */
   ~WorkstationModel();
 
+  virtual WorkstationPtr createWorkstation(const char *name)=0;
+  void addTraces(){DIE_IMPOSSIBLE;}
+
   /**
    * @brief [brief description]
    * @details [long description]
index 30e25d4..0bc8e02 100644 (file)
@@ -14,13 +14,45 @@ static int ptask_host_count = 0;
 static xbt_dict_t ptask_parallel_task_link_set = NULL;
 lmm_system_t ptask_maxmin_system = NULL;
 
+
+/**************************************/
+/*** Resource Creation & Destruction **/
+/**************************************/
+
+static void ptask_netlink_parse_init(sg_platf_link_cbarg_t link)
+{
+  netlink_parse_init(link);
+  current_property_set = NULL;
+}
+
+static void ptask_define_callbacks()
+{
+  sg_platf_host_add_cb(cpu_parse_init);
+  sg_platf_host_add_cb(workstation_parse_init);
+  sg_platf_link_add_cb(ptask_netlink_parse_init);
+  sg_platf_postparse_add_cb(workstation_add_traces);
+}
+
+void surf_workstation_model_init_ptask_L07(void)
+{
+  XBT_INFO("surf_workstation_model_init_ptask_L07");
+  xbt_assert(!surf_cpu_model_pm, "CPU model type already defined");
+  xbt_assert(!surf_network_model, "network model type already defined");
+  ptask_define_callbacks();
+  surf_workstation_model = new WorkstationL07Model();
+  ModelPtr model = surf_workstation_model;
+  xbt_dynar_push(model_list, &model);
+  xbt_dynar_push(model_list_invoke, &model);
+}
+
+
 WorkstationL07Model::WorkstationL07Model() : WorkstationModel("Workstation ptask_L07") {
   if (!ptask_maxmin_system)
        ptask_maxmin_system = lmm_system_new(1);
   surf_workstation_model = NULL;
   surf_network_model = new NetworkL07Model();
   surf_cpu_model_pm = new CpuL07Model();
-  routing_model_create(static_cast<ResourcePtr>(surf_network_model->createResource("__loopback__",
+  routing_model_create(static_cast<ResourcePtr>(surf_network_model->createNetworkLink("__loopback__",
                                                          498000000, NULL,
                                                          0.000015, NULL,
                                                          SURF_RESOURCE_ON, NULL,
@@ -240,12 +272,7 @@ ActionPtr WorkstationL07Model::executeParallelTask(int workstation_nb,
   return static_cast<ActionPtr>(action);
 }
 
-ResourcePtr WorkstationL07Model::createResource(const char *name, double /*power_scale*/,
-                                                double /*power_initial*/,
-                                                tmgr_trace_t /*power_trace*/,
-                                                e_surf_resource_state_t /*state_initial*/,
-                                                tmgr_trace_t /*state_trace*/,
-                                                xbt_dict_t /*cpu_properties*/)
+WorkstationPtr WorkstationL07Model::createWorkstation(const char *name)
 {
   WorkstationL07Ptr wk = NULL;
   xbt_assert(!surf_workstation_resource_priv(surf_workstation_resource_by_name(name)),
@@ -287,7 +314,7 @@ xbt_dynar_t WorkstationL07Model::getRoute(WorkstationPtr src, WorkstationPtr dst
   return route;
 }
 
-CpuPtr CpuL07Model::createResource(const char *name,  xbt_dynar_t powerPeak,
+CpuPtr 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,
@@ -309,7 +336,7 @@ CpuPtr CpuL07Model::createResource(const char *name,  xbt_dynar_t powerPeak,
   return cpu;//FIXME:xbt_lib_get_elm_or_null(host_lib, name);
 }
 
-NetworkLinkPtr NetworkL07Model::createResource(const char *name,
+NetworkLinkPtr NetworkL07Model::createNetworkLink(const char *name,
                                  double bw_initial,
                                  tmgr_trace_t bw_trace,
                                  double lat_initial,
@@ -698,113 +725,3 @@ double WorkstationL07Action::getRemains()
   XBT_OUT();
   return m_remains;
 }
-
-/*FIXME:remove static void ptask_finalize(void)
-{
-  xbt_dict_free(&ptask_parallel_task_link_set);
-
-  delete surf_workstation_model;
-  surf_workstation_model = NULL;
-  delete surf_network_model;
-  surf_network_model = NULL;
-
-  ptask_host_count = 0;
-
-  if (ptask_maxmin_system) {
-    lmm_system_free(ptask_maxmin_system);
-    ptask_maxmin_system = NULL;
-  }
-  }*/
-
-/**************************************/
-/******* Resource Private    **********/
-/**************************************/
-
-/**************************************/
-/*** Resource Creation & Destruction **/
-/**************************************/
-
-static void ptask_parse_workstation_init(sg_platf_host_cbarg_t host)
-{
-  double power_peak = xbt_dynar_get_as(host->power_peak, host->pstate, double);
-  //cpu->power_peak = power_peak;
-  xbt_dynar_free(&(host->power_peak));  /* kill memory leak */
-  static_cast<WorkstationL07ModelPtr>(surf_workstation_model)->createResource(
-      host->id,
-      power_peak,
-      host->power_scale,
-      host->power_trace,
-      host->initial_state,
-      host->state_trace,
-      host->properties);
-}
-
-static void ptask_parse_link_init(sg_platf_link_cbarg_t link)
-{
-  if (link->policy == SURF_LINK_FULLDUPLEX) {
-    char *link_id;
-    link_id = bprintf("%s_UP", link->id);
-    static_cast<NetworkL07ModelPtr>(surf_network_model)->createResource(link_id,
-                               link->bandwidth,
-                               link->bandwidth_trace,
-                               link->latency,
-                               link->latency_trace,
-                               link->state,
-                               link->state_trace,
-                               link->policy,
-                               link->properties);
-    xbt_free(link_id);
-    link_id = bprintf("%s_DOWN", link->id);
-    static_cast<NetworkL07ModelPtr>(surf_network_model)->createResource(link_id,
-                               link->bandwidth,
-                               link->bandwidth_trace,
-                               link->latency,
-                               link->latency_trace,
-                               link->state,
-                               link->state_trace,
-                               link->policy,
-                               NULL); /* FIXME: We need to deep copy the
-                                       * properties or we won't be able to free
-                                       * it */
-    xbt_free(link_id);
-  } else {
-         static_cast<NetworkL07ModelPtr>(surf_network_model)->createResource(link->id,
-                               link->bandwidth,
-                               link->bandwidth_trace,
-                               link->latency,
-                               link->latency_trace,
-                               link->state,
-                               link->state_trace,
-                               link->policy,
-                               link->properties);
-  }
-
-  current_property_set = NULL;
-}
-
-static void ptask_add_traces(){
-  static_cast<WorkstationL07ModelPtr>(surf_workstation_model)->addTraces();
-}
-
-static void ptask_define_callbacks()
-{
-  sg_platf_host_add_cb(parse_cpu_init);
-  sg_platf_host_add_cb(ptask_parse_workstation_init);
-  sg_platf_link_add_cb(ptask_parse_link_init);
-  sg_platf_postparse_add_cb(ptask_add_traces);
-}
-
-/**************************************/
-/*************** Generic **************/
-/**************************************/
-void surf_workstation_model_init_ptask_L07(void)
-{
-  XBT_INFO("surf_workstation_model_init_ptask_L07");
-  xbt_assert(!surf_cpu_model_pm, "CPU model type already defined");
-  xbt_assert(!surf_network_model, "network model type already defined");
-  ptask_define_callbacks();
-  surf_workstation_model = new WorkstationL07Model();
-  ModelPtr model = static_cast<ModelPtr>(surf_workstation_model);
-  xbt_dynar_push(model_list, &model);
-  xbt_dynar_push(model_list_invoke, &model);
-}
index 7dd2691..364ed78 100644 (file)
@@ -48,12 +48,7 @@ public:
 
   double shareResources(double now);
   void updateActionsState(double now, double delta);
-  ResourcePtr createResource(const char *name, double power_scale,
-                                 double power_initial,
-                                 tmgr_trace_t power_trace,
-                                 e_surf_resource_state_t state_initial,
-                                 tmgr_trace_t state_trace,
-                                 xbt_dict_t cpu_properties);
+  WorkstationPtr createWorkstation(const char *name);
   ActionPtr executeParallelTask(int workstation_nb,
                                         void **workstation_list,
                                         double *computation_amount,
@@ -69,13 +64,7 @@ class CpuL07Model : public CpuModel {
 public:
   CpuL07Model() : CpuModel("cpuL07") {};
   ~CpuL07Model() {surf_cpu_model_pm = NULL;};
-  ResourcePtr createResource(const char *name, double power_scale,
-                                 double power_initial,
-                                 tmgr_trace_t power_trace,
-                                 e_surf_resource_state_t state_initial,
-                                 tmgr_trace_t state_trace,
-                                 xbt_dict_t cpu_properties);
-  CpuPtr createResource(const char *name,  xbt_dynar_t powerPeak,
+  CpuPtr 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,
@@ -90,7 +79,7 @@ class NetworkL07Model : public NetworkModel {
 public:
   NetworkL07Model() : NetworkModel() {};
   ~NetworkL07Model() {surf_network_model = NULL;};
-  NetworkLinkPtr createResource(const char *name,
+  NetworkLinkPtr createNetworkLink(const char *name,
                                                   double bw_initial,
                                                   tmgr_trace_t bw_trace,
                                                   double lat_initial,