1 /* Copyright (c) 2015-2022. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #ifndef SIMGRID_MC_TRANSITION_COMM_HPP
8 #define SIMGRID_MC_TRANSITION_COMM_HPP
10 #include "src/kernel/actor/SimcallObserver.hpp"
11 #include "src/mc/Transition.hpp"
18 class CommSendTransition;
19 class CommRecvTransition;
21 class CommWaitTransition : public Transition {
30 friend CommSendTransition;
31 friend CommRecvTransition;
34 CommWaitTransition(aid_t issuer, int times_considered, char* buffer);
35 std::string to_string(bool verbose) override;
36 bool depends(const Transition* other) const override;
39 class CommRecvTransition : public Transition {
44 CommRecvTransition(aid_t issuer, int times_considered, char* buffer);
45 std::string to_string(bool verbose) override;
46 bool depends(const Transition* other) const override;
49 class CommSendTransition : public Transition {
55 CommSendTransition(aid_t issuer, int times_considered, char* buffer);
56 std::string to_string(bool verbose) override;
57 bool depends(const Transition* other) const override;
60 /** Make a new transition from serialized description */
61 Transition* recv_transition(aid_t issuer, int times_considered, kernel::actor::SimcallObserver::Simcall simcall,
65 } // namespace simgrid