X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0286ae4d1e43c141818b7456b47fd2855643f0e6..d236809e6149a03ef3e53599458f51c98f79f94d:/src/s4u/s4u_Mailbox.cpp diff --git a/src/s4u/s4u_Mailbox.cpp b/src/s4u/s4u_Mailbox.cpp index 23b140ff78..eda04e7c2a 100644 --- a/src/s4u/s4u_Mailbox.cpp +++ b/src/s4u/s4u_Mailbox.cpp @@ -1,14 +1,13 @@ -/* Copyright (c) 2006-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2006-2022. 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. */ -#include "simgrid/s4u/Comm.hpp" -#include "simgrid/s4u/Engine.hpp" -#include "simgrid/s4u/Mailbox.hpp" -#include "src/kernel/activity/MailboxImpl.hpp" - #include +#include +#include + +#include "src/kernel/activity/MailboxImpl.hpp" XBT_LOG_EXTERNAL_CATEGORY(s4u); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_channel, s4u, "S4U Communication Mailboxes"); @@ -33,17 +32,17 @@ Mailbox* Mailbox::by_name(const std::string& name) bool Mailbox::empty() const { - return pimpl_->comm_queue_.empty(); + return pimpl_->empty(); } -unsigned int Mailbox::size() const +size_t Mailbox::size() const { - return pimpl_->comm_queue_.size(); + return pimpl_->size(); } bool Mailbox::listen() const { - return not this->empty() || (pimpl_->permanent_receiver_ && not pimpl_->done_comm_queue_.empty()); + return not pimpl_->empty() || (pimpl_->is_permanent() && pimpl_->has_some_done_comm()); } aid_t Mailbox::listen_from() const @@ -58,18 +57,18 @@ aid_t Mailbox::listen_from() const bool Mailbox::ready() const { bool comm_ready = false; - if (not pimpl_->comm_queue_.empty()) { - comm_ready = pimpl_->comm_queue_.front()->state_ == kernel::activity::State::DONE; + if (not pimpl_->empty()) { + comm_ready = pimpl_->front()->get_state() == kernel::activity::State::DONE; - } else if (pimpl_->permanent_receiver_ && not pimpl_->done_comm_queue_.empty()) { - comm_ready = pimpl_->done_comm_queue_.front()->state_ == kernel::activity::State::DONE; + } else if (pimpl_->is_permanent() && pimpl_->has_some_done_comm()) { + comm_ready = pimpl_->done_front()->get_state() == kernel::activity::State::DONE; } return comm_ready; } kernel::activity::CommImplPtr Mailbox::front() const { - return pimpl_->comm_queue_.empty() ? nullptr : pimpl_->comm_queue_.front(); + return pimpl_->empty() ? nullptr : pimpl_->front(); } void Mailbox::set_receiver(ActorPtr actor) @@ -80,9 +79,9 @@ void Mailbox::set_receiver(ActorPtr actor) /** @brief get the receiver (process associated to the mailbox) */ ActorPtr Mailbox::get_receiver() const { - if (pimpl_->permanent_receiver_ == nullptr) + if (pimpl_->is_permanent()) return ActorPtr(); - return pimpl_->permanent_receiver_->get_iface(); + return pimpl_->get_permanent_receiver()->get_iface(); } CommPtr Mailbox::put_init()