A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[surf] new (abstract) class: PropertyHolder, with only one purpose
[simgrid.git]
/
src
/
surf
/
host_interface.hpp
diff --git
a/src/surf/host_interface.hpp
b/src/surf/host_interface.hpp
index
759cb27
..
2ae6d5d
100644
(file)
--- a/
src/surf/host_interface.hpp
+++ b/
src/surf/host_interface.hpp
@@
-8,6
+8,9
@@
#include "storage_interface.hpp"
#include "cpu_interface.hpp"
#include "network_interface.hpp"
#include "storage_interface.hpp"
#include "cpu_interface.hpp"
#include "network_interface.hpp"
+#include "src/surf/PropertyHolder.hpp"
+
+#include <xbt/base.h>
#ifndef SURF_HOST_INTERFACE_HPP_
#define SURF_HOST_INTERFACE_HPP_
#ifndef SURF_HOST_INTERFACE_HPP_
#define SURF_HOST_INTERFACE_HPP_
@@
-16,9
+19,12
@@
* Classes *
***********/
* Classes *
***********/
-class HostModel;
-class Host;
-class HostAction;
+namespace simgrid {
+namespace surf {
+
+class XBT_PRIVATE HostModel;
+class XBT_PRIVATE Host;
+class XBT_PRIVATE HostAction;
/*************
* Callbacks *
/*************
* Callbacks *
@@
-44,16
+50,22
@@
XBT_PUBLIC_DATA(surf_callback(void, Host*, e_surf_resource_state_t, e_surf_resou
*/
XBT_PUBLIC_DATA(surf_callback(void, HostAction*, e_surf_action_state_t, e_surf_action_state_t)) hostActionStateChangedCallbacks;
*/
XBT_PUBLIC_DATA(surf_callback(void, HostAction*, e_surf_action_state_t, e_surf_action_state_t)) hostActionStateChangedCallbacks;
+}
+}
+
/*********
* Tools *
*********/
/*********
* Tools *
*********/
-XBT_PUBLIC_DATA(HostModel*) surf_host_model;
-XBT_PUBLIC(void) host_parse_init(sg_platf_host_cbarg_t host);
+XBT_PUBLIC_DATA(simgrid::surf::HostModel*) surf_host_model;
XBT_PUBLIC(void) host_add_traces();
/*********
* Model *
*********/
XBT_PUBLIC(void) host_add_traces();
/*********
* Model *
*********/
+
+namespace simgrid {
+namespace surf {
+
/** @ingroup SURF_host_interface
* @brief SURF Host model interface class
* @details A model is an object which handle the interactions between its Resources and its Actions
/** @ingroup SURF_host_interface
* @brief SURF Host model interface class
* @details A model is an object which handle the interactions between its Resources and its Actions
@@
-63,7
+75,7
@@
public:
HostModel() : Model() {}
~HostModel() {}
HostModel() : Model() {}
~HostModel() {}
- virtual Host *createHost(const char *name)=0;
+ virtual Host *createHost(const char *name
, RoutingEdge *net, Cpu *cpu, xbt_dict_t props
)=0;
void addTraces(){DIE_IMPOSSIBLE;}
virtual void adjustWeightOfDummyCpuActions();
void addTraces(){DIE_IMPOSSIBLE;}
virtual void adjustWeightOfDummyCpuActions();
@@
-83,8
+95,10
@@
public:
* @brief SURF Host interface class
* @details An host represents a machine with a aggregation of a Cpu, a Link and a Storage
*/
* @brief SURF Host interface class
* @details An host represents a machine with a aggregation of a Cpu, a Link and a Storage
*/
-class Host : public
Resource
{
+class Host : public
simgrid::surf::Resource, public simgrid::surf::PropertyHolder
{
public:
public:
+ static simgrid::xbt::FacetLevel<simgrid::Host, Host> LEVEL;
+ static void init();
/**
* @brief Host constructor
*
/**
* @brief Host constructor
*
@@
-95,7
+109,7
@@
public:
* @param netElm The RoutingEdge associated to this Host
* @param cpu The Cpu associated to this Host
*/
* @param netElm The RoutingEdge associated to this Host
* @param cpu The Cpu associated to this Host
*/
- Host(Model *model, const char *name, xbt_dict_t props,
+ Host(
simgrid::surf::
Model *model, const char *name, xbt_dict_t props,
xbt_dynar_t storage, RoutingEdge *netElm, Cpu *cpu);
/**
xbt_dynar_t storage, RoutingEdge *netElm, Cpu *cpu);
/**
@@
-109,22
+123,16
@@
public:
* @param netElm The RoutingEdge associated to this Host
* @param cpu The Cpu associated to this Host
*/
* @param netElm The RoutingEdge associated to this Host
* @param cpu The Cpu associated to this Host
*/
- Host(Model *model, const char *name, xbt_dict_t props,
+ Host(
simgrid::surf::
Model *model, const char *name, xbt_dict_t props,
lmm_constraint_t constraint, xbt_dynar_t storage, RoutingEdge *netElm,
Cpu *cpu);
/** @brief Host destructor */
lmm_constraint_t constraint, xbt_dynar_t storage, RoutingEdge *netElm,
Cpu *cpu);
/** @brief Host destructor */
- ~
Host();
+ ~Host();
+ void attach(simgrid::Host* host);
void setState(e_surf_resource_state_t state);
void setState(e_surf_resource_state_t state);
- /**
- * @brief Get the properties of the current Host
- *
- * @return The properties of the current Host
- */
- xbt_dict_t getProperties();
-
/**
* @brief Execute some quantity of computation
*
/**
* @brief Execute some quantity of computation
*
@@
-144,7
+152,7
@@
public:
virtual Action *sleep(double duration)=0;
/** @brief Return the storage of corresponding mount point */
virtual Action *sleep(double duration)=0;
/** @brief Return the storage of corresponding mount point */
- virtual Storage *findStorageOnMountList(const char* storage);
+ virtual
simgrid::surf::
Storage *findStorageOnMountList(const char* storage);
/** @brief Get the xbt_dict_t of mount_point: Storage */
virtual xbt_dict_t getMountedStorageList();
/** @brief Get the xbt_dict_t of mount_point: Storage */
virtual xbt_dict_t getMountedStorageList();
@@
-254,6
+262,7
@@
public:
xbt_dynar_t p_storage;
RoutingEdge *p_netElm;
Cpu *p_cpu;
xbt_dynar_t p_storage;
RoutingEdge *p_netElm;
Cpu *p_cpu;
+ simgrid::Host* p_host = nullptr;
/** @brief Get the list of virtual machines on the current Host */
xbt_dynar_t getVms();
/** @brief Get the list of virtual machines on the current Host */
xbt_dynar_t getVms();
@@
-264,6
+273,7
@@
public:
void getParams(vm_params_t params);
/** @brief Sets the params of that VM/PM */
void setParams(vm_params_t params);
void getParams(vm_params_t params);
/** @brief Sets the params of that VM/PM */
void setParams(vm_params_t params);
+ simgrid::Host* getHost() { return p_host; }
private:
s_vm_params_t p_params;
};
private:
s_vm_params_t p_params;
};
@@
-284,7
+294,7
@@
public:
* @param cost The cost of this HostAction in [TODO]
* @param failed [description]
*/
* @param cost The cost of this HostAction in [TODO]
* @param failed [description]
*/
- HostAction(Model *model, double cost, bool failed)
+ HostAction(
simgrid::surf::
Model *model, double cost, bool failed)
: Action(model, cost, failed) {}
/**
: Action(model, cost, failed) {}
/**
@@
-295,11
+305,13
@@
public:
* @param failed [description]
* @param var The lmm variable associated to this StorageAction if it is part of a LMM component
*/
* @param failed [description]
* @param var The lmm variable associated to this StorageAction if it is part of a LMM component
*/
- HostAction(Model *model, double cost, bool failed, lmm_variable_t var)
+ HostAction(
simgrid::surf::
Model *model, double cost, bool failed, lmm_variable_t var)
: Action(model, cost, failed, var) {}
void setState(e_surf_action_state_t state);
};
: Action(model, cost, failed, var) {}
void setState(e_surf_action_state_t state);
};
+}
+}
#endif /* SURF_Host_INTERFACE_HPP_ */
#endif /* SURF_Host_INTERFACE_HPP_ */