X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8749f7dec702f8afc9a24ac2770f2e2a47dfec62..6daf179640c4438bb442671e641d304acefe263e:/src/kernel/activity/IoImpl.cpp diff --git a/src/kernel/activity/IoImpl.cpp b/src/kernel/activity/IoImpl.cpp index abcc7f8585..8f3071983c 100644 --- a/src/kernel/activity/IoImpl.cpp +++ b/src/kernel/activity/IoImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */ /* 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. */ @@ -6,24 +6,32 @@ #include "src/kernel/activity/IoImpl.hpp" #include "simgrid/kernel/resource/Action.hpp" #include "src/simix/smx_io_private.hpp" +#include "src/surf/StorageImpl.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_io); -simgrid::kernel::activity::IoImpl::IoImpl(std::string name, resource::Action* surf_action, s4u::Storage* storage) - : ActivityImpl(name), storage_(storage), surf_action_(surf_action) +simgrid::kernel::activity::IoImpl::IoImpl(std::string name, simgrid::surf::StorageImpl* storage) + : ActivityImpl(name), storage_(storage) { this->state_ = SIMIX_RUNNING; - surf_action_->set_data(this); - - XBT_DEBUG("Create exec %p", this); + XBT_DEBUG("Create io impl %p", this); } simgrid::kernel::activity::IoImpl::~IoImpl() { if (surf_action_ != nullptr) surf_action_->unref(); - XBT_DEBUG("Destroy exec %p", this); + XBT_DEBUG("Destroy io %p", this); +} + +void simgrid::kernel::activity::IoImpl::start(sg_size_t size, simgrid::s4u::Io::OpType type) +{ + surf_action_ = storage_->io_start(size, type); + surf_action_->set_data(this); + + XBT_DEBUG("Create IO synchro %p %s", this, name_.c_str()); + simgrid::kernel::activity::IoImpl::on_start(this); } void simgrid::kernel::activity::IoImpl::cancel() @@ -71,5 +79,5 @@ void simgrid::kernel::activity::IoImpl::post() /************* * Callbacks * *************/ -simgrid::xbt::signal simgrid::kernel::activity::IoImpl::on_creation; +simgrid::xbt::signal simgrid::kernel::activity::IoImpl::on_start; simgrid::xbt::signal simgrid::kernel::activity::IoImpl::on_completion;