From 211f04eabcce011ec532107a04f75b75c4ee5ca5 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Mon, 17 Oct 2016 22:10:41 +0200 Subject: [PATCH] HOSTIMPL IS NO LONGER A RESOURCE! At least! \o/ --- src/surf/HostImpl.cpp | 23 ++++++++++++----------- src/surf/HostImpl.hpp | 15 ++------------- src/surf/virtual_machine.cpp | 10 +++++----- 3 files changed, 19 insertions(+), 29 deletions(-) diff --git a/src/surf/HostImpl.cpp b/src/surf/HostImpl.cpp index 76fce25f35..5346b02448 100644 --- a/src/surf/HostImpl.cpp +++ b/src/surf/HostImpl.cpp @@ -99,13 +99,13 @@ Action* HostModel::executeParallelTask(int host_nb, simgrid::s4u::Host** host_li * Resource * ************/ HostImpl::HostImpl(simgrid::surf::HostModel* model, const char* name, xbt_dynar_t storage) - : Resource(model, name), PropertyHolder(nullptr), storage_(storage) + : PropertyHolder(nullptr), storage_(storage) { 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) + : PropertyHolder(nullptr), storage_(storage) { params_.ramsize = 0; } @@ -127,7 +127,7 @@ simgrid::surf::Storage *HostImpl::findStorageOnMountList(const char* mount) 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)){ @@ -136,7 +136,7 @@ simgrid::surf::Storage *HostImpl::findStorageOnMountList(const char* mount) } } 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; } @@ -161,11 +161,12 @@ xbt_dynar_t HostImpl::getAttachedStorageList() 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(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( + 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; @@ -181,7 +182,7 @@ Action *HostImpl::open(const char* fullpath) { 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); @@ -206,7 +207,7 @@ Action *HostImpl::open(const char* fullpath) { 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); diff --git a/src/surf/HostImpl.hpp b/src/surf/HostImpl.hpp index 6ae01d5f5c..6050e8ef26 100644 --- a/src/surf/HostImpl.hpp +++ b/src/surf/HostImpl.hpp @@ -63,9 +63,7 @@ public: * @brief SURF Host interface class * @details An host represents a machine with a aggregation of a Cpu, a RoutingEdge and a Storage */ -class HostImpl -: public simgrid::surf::Resource, - public simgrid::surf::PropertyHolder { +class HostImpl : public simgrid::surf::PropertyHolder { public: /** @@ -89,14 +87,9 @@ public: /* Host destruction logic */ /**************************/ - ~HostImpl() override; + virtual ~HostImpl(); public: - // Overload the method for covariant return type: - HostModel *getModel() - { - return static_cast(Resource::getModel()); - } void attach(simgrid::s4u::Host* host); /** @brief Return the storage of corresponding mount point */ @@ -206,10 +199,6 @@ public: */ virtual int fileMove(surf_file_t fd, const char* fullpath); - bool isUsed() override {DIE_IMPOSSIBLE;} // FIXME: Host should not be a Resource - void apply_event(tmgr_trace_iterator_t event, double value) override - {THROW_IMPOSSIBLE;} // FIXME: Host should not be a Resource - public: xbt_dynar_t storage_ = nullptr; simgrid::s4u::Host* piface_ = nullptr; diff --git a/src/surf/virtual_machine.cpp b/src/surf/virtual_machine.cpp index f79808378a..cc3d623bc8 100644 --- a/src/surf/virtual_machine.cpp +++ b/src/surf/virtual_machine.cpp @@ -82,7 +82,8 @@ double VMModel::nextOccuringEvent(double now) xbt_assert(cpu, "cpu-less host"); double solved_value = ws_vm->action_->getVariable()->value; - XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws_vm->getName(), ws_vm->getPm()->name().c_str()); + XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws_vm->piface_->name().c_str(), + ws_vm->getPm()->name().c_str()); // TODO: check lmm_update_constraint_bound() works fine instead of the below manual substitution. // cpu_cas01->constraint->bound = solved_value; @@ -190,13 +191,12 @@ sg_host_t VirtualMachine::getPm() { /* Update the physical host of the given VM */ void VirtualMachine::migrate(sg_host_t host_dest) { - HostImpl* surfHost_dst = host_dest->pimpl_; - const char* vm_name = getName(); + const char* vm_name = piface_->name().c_str(); const char* pm_name_src = hostPM_->name().c_str(); - const char* pm_name_dst = surfHost_dst->getName(); + const char* pm_name_dst = host_dest->name().c_str(); /* update net_elm with that of the destination physical host */ - sg_host_by_name(vm_name)->pimpl_netcard = sg_host_by_name(pm_name_dst)->pimpl_netcard; + piface_->pimpl_netcard = host_dest->pimpl_netcard; hostPM_ = host_dest; -- 2.20.1