Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
No vm when ptask on
[simgrid.git] / src / surf / workstation.hpp
index 08940e0..126757d 100644 (file)
@@ -41,6 +41,8 @@ public:
   virtual void parseInit(sg_platf_host_cbarg_t host);
   WorkstationCLM03Ptr createResource(string name);
   double shareResources(double now);
+  virtual void adjustWeightOfDummyCpuActions();
+
   void updateActionsState(double now, double delta);
 
   virtual ActionPtr executeParallelTask(int workstation_nb,
@@ -50,6 +52,7 @@ public:
                                         double rate);
  virtual xbt_dynar_t getRoute(WorkstationCLM03Ptr src, WorkstationCLM03Ptr dst);
  virtual ActionPtr communicate(WorkstationCLM03Ptr src, WorkstationCLM03Ptr dst, double size, double rate);
+ CpuModelPtr p_cpuModel;
 };
 
 /************
@@ -83,12 +86,12 @@ public:
   ActionPtr close(surf_file_t fd);
   int unlink(surf_file_t fd);
   ActionPtr ls(const char* mount, const char *path);
-  sg_storage_size_t getSize(surf_file_t fd);
-  ActionPtr read(surf_file_t fd, sg_storage_size_t size);
-  ActionPtr write(surf_file_t fd, sg_storage_size_t size);
+  sg_size_t getSize(surf_file_t fd);
+  ActionPtr read(surf_file_t fd, sg_size_t size);
+  ActionPtr write(surf_file_t fd, sg_size_t size);
   xbt_dynar_t getInfo( surf_file_t fd);
-  sg_storage_size_t getFreeSize(const char* name);
-  sg_storage_size_t getUsedSize(const char* name);
+  sg_size_t getFreeSize(const char* name);
+  sg_size_t getUsedSize(const char* name);
 
   bool isUsed();
   //bool isShared();
@@ -96,9 +99,16 @@ public:
   RoutingEdgePtr p_netElm;
   CpuPtr p_cpu;
   NetworkCm02LinkPtr p_network;
+
+  xbt_dynar_t getVms();
+
+  /* common with vm */
+  void getParams(ws_params_t params);
+  void setParams(ws_params_t params);
+  s_ws_params_t p_params;
 };
 
-class WorkstationCLM03Lmm : public WorkstationCLM03, public ResourceLmm {
+class WorkstationCLM03Lmm : virtual public WorkstationCLM03, public ResourceLmm {
 public:
   WorkstationCLM03Lmm(WorkstationModelPtr model, const char* name, xbt_dict_t props, xbt_dynar_t storage, RoutingEdgePtr netElm, CpuPtr cpu):
          WorkstationCLM03(model, name, props, storage, netElm, cpu){};