#include "src/surf/HostImpl.hpp"
#include "simgrid/sg_config.h"
+#include "VirtualMachineImpl.hpp"
#include "network_interface.hpp"
-#include "virtual_machine.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_host, surf, "Logging specific to the SURF host module");
void HostModel::adjustWeightOfDummyCpuActions()
{
/* iterate for all virtual machines */
- for (VirtualMachine *ws_vm : VirtualMachine::allVms_) {
+ for (VirtualMachineImpl* ws_vm : VirtualMachineImpl::allVms_) {
Cpu* cpu = ws_vm->piface_->pimpl_cpu;
/************
* Resource *
************/
-HostImpl::HostImpl(simgrid::surf::HostModel* model, const char* name, xbt_dynar_t storage)
- : Resource(model, name), PropertyHolder(nullptr), storage_(storage)
+HostImpl::HostImpl(s4u::Host* host, xbt_dynar_t storage) : PropertyHolder(nullptr), storage_(storage), piface_(host)
{
- params_.ramsize = 0;
-}
-
-HostImpl::HostImpl(simgrid::surf::HostModel* model, const char* name, lmm_constraint_t constraint, xbt_dynar_t storage)
- : Resource(model, name, constraint), PropertyHolder(nullptr), storage_(storage)
-{
- params_.ramsize = 0;
+ piface_->pimpl_ = this;
}
/** @brief use destroy() instead of this destructor */
HostImpl::~HostImpl() = default;
-void HostImpl::attach(simgrid::s4u::Host* host)
-{
- if (piface_ != nullptr)
- xbt_die("Already attached to host %s", host->name().c_str());
- host->pimpl_ = this;
- piface_ = host;
-}
-
simgrid::surf::Storage *HostImpl::findStorageOnMountList(const char* mount)
{
simgrid::surf::Storage *st = nullptr;
s_mount_t mnt;
unsigned int cursor;
- XBT_DEBUG("Search for storage name '%s' on '%s'", mount, getName());
+ XBT_DEBUG("Search for storage name '%s' on '%s'", mount, piface_->name().c_str());
xbt_dynar_foreach(storage_,cursor,mnt){
XBT_DEBUG("See '%s'",mnt.name);
if(!strcmp(mount,mnt.name)){
}
}
if(!st)
- xbt_die("Can't find mount '%s' for '%s'", mount, getName());
+ xbt_die("Can't find mount '%s' for '%s'", mount, piface_->name().c_str());
return st;
}
void **data;
xbt_dynar_t result = xbt_dynar_new(sizeof(void*), nullptr);
xbt_lib_foreach(storage_lib, cursor, key, data) {
- if(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL) != nullptr) {
- simgrid::surf::Storage *storage = static_cast<simgrid::surf::Storage*>(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
- if(!strcmp((const char*)storage->attach_,this->getName())){
- xbt_dynar_push_as(result, void *, (void*)storage->getName());
- }
+ if (xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL) != nullptr) {
+ simgrid::surf::Storage* storage = static_cast<simgrid::surf::Storage*>(
+ xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
+ if (!strcmp((const char*)storage->attach_, piface_->name().c_str())) {
+ xbt_dynar_push_as(result, void*, (void*)storage->getName());
+ }
}
}
return result;
char *file_mount_name = nullptr;
char *mount_name = nullptr;
- XBT_DEBUG("Search for storage name for '%s' on '%s'", fullpath, getName());
+ XBT_DEBUG("Search for storage name for '%s' on '%s'", fullpath, piface_->name().c_str());
xbt_dynar_foreach(storage_,cursor,mnt)
{
XBT_DEBUG("See '%s'",mnt.name);
mount_name[longest_prefix_length] = '\0';
}
else
- xbt_die("Can't find mount point for '%s' on '%s'", fullpath, getName());
+ xbt_die("Can't find mount point for '%s' on '%s'", fullpath, piface_->name().c_str());
XBT_DEBUG("OPEN %s on disk '%s'",path, st->getName());
Action *action = st->open((const char*)mount_name, (const char*)path);
xbt_dynar_t HostImpl::getVms()
{
- xbt_dynar_t dyn = xbt_dynar_new(sizeof(simgrid::surf::VirtualMachine*), nullptr);
+ xbt_dynar_t dyn = xbt_dynar_new(sizeof(simgrid::surf::VirtualMachineImpl*), nullptr);
- for (VirtualMachine *ws_vm : VirtualMachine::allVms_) {
+ for (VirtualMachineImpl* ws_vm : VirtualMachineImpl::allVms_) {
if (this == ws_vm->getPm()->pimpl_)
xbt_dynar_push(dyn, &ws_vm);
}
return dyn;
}
-void HostImpl::getParams(vm_params_t params)
-{
- *params = params_;
-}
-
-void HostImpl::setParams(vm_params_t params)
-{
- /* may check something here. */
- params_ = *params;
-}
-
}}