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
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git]
/
src
/
surf
/
host_interface.hpp
diff --git
a/src/surf/host_interface.hpp
b/src/surf/host_interface.hpp
index
b451329
..
ed143b8
100644
(file)
--- a/
src/surf/host_interface.hpp
+++ b/
src/surf/host_interface.hpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2004-201
4
. The SimGrid Team.
+/* Copyright (c) 2004-201
5
. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
@@
-9,6
+9,8
@@
#include "cpu_interface.hpp"
#include "network_interface.hpp"
#include "cpu_interface.hpp"
#include "network_interface.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
+18,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
+49,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
+74,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
)=0;
void addTraces(){DIE_IMPOSSIBLE;}
virtual void adjustWeightOfDummyCpuActions();
void addTraces(){DIE_IMPOSSIBLE;}
virtual void adjustWeightOfDummyCpuActions();
@@
-83,8
+94,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:
public:
+ static simgrid::xbt::FacetLevel<simgrid::Host, Host> LEVEL;
+ static void init();
/**
* @brief Host constructor
*
/**
* @brief Host constructor
*
@@
-95,7
+108,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,13
+122,14
@@
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);
/**
@@
-144,7
+158,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
+268,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();
@@
-284,7
+299,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
+310,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_ */