#include "simgrid/modelchecker.h"
#include "src/mc/mc_replay.hpp"
#include "src/simix/smx_private.hpp"
+#include <array>
#include <cmath> // isfinite()
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_process);
const char* ActivityImpl::get_state_str() const
{
- switch (state_) {
- case State::WAITING:
- return "WAITING";
-
- case State::READY:
- return "READY";
-
- case State::RUNNING:
- return "RUNNING";
-
- case State::CANCELED:
- return "CANCELED";
-
- case State::FAILED:
- return "FAILED";
-
- case State::DONE:
- return "DONE";
-
- case State::SRC_HOST_FAILURE:
- return "SRC_HOST_FAILURE";
-
- case State::DST_HOST_FAILURE:
- return "DST_HOST_FAILURE";
-
- case State::TIMEOUT:
- return "TIMEOUT";
-
- case State::SRC_TIMEOUT:
- return "SRC_TIMEOUT";
- case State::DST_TIMEOUT:
- return "DST_TIMEOUT";
-
- case State::LINK_FAILURE:
- return "LINK_FAILURE";
- }
- THROW_IMPOSSIBLE;
+ constexpr std::array<const char*, 12> names{{"WAITING", "READY", "RUNNING", "DONE", "CANCELED", "FAILED",
+ "SRC_HOST_FAILURE", "DST_HOST_FAILURE", "TIMEOUT", "SRC_TIMEOUT",
+ "DST_TIMEOUT", "LINK_FAILURE"}};
+ return names[static_cast<int>(state_)];
}
bool ActivityImpl::test()
#include "simgrid/s4u/Engine.hpp"
#include "src/kernel/activity/ActivityImpl.hpp"
+#include <array>
+
XBT_LOG_EXTERNAL_CATEGORY(s4u);
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_activity, s4u, "S4U activities");
const char* Activity::get_state_str() const
{
- switch (state_) {
- case State::INITED:
- return "INITED";
-
- case State::STARTING:
- return "STARTING";
-
- case State::STARTED:
- return "STARTED";
-
- case State::CANCELED:
- return "CANCELED";
-
- case State::FINISHED:
- return "FINISHED";
- }
- THROW_IMPOSSIBLE;
+ constexpr std::array<const char*, 5> names{{"INITED", "STARTING", "STARTED", "CANCELED", "FINISHED"}};
+ return names[static_cast<int>(state_)];
}
double Activity::get_remaining() const