aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/mapper/MapperRegistry.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-02-08 16:53:51 +0800
committercrupest <crupest@outlook.com>2022-02-08 16:53:51 +0800
commit74bb9cd27242b9320f99ff4d2b50c3051576cc14 (patch)
tree744bac5799c593d1d6f81e7b09581bea626f2cde /include/cru/ui/mapper/MapperRegistry.hpp
parentb90c398de829d1ba5329651d75bae82f5e4085fe (diff)
downloadcru-74bb9cd27242b9320f99ff4d2b50c3051576cc14.tar.gz
cru-74bb9cd27242b9320f99ff4d2b50c3051576cc14.tar.bz2
cru-74bb9cd27242b9320f99ff4d2b50c3051576cc14.zip
...
Diffstat (limited to 'include/cru/ui/mapper/MapperRegistry.hpp')
-rw-r--r--include/cru/ui/mapper/MapperRegistry.hpp58
1 files changed, 0 insertions, 58 deletions
diff --git a/include/cru/ui/mapper/MapperRegistry.hpp b/include/cru/ui/mapper/MapperRegistry.hpp
deleted file mode 100644
index 1c02be49..00000000
--- a/include/cru/ui/mapper/MapperRegistry.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#pragma once
-
-#include "Mapper.hpp"
-
-#include <memory>
-#include <vector>
-
-namespace cru::ui::mapper {
-class CRU_UI_API MapperRegistry {
- public:
- static MapperRegistry* GetInstance();
-
- MapperRegistry();
-
- CRU_DELETE_COPY(MapperRegistry)
- CRU_DELETE_MOVE(MapperRegistry)
-
- ~MapperRegistry();
-
- const std::vector<MapperBase*>& GetAllMappers() const { return mapper_list_; }
-
- template <typename T>
- BasicMapper<T>* GetMapper() const {
- for (auto mapper : mapper_list_) {
- if (mapper->GetTypeIndex() == typeid(T)) {
- return static_cast<BasicMapper<T>*>(mapper);
- }
- }
- return nullptr;
- }
-
- template <typename T>
- BasicRefMapper<T>* GetRefMapper() const {
- return GetMapper<std::shared_ptr<T>>();
- }
-
- template <typename T>
- BasicPtrMapper<T>* GetPtrMapper() const {
- return GetMapper<ClonablePtr<T>>();
- }
-
- template <typename T>
- std::vector<T*> GetMappersByInterface() const {
- std::vector<T*> result;
- for (auto mapper : mapper_list_) {
- auto m = dynamic_cast<T*>(mapper);
- if (m) result.push_back(m);
- }
- return result;
- }
-
- void RegisterMapper(MapperBase* mapper);
- void UnregisterMapper(MapperBase* mapper);
-
- private:
- std::vector<MapperBase*> mapper_list_;
-};
-} // namespace cru::ui::mapper