Files
PorygonLang/src/UserData/UserDataStorage.hpp
Deukhoofd fde102d954
Some checks failed
continuous-integration/drone/push Build is failing
Added namespaces to most classes, general cleanup
2019-06-17 18:35:12 +02:00

33 lines
908 B
C++

#ifndef PORYGONLANG_USERDATASTORAGE_HPP
#define PORYGONLANG_USERDATASTORAGE_HPP
#include <unordered_map>
#include "UserData.hpp"
namespace Porygon::UserData {
class UserDataStorage {
class _internalDataStorage {
public:
std::unordered_map<uint32_t, shared_ptr<UserData>> _userData;
};
static _internalDataStorage _internal;
public:
static void RegisterType(uint32_t i, UserData *ud) {
UserDataStorage::_internal._userData.insert({i, shared_ptr<UserData>(ud)});
}
static bool HasUserDataType(uint32_t i) {
return UserDataStorage::_internal._userData.find(i) != UserDataStorage::_internal._userData.end();
}
static shared_ptr<UserData> GetUserDataType(uint32_t i) {
return UserDataStorage::_internal._userData[i];
}
};
}
#endif //PORYGONLANG_USERDATASTORAGE_HPP