Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make field 'mc::ActorState::times_considered' private.
[simgrid.git] / src / mc / mc_pattern.hpp
index 6909e11..bb26c9d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2021. 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. */
@@ -20,19 +20,17 @@ enum class PatternCommunicationType {
 class PatternCommunication {
 public:
   int num = 0;
-  simgrid::kernel::activity::CommImpl* comm_addr;
+  RemotePtr<simgrid::kernel::activity::CommImpl> comm_addr{nullptr};
   PatternCommunicationType type = PatternCommunicationType::send;
   unsigned long src_proc        = 0;
   unsigned long dst_proc        = 0;
-  const char* src_host          = nullptr;
-  const char* dst_host          = nullptr;
+  const xbt::string* src_host   = nullptr;
+  const xbt::string* dst_host   = nullptr;
   std::string rdv;
   std::vector<char> data;
   int tag   = 0;
   int index = 0;
 
-  PatternCommunication() { std::memset(&comm_addr, 0, sizeof(comm_addr)); }
-
   PatternCommunication dup() const
   {
     simgrid::mc::PatternCommunication res;
@@ -69,23 +67,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