#pragma once #include #include #include #include #include #include #include #include namespace CurrentStatusInfo { using Status = size_t; using Key = std::string; const char * getName(Status event); const char * getDocumentation(Status event); const std::vector> & getAllPossibleValues(Status event); extern std::unordered_map values[]; extern std::mutex locks[]; Status end(); inline void set(Status status, Key key, Int8 value) { std::lock_guard lock(locks[status]); values[status][key] = value; } inline void unset(Status status, Key key) { std::lock_guard lock(locks[status]); values[status].erase(key); } }