SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
RttiDatabase.h
1#pragma once
2
3#include "spark/rtti/Export.h"
4#include "spark/rtti/RttiBase.h"
5
6#include <memory>
7#include <string>
8#include <unordered_map>
9
10template <typename Type, typename... ParentTypes>
11class Rtti;
12
13namespace spark::rtti
14{
15 class SPARK_RTTI_EXPORT RttiDatabase
16 {
17 template <typename Type, typename... ParentTypes>
18 friend class Rtti;
19
20 public:
26 static RttiBase* Get(const std::string& class_name);
27
28 private:
35 template <typename Type, typename... BaseTypes>
36 static Rtti<Type, BaseTypes...>& get();
37
41 static std::unordered_map<std::string, std::unique_ptr<RttiBase>>& dataStorage();
42 };
43}
44
45#include "spark/rtti/impl/RttiDatabase.h"
Definition RttiDatabase.h:11
The abstract class used as base for the RTTI data.
Definition RttiBase.h:16
Definition RttiDatabase.h:16
The RTTI object containing all the needed data.
Definition Rtti.h:16