X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/283236f8e2414d7c30d46e6d1aea0e8882699dd1..2f2ce19fcb66a634c19de8dda2dc4b4896203537:/src/surf/workstation.hpp diff --git a/src/surf/workstation.hpp b/src/surf/workstation.hpp index 3926fba4b6..8ce487e30a 100644 --- a/src/surf/workstation.hpp +++ b/src/surf/workstation.hpp @@ -22,8 +22,8 @@ typedef WorkstationCLM03Lmm *WorkstationCLM03LmmPtr; class WorkstationAction; typedef WorkstationAction *WorkstationActionPtr; -/*FIXME:class WorkstationActionLmm; -typedef WorkstationActionLmm *WorkstationActionLmmPtr;*/ +class WorkstationActionLmm; +typedef WorkstationActionLmm *WorkstationActionLmmPtr; /********* * Tools * @@ -38,18 +38,21 @@ public: WorkstationModel(string name): Model(name) {}; WorkstationModel(); ~WorkstationModel(); - void parseInit(sg_platf_host_cbarg_t host); + 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); - ActionPtr executeParallelTask(int workstation_nb, + virtual ActionPtr executeParallelTask(int workstation_nb, void **workstation_list, double *computation_amount, double *communication_amount, double rate); - xbt_dynar_t getRoute(WorkstationCLM03Ptr src, WorkstationCLM03Ptr dst); - ActionPtr communicate(WorkstationCLM03Ptr src, WorkstationCLM03Ptr dst, double size, 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; }; /************ @@ -62,35 +65,53 @@ public: void updateState(tmgr_trace_event_t event_type, double value, double date); - ActionPtr execute(double size); - ActionPtr sleep(double duration); + virtual ActionPtr execute(double size); + virtual ActionPtr sleep(double duration); e_surf_resource_state_t getState(); - int getCore(); - double getSpeed(double load); - double getAvailableSpeed(); + virtual int getCore(); + virtual double getSpeed(double load); + virtual double getAvailableSpeed(); + virtual double getCurrentPowerPeak(); + virtual double getPowerPeakAt(int pstate_index); + virtual int getNbPstates(); + virtual void setPowerPeakAt(int pstate_index); + virtual double getConsumedEnergy(); xbt_dict_t getProperties(); StoragePtr findStorageOnMountList(const char* storage); + xbt_dict_t getStorageList(); ActionPtr open(const char* mount, const char* path); ActionPtr close(surf_file_t fd); int unlink(surf_file_t fd); ActionPtr ls(const char* mount, const char *path); - size_t getSize(surf_file_t fd); - ActionPtr read(void* ptr, size_t size, surf_file_t fd); - ActionPtr write(const void* ptr, size_t size, surf_file_t fd); + 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_size_t getFreeSize(const char* name); + sg_size_t getUsedSize(const char* name); + bool isUsed(); //bool isShared(); xbt_dynar_t p_storage; 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): WorkstationCLM03(model, name, props, NULL, NULL, NULL){}; + 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){}; e_surf_resource_state_t getState(); };