Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Handle simcall result through mc::SimcallObserver.
[simgrid.git] / src / mc / mc_pattern.hpp
index 6909e11..79bcd24 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;
@@ -80,7 +78,7 @@ public:
   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;