X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ea55b530facfb04b499b016152f739e024445aa4..d66477d0584a740d7e78942eefabc039f467453a:/src/simix/smx_io.cpp diff --git a/src/simix/smx_io.cpp b/src/simix/smx_io.cpp index 3866492b03..96224c608e 100644 --- a/src/simix/smx_io.cpp +++ b/src/simix/smx_io.cpp @@ -4,6 +4,7 @@ /* 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 "src/surf/surf_interface.hpp" #include "smx_private.h" #include "xbt/sysdep.h" #include "xbt/log.h" @@ -61,7 +62,7 @@ smx_synchro_t SIMIX_file_read(smx_file_t fd, sg_size_t size, sg_host_t host) smx_synchro_t synchro; /* check if the host is active */ - if (surf_host_get_state(surf_host_resource_priv(host)) != SURF_RESOURCE_ON) { + if (host->isOff()) { THROWF(host_error, 0, "Host %s failed, you cannot call this function", sg_host_get_name(host)); } @@ -74,7 +75,7 @@ smx_synchro_t SIMIX_file_read(smx_file_t fd, sg_size_t size, sg_host_t host) synchro->io.host = host; synchro->io.surf_io = surf_host_read(host, fd->surf_file, size); - surf_action_set_data(synchro->io.surf_io, synchro); + synchro->io.surf_io->setData(synchro); XBT_DEBUG("Create io synchro %p", synchro); return synchro; @@ -93,7 +94,7 @@ smx_synchro_t SIMIX_file_write(smx_file_t fd, sg_size_t size, sg_host_t host) smx_synchro_t synchro; /* check if the host is active */ - if (surf_host_get_state(surf_host_resource_priv(host)) != SURF_RESOURCE_ON) { + if (host->isOff()) { THROWF(host_error, 0, "Host %s failed, you cannot call this function", sg_host_get_name(host)); } @@ -106,7 +107,7 @@ smx_synchro_t SIMIX_file_write(smx_file_t fd, sg_size_t size, sg_host_t host) synchro->io.host = host; synchro->io.surf_io = surf_host_write(host, fd->surf_file, size); - surf_action_set_data(synchro->io.surf_io, synchro); + synchro->io.surf_io->setData(synchro); XBT_DEBUG("Create io synchro %p", synchro); return synchro; @@ -125,7 +126,7 @@ smx_synchro_t SIMIX_file_open(const char* fullpath, sg_host_t host) smx_synchro_t synchro; /* check if the host is active */ - if (surf_host_get_state(surf_host_resource_priv(host)) != SURF_RESOURCE_ON) { + if (host->isOff()) { THROWF(host_error, 0, "Host %s failed, you cannot call this function", sg_host_get_name(host)); } @@ -138,7 +139,7 @@ smx_synchro_t SIMIX_file_open(const char* fullpath, sg_host_t host) synchro->io.host = host; synchro->io.surf_io = surf_host_open(host, fullpath); - surf_action_set_data(synchro->io.surf_io, synchro); + synchro->io.surf_io->setData(synchro); XBT_DEBUG("Create io synchro %p", synchro); return synchro; @@ -157,7 +158,7 @@ smx_synchro_t SIMIX_file_close(smx_file_t fd, sg_host_t host) smx_synchro_t synchro; /* check if the host is active */ - if (surf_host_get_state(surf_host_resource_priv(host)) != SURF_RESOURCE_ON) { + if (host->isOff()) { THROWF(host_error, 0, "Host %s failed, you cannot call this function", sg_host_get_name(host)); } @@ -170,7 +171,7 @@ smx_synchro_t SIMIX_file_close(smx_file_t fd, sg_host_t host) synchro->io.host = host; synchro->io.surf_io = surf_host_close(host, fd->surf_file); - surf_action_set_data(synchro->io.surf_io, synchro); + synchro->io.surf_io->setData(synchro); XBT_DEBUG("Create io synchro %p", synchro); return synchro; @@ -181,7 +182,7 @@ smx_synchro_t SIMIX_file_close(smx_file_t fd, sg_host_t host) int SIMIX_file_unlink(smx_file_t fd, sg_host_t host) { /* check if the host is active */ - if (surf_host_get_state(surf_host_resource_priv(host)) != SURF_RESOURCE_ON) { + if (host->isOff()) { THROWF(host_error, 0, "Host %s failed, you cannot call this function", sg_host_get_name(host)); } @@ -273,9 +274,7 @@ sg_size_t SIMIX_storage_get_used_size(smx_process_t process, smx_storage_t stora } xbt_dict_t SIMIX_storage_get_properties(smx_storage_t storage){ - xbt_assert((storage != NULL), "Invalid parameters (simix storage is NULL)"); - return (xbt_dict_t) surf_resource_get_properties((surf_cpp_resource_t) - surf_storage_resource_priv(storage)); + return surf_storage_get_properties(storage); } const char* SIMIX_storage_get_name(smx_storage_t storage){ @@ -311,11 +310,13 @@ void SIMIX_post_io(smx_synchro_t synchro) simcall_file_close__set__result(simcall, 0); break; case SIMCALL_FILE_WRITE: - simcall_file_write__set__result(simcall, surf_action_get_cost(synchro->io.surf_io)); + simcall_file_write__set__result(simcall, + synchro->io.surf_io->getCost()); break; case SIMCALL_FILE_READ: - simcall_file_read__set__result(simcall, surf_action_get_cost(synchro->io.surf_io)); + simcall_file_read__set__result(simcall, + synchro->io.surf_io->getCost()); break; default: @@ -323,13 +324,13 @@ void SIMIX_post_io(smx_synchro_t synchro) } } - switch (surf_action_get_state(synchro->io.surf_io)) { + switch (synchro->io.surf_io->getState()) { - case SURF_ACTION_FAILED: + case simgrid::surf::Action::State::failed: synchro->state = SIMIX_FAILED; break; - case SURF_ACTION_DONE: + case simgrid::surf::Action::State::done: synchro->state = SIMIX_DONE; break; @@ -345,7 +346,7 @@ void SIMIX_io_destroy(smx_synchro_t synchro) { XBT_DEBUG("Destroy synchro %p", synchro); if (synchro->io.surf_io) - surf_action_unref(synchro->io.surf_io); + synchro->io.surf_io->unref(); xbt_mallocator_release(simix_global->synchro_mallocator, synchro); } @@ -375,7 +376,7 @@ void SIMIX_io_finish(smx_synchro_t synchro) (int)synchro->state); } - if (surf_host_get_state(surf_host_resource_priv(simcall->issuer->host)) != SURF_RESOURCE_ON) { + if (simcall->issuer->host->isOff()) { simcall->issuer->context->iwannadie = 1; }