X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b7630a950a6b865fcc195c58e39e6c3cfa550ccb..d66477d0584a740d7e78942eefabc039f467453a:/src/simix/smx_io.cpp diff --git a/src/simix/smx_io.cpp b/src/simix/smx_io.cpp index 9bac80e889..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 (host->getState() != 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 (host->getState() != 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 (host->getState() != 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 (host->getState() != 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 (host->getState() != SURF_RESOURCE_ON) { + if (host->isOff()) { THROWF(host_error, 0, "Host %s failed, you cannot call this function", sg_host_get_name(host)); } @@ -309,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: @@ -321,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; @@ -343,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); } @@ -373,7 +376,7 @@ void SIMIX_io_finish(smx_synchro_t synchro) (int)synchro->state); } - if (simcall->issuer->host->getState() != SURF_RESOURCE_ON) { + if (simcall->issuer->host->isOff()) { simcall->issuer->context->iwannadie = 1; }