Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MASSIVE cleanup: s/workstation/host/
[simgrid.git] / src / surf / workstation_interface.hpp
diff --git a/src/surf/workstation_interface.hpp b/src/surf/workstation_interface.hpp
deleted file mode 100644 (file)
index 63943e4..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-/* Copyright (c) 2004-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "surf_interface.hpp"
-#include "storage_interface.hpp"
-#include "cpu_interface.hpp"
-#include "network_interface.hpp"
-
-#ifndef SURF_WORKSTATION_INTERFACE_HPP_
-#define SURF_WORKSTATION_INTERFACE_HPP_
-
-/***********
- * Classes *
- ***********/
-
-class WorkstationModel;
-typedef WorkstationModel *WorkstationModelPtr;
-
-class Workstation;
-typedef Workstation *WorkstationPtr;
-
-class WorkstationAction;
-typedef WorkstationAction *WorkstationActionPtr;
-
-/*************
- * Callbacks *
- *************/
-
-/** @ingroup SURF_callbacks
- * @brief Callbacks handler which emit the callbacks after Workstation creation *
- * @details Callback functions have the following signature: `void(WorkstationPtr)`
- */
-XBT_PUBLIC_DATA(surf_callback(void, WorkstationPtr)) workstationCreatedCallbacks;
-
-/** @ingroup SURF_callbacks
- * @brief Callbacks handler which emit the callbacks after Workstation destruction *
- * @details Callback functions have the following signature: `void(WorkstationPtr)`
- */
-XBT_PUBLIC_DATA(surf_callback(void, WorkstationPtr)) workstationDestructedCallbacks;
-
-/** @ingroup SURF_callbacks
- * @brief Callbacks handler which emit the callbacks after Workstation State changed *
- * @details Callback functions have the following signature: `void(WorkstationActionPtr action, e_surf_resource_state_t old, e_surf_resource_state_t current)`
- */
-XBT_PUBLIC_DATA(surf_callback(void, WorkstationPtr, e_surf_resource_state_t, e_surf_resource_state_t)) workstationStateChangedCallbacks;
-
-/** @ingroup SURF_callbacks
- * @brief Callbacks handler which emit the callbacks after WorkstationAction State changed *
- * @details Callback functions have the following signature: `void(WorkstationActionPtr action, e_surf_resource_state_t old, e_surf_resource_state_t current)`
- */
-XBT_PUBLIC_DATA(surf_callback(void, WorkstationActionPtr, e_surf_action_state_t, e_surf_action_state_t)) workstationActionStateChangedCallbacks;
-
-/*********
- * Tools *
- *********/
-XBT_PUBLIC_DATA(WorkstationModelPtr) surf_workstation_model;
-XBT_PUBLIC(void) workstation_parse_init(sg_platf_host_cbarg_t host);
-XBT_PUBLIC(void) workstation_add_traces();
-
-/*********
- * Model *
- *********/
-/** @ingroup SURF_workstation_interface
- * @brief SURF Workstation model interface class
- * @details A model is an object which handle the interactions between its Resources and its Actions
- */
-class WorkstationModel : public Model {
-public:
-    /**
-   * @brief WorkstationModel constructor
-   *
-   * @param name the name of the model
-   */
-  WorkstationModel(const char *name);
-
-  /**
-   * @brief WorkstationModel constructor
-   */
-  WorkstationModel();
-
-  /**
-   * @brief WorkstationModel destructor
-   */
-  ~WorkstationModel();
-
-  virtual WorkstationPtr createWorkstation(const char *name)=0;
-  void addTraces(){DIE_IMPOSSIBLE;}
-
-  /**
-   * @brief [brief description]
-   * @details [long description]
-   */
-  virtual void adjustWeightOfDummyCpuActions();
-
-  /**
-   * @brief [brief description]
-   * @details [long description]
-   *
-   * @param workstation_nb [description]
-   * @param workstation_list [description]
-   * @param flops_amount [description]
-   * @param bytes_amount [description]
-   * @param rate [description]
-   * @return [description]
-   */
-  virtual ActionPtr executeParallelTask(int workstation_nb,
-                                        void **workstation_list,
-                                        double *flops_amount,
-                                        double *bytes_amount,
-                                        double rate)=0;
-
- /**
-  * @brief [brief description]
-  * @details [long description]
-  *
-  * @param src [description]
-  * @param dst [description]
-  * @param size [description]
-  * @param rate [description]
-  * @return [description]
-  */
- virtual ActionPtr communicate(WorkstationPtr src, WorkstationPtr dst, double size, double rate)=0;
-
- CpuModelPtr p_cpuModel;
-};
-
-/************
- * Resource *
- ************/
-/** @ingroup SURF_workstation_interface
- * @brief SURF Workstation interface class
- * @details A workstation VM represent an virtual machine with a aggregation of a Cpu, a NetworkLink and a Storage
- */
-class Workstation : public Resource {
-public:
-  /**
-   * @brief Workstation constructor
-   */
-  Workstation();
-
-  /**
-   * @brief Workstation constructor
-   *
-   * @param model WorkstationModel associated to this Workstation
-   * @param name The name of the Workstation
-   * @param props Dictionary of properties associated to this Workstation
-   * @param storage The Storage associated to this Workstation
-   * @param netElm The RoutingEdge associated to this Workstation
-   * @param cpu The Cpu associated to this Workstation
-   */
-  Workstation(ModelPtr model, const char *name, xbt_dict_t props,
-                     xbt_dynar_t storage, RoutingEdgePtr netElm, CpuPtr cpu);
-
-  /**
-   * @brief Workstation constructor
-   *
-   * @param model WorkstationModel associated to this Workstation
-   * @param name The name of the Workstation
-   * @param props Dictionary of properties associated to this Workstation
-   * @param constraint The lmm constraint associated to this Workstation if it is part of a LMM component
-   * @param storage The Storage associated to this Workstation
-   * @param netElm The RoutingEdge associated to this Workstation
-   * @param cpu The Cpu associated to this Workstation
-   */
-  Workstation(ModelPtr model, const char *name, xbt_dict_t props,
-      lmm_constraint_t constraint, xbt_dynar_t storage, RoutingEdgePtr netElm,
-      CpuPtr cpu);
-
-  /**
-   * @brief Workstation destructor
-   */
-  ~ Workstation();
-
-  void setState(e_surf_resource_state_t state);
-
-  /**
-   * @brief Get the properties of the currenrt Workstation
-   *
-   * @return The properties of the current Workstation
-   */
-  xbt_dict_t getProperties();
-
-  /**
-   * @brief Execute some quantity of computation
-   *
-   * @param flops_amount The value of the processing amount (in flop) needed to process
-   * @return The CpuAction corresponding to the processing
-   * @see Cpu
-   */
-  virtual ActionPtr execute(double flops_amount)=0;
-
-  /**
-   * @brief Make a process sleep for duration seconds
-   *
-   * @param duration The number of seconds to sleep
-   * @return The CpuAction corresponding to the sleeping
-   * @see Cpu
-   */
-  virtual ActionPtr sleep(double duration)=0;
-
-  /**
-   * @brief Get the number of cores of the associated Cpu
-   *
-   * @return The number of cores of the associated Cpu
-   * @see Cpu
-   */
-  virtual int getCore();
-
-  /**
-   * @brief Get the speed of the associated Cpu
-   *
-   * @param load [TODO]
-   * @return The speed of the associated Cpu
-   * @see Cpu
-   */
-  virtual double getSpeed(double load);
-
-  /**
-   * @brief Get the available speed of the associated Cpu
-   * @details [TODO]
-   *
-   * @return The available speed of the associated Cpu
-   * @see Cpu
-   */
-  virtual double getAvailableSpeed();
-
-  /**
-   * @brief Get the associated Cpu power peak
-   *
-   * @return The associated Cpu power peak
-   * @see Cpu
-   */
-  virtual double getCurrentPowerPeak();
-
-  virtual double getPowerPeakAt(int pstate_index);
-  virtual int getNbPstates();
-  virtual void setPstate(int pstate_index);
-  virtual int  getPstate();
-
-  /**
-   * @brief Return the storage of corresponding mount point
-   *
-   * @param storage The mount point
-   * @return The corresponding Storage
-   */
-  virtual StoragePtr findStorageOnMountList(const char* storage);
-
-  /**
-   * @brief Get the xbt_dict_t of mount_point: Storage
-   *
-   * @return The xbt_dict_t of mount_point: Storage
-   */
-  virtual xbt_dict_t getMountedStorageList();
-
-  /**
-   * @brief Get the xbt_dynar_t of storages attached to the workstation
-   *
-   * @return The xbt_dynar_t of Storage names
-   */
-  virtual xbt_dynar_t getAttachedStorageList();
-
-  /**
-   * @brief Open a file
-   *
-   * @param fullpath The full path to the file
-   *
-   * @return The StorageAction corresponding to the opening
-   */
-  virtual ActionPtr open(const char* fullpath);
-
-  /**
-   * @brief Close a file
-   *
-   * @param fd The file descriptor to close
-   * @return The StorageAction corresponding to the closing
-   */
-  virtual ActionPtr close(surf_file_t fd);
-
-  /**
-   * @brief Unlink a file
-   * @details [long description]
-   *
-   * @param fd [description]
-   * @return [description]
-   */
-  virtual int unlink(surf_file_t fd);
-
-  /**
-   * @brief Get the size in bytes of the file
-   *
-   * @param fd The file descriptor to read
-   * @return The size in bytes of the file
-   */
-  virtual sg_size_t getSize(surf_file_t fd);
-
-  /**
-   * @brief Read a file
-   *
-   * @param fd The file descriptor to read
-   * @param size The size in bytes to read
-   * @return The StorageAction corresponding to the reading
-   */
-  virtual ActionPtr read(surf_file_t fd, sg_size_t size);
-
-  /**
-   * @brief Write a file
-   *
-   * @param fd The file descriptor to write
-   * @param size The size in bytes to write
-   * @return The StorageAction corresponding to the writing
-   */
-  virtual ActionPtr write(surf_file_t fd, sg_size_t size);
-
-  /**
-   * @brief Get the informations of a file descriptor
-   * @details The returned xbt_dynar_t contains:
-   *  - the size of the file,
-   *  - the mount point,
-   *  - the storage name,
-   *  - the storage typeId,
-   *  - the storage content type
-   *
-   * @param fd The file descriptor
-   * @return An xbt_dynar_t with the file informations
-   */
-  virtual xbt_dynar_t getInfo(surf_file_t fd);
-
-  /**
-   * @brief Get the current position of the file descriptor
-   *
-   * @param fd The file descriptor
-   * @return The current position of the file descriptor
-   */
-  virtual sg_size_t fileTell(surf_file_t fd);
-
-  /**
-   * @brief Set the position indicator associated with the file descriptor to a new position
-   * @details [long description]
-   *
-   * @param fd The file descriptor
-   * @param offset The offset from the origin
-   * @param origin Position used as a reference for the offset
-   *  - SEEK_SET: beginning of the file
-   *  - SEEK_CUR: current position indicator
-   *  - SEEK_END: end of the file
-   * @return MSG_OK if successful, otherwise MSG_TASK_CANCELED
-   */
-  virtual int fileSeek(surf_file_t fd, sg_offset_t offset, int origin);
-
-  /**
-   * @brief Move a file to another location on the *same mount point*.
-   * @details [long description]
-   *
-   * @param fd The file descriptor
-   * @param fullpath The new full path
-   * @return MSG_OK if successful, MSG_TASK_CANCELED and a warning if the new
-   * full path is not on the same mount point
-   */
-  virtual int fileMove(surf_file_t fd, const char* fullpath);
-
-  xbt_dynar_t p_storage;
-  RoutingEdgePtr p_netElm;
-  CpuPtr p_cpu;
-  NetworkLinkPtr p_network;
-
-  /**
-   * @brief Get the list of virtual machines on the current Workstation
-   *
-   * @return The list of VMs
-   */
-  xbt_dynar_t getVms();
-
-  /* common with vm */
-  /**
-   * @brief [brief description]
-   * @details [long description]
-   *
-   * @param params [description]
-   */
-  void getParams(ws_params_t params);
-
-  /**
-   * @brief [brief description]
-   * @details [long description]
-   *
-   * @param params [description]
-   */
-  void setParams(ws_params_t params);
-  s_ws_params_t p_params;
-};
-
-/**********
- * Action *
- **********/
-
-/** @ingroup SURF_workstation_interface
- * @brief SURF workstation action interface class
- */
-class WorkstationAction : public Action {
-public:
-  /**
-   * @brief WorkstationAction constructor
-   *
-   * @param model The WorkstationModel associated to this WorkstationAction
-   * @param cost The cost of this WorkstationAction in [TODO]
-   * @param failed [description]
-   */
-  WorkstationAction(ModelPtr model, double cost, bool failed)
-  : Action(model, cost, failed) {}
-
-  /**
-   * @brief WorkstationAction constructor
-   *
-   * @param model The WorkstationModel associated to this WorkstationAction
-   * @param cost The cost of this WorkstationAction in [TODO]
-   * @param failed [description]
-   * @param var The lmm variable associated to this StorageAction if it is part of a LMM component
-   */
-  WorkstationAction(ModelPtr model, double cost, bool failed, lmm_variable_t var)
-  : Action(model, cost, failed, var) {}
-
-  void setState(e_surf_action_state_t state);
-};
-
-
-#endif /* SURF_WORKSTATION_INTERFACE_HPP_ */