#include "surf.hpp"
-#include "storage.hpp"
-#include "cpu.hpp"
-#include "network.hpp"
+#include "storage_interface.hpp"
+#include "cpu_interface.hpp"
+#include "network_interface.hpp"
#ifndef WORKSTATION_HPP_
#define WORKSTATION_HPP_
class WorkstationAction;
typedef WorkstationAction *WorkstationActionPtr;
-/*FIXME:class WorkstationActionLmm;
-typedef WorkstationActionLmm *WorkstationActionLmmPtr;*/
+class WorkstationActionLmm;
+typedef WorkstationActionLmm *WorkstationActionLmmPtr;
/*********
* Tools *
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,
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;
};
/************
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 fileTell(surf_file_t fd);
+ sg_size_t getFreeSize(const char* name);
+ sg_size_t getUsedSize(const char* name);
+ int fileSeek(surf_file_t fd, sg_size_t offset, int origin);
bool isUsed();
//bool isShared();
xbt_dynar_t p_storage;
RoutingEdgePtr p_netElm;
CpuPtr p_cpu;
- NetworkCm02LinkPtr p_network;
+ NetworkLinkPtr 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){};