X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/39c935d6d5ee86d153f6f7e6a10d723ae7c57f6f..3580b0137eab12ca216d9847823c86918b10dd53:/src/mc/mc_pattern.hpp diff --git a/src/mc/mc_pattern.hpp b/src/mc/mc_pattern.hpp index 1a898bc9bb..a901c14b2d 100644 --- a/src/mc/mc_pattern.hpp +++ b/src/mc/mc_pattern.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-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. */ @@ -7,50 +7,11 @@ #define SIMGRID_MC_PATTERN_H #include "src/kernel/activity/CommImpl.hpp" +#include "src/mc/remote/RemotePtr.hpp" namespace simgrid { namespace mc { -enum class PatternCommunicationType { - none = 0, - send = 1, - receive = 2, -}; - -class PatternCommunication { -public: - int num = 0; - simgrid::kernel::activity::CommImpl* comm_addr; - PatternCommunicationType type = PatternCommunicationType::send; - unsigned long src_proc = 0; - unsigned long dst_proc = 0; - const char* src_host = nullptr; - const char* dst_host = nullptr; - std::string rdv; - std::vector data; - int tag = 0; - int index = 0; - - PatternCommunication() { std::memset(&comm_addr, 0, sizeof(comm_addr)); } - - PatternCommunication dup() const - { - simgrid::mc::PatternCommunication res; - // num? - res.comm_addr = this->comm_addr; - res.type = this->type; - // src_proc? - // dst_proc? - res.dst_proc = this->dst_proc; - res.dst_host = this->dst_host; - res.rdv = this->rdv; - res.data = this->data; - // tag? - res.index = this->index; - return res; - } -}; - /* On every state, each actor has an entry of the following type. * This represents both the actor and its transition because * an actor cannot have more than one enabled transition at a given time. @@ -69,23 +30,25 @@ class ActorState { }; /** Exploration control information */ - InterleavingType state = InterleavingType::disabled; + InterleavingType state_ = InterleavingType::disabled; -public: /** Number of times that the process was considered to be executed */ - // TODO, make this private - unsigned int times_considered = 0; + unsigned int times_considered_ = 0; + +public: + unsigned int get_times_considered() const { return times_considered_; } + unsigned int get_times_considered_and_inc() { return times_considered_++; } - bool is_disabled() const { return this->state == InterleavingType::disabled; } - bool is_done() const { return this->state == InterleavingType::done; } - bool is_todo() const { return this->state == InterleavingType::todo; } + bool is_disabled() const { return this->state_ == InterleavingType::disabled; } + bool is_done() const { return this->state_ == InterleavingType::done; } + bool is_todo() const { return this->state_ == InterleavingType::todo; } /** Mark that we should try executing this process at some point in the future of the checker algorithm */ - void consider() + void mark_todo() { - this->state = InterleavingType::todo; - this->times_considered = 0; + this->state_ = InterleavingType::todo; + this->times_considered_ = 0; } - void set_done() { this->state = InterleavingType::done; } + void set_done() { this->state_ = InterleavingType::done; } }; } // namespace mc