Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use XBT_DECLARE_ENUM_CLASS for s4u::Activity::State.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 5 Feb 2021 14:43:50 +0000 (15:43 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 5 Feb 2021 14:48:42 +0000 (15:48 +0100)
include/simgrid/s4u/Activity.hpp
src/s4u/s4u_Activity.cpp

index 22fa0a7..ab1e57b 100644 (file)
@@ -13,6 +13,7 @@
 #include <string>
 #include <vector>
 #include <xbt/signal.hpp>
+#include <xbt/utility.hpp>
 
 XBT_LOG_EXTERNAL_CATEGORY(s4u_activity);
 
@@ -69,7 +70,8 @@ public:
   Activity& operator=(Activity const&) = delete;
 #endif
 
-  enum class State { INITED = 0, STARTING, STARTED, CANCELED, FINISHED };
+  // enum class State { ... }
+  XBT_DECLARE_ENUM_CLASS(State, INITED, STARTING, STARTED, CANCELED, FINISHED);
 
   /** Starts a previously created activity.
    *
index 8845969..21efeb9 100644 (file)
@@ -69,8 +69,7 @@ Activity* Activity::resume()
 
 const char* Activity::get_state_str() const
 {
-  constexpr std::array<const char*, 5> names{{"INITED", "STARTING", "STARTED", "CANCELED", "FINISHED"}};
-  return names[static_cast<int>(state_)];
+  return to_c_str(state_);
 }
 
 double Activity::get_remaining() const