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 "simgrid/forward.h" // aid_t
11 #include "src/kernel/actor/SimcallObserver.hpp"
17 class CommSendTransition;
18 class CommRecvTransition;
20 class CommWaitTransition : public Transition {
29 friend CommSendTransition;
30 friend CommRecvTransition;
33 CommWaitTransition(aid_t issuer, int times_considered, char* buffer);
34 std::string to_string(bool verbose) override;
35 bool depends(const Transition* other) const override;
38 class CommRecvTransition : public Transition {
43 CommRecvTransition(aid_t issuer, int times_considered, char* buffer);
44 std::string to_string(bool verbose) override;
45 bool depends(const Transition* other) const override;
48 class CommSendTransition : public Transition {
54 CommSendTransition(aid_t issuer, int times_considered, char* buffer);
55 std::string to_string(bool verbose) override;
56 bool depends(const Transition* other) const override;
59 /** Make a new transition from serialized description */
60 Transition* recv_transition(aid_t issuer, int times_considered, kernel::actor::SimcallObserver::Simcall simcall,
64 } // namespace simgrid