diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/MemoryManager.cpp | 24 | ||||
| -rw-r--r-- | src/common/MemoryManager.hpp | 23 |
2 files changed, 47 insertions, 0 deletions
diff --git a/src/common/MemoryManager.cpp b/src/common/MemoryManager.cpp new file mode 100644 index 0000000..d4fd068 --- /dev/null +++ b/src/common/MemoryManager.cpp @@ -0,0 +1,24 @@ +#include <common/MemoryManager.hpp> + +std::vector<std::u32string> MemoryManager::s_frame_string32s; + +std::u32string& +MemoryManager::GetString32(String32Id id) +{ + return s_frame_string32s[id]; +} + +String32Id +MemoryManager::EmplaceString32_Frame(std::u32string&& str) +{ + String32Id id = static_cast<String32Id>(s_frame_string32s.size()); + s_frame_string32s.emplace_back(str); + return id; +} + +void +MemoryManager::Clear_Frame() +{ + s_frame_string32s.clear(); +} + diff --git a/src/common/MemoryManager.hpp b/src/common/MemoryManager.hpp new file mode 100644 index 0000000..59c31d7 --- /dev/null +++ b/src/common/MemoryManager.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include <common/defs.hpp> + +#include <string> +#include <vector> + + +using String32Id = uint32_t; + + +class MemoryManager { +public: + static std::u32string& GetString32(String32Id id); + + static String32Id EmplaceString32_Frame(std::u32string&& str); + static void Clear_Frame(); + + +private: + static std::vector<std::u32string> s_frame_string32s; +}; + |
