Vulkan Schnee
0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Registrar.h
Go to the documentation of this file.
1
// Registrar.h
2
#pragma once
3
#include <plog/Log.h>
4
#include "
Factory.h
"
5
#include "
DefaultJsonGenerator.h
"
6
7
namespace
EngineCore
{
8
9
template
<
typename
T>
10
struct
Registrar
{
11
Registrar
() {
12
std::string typeName =
getTypeName<T>
();
13
14
Factory::registerType
(
15
typeName,
16
[]() -> std::unique_ptr<Serializable> {
return
std::make_unique<T>(); },
17
[]() -> nlohmann::json {
18
PLOGI <<
"Creating default JSON for "
<<
getTypeName<T>
();
19
return
DefaultJsonGenerator::getInstance
().
getDefaultSerialization
<T>();
20
}
21
);
22
23
Factory::addRegisteredType
(typeName);
24
PLOGI <<
"Registered type: "
<< typeName;
25
}
26
};
27
}
DefaultJsonGenerator.h
Factory.h
EngineCore::DefaultJsonGenerator::getDefaultSerialization
nlohmann::json getDefaultSerialization()
Definition
DefaultJsonGenerator.h:20
EngineCore::DefaultJsonGenerator::getInstance
static DefaultJsonGenerator & getInstance()
Definition
DefaultJsonGenerator.h:14
EngineCore::Factory::registerType
static void registerType(const std::string &typeName, CreateFunction creator, JsonFactory jsonFactory)
Definition
Factory.h:20
EngineCore::Factory::addRegisteredType
static void addRegisteredType(const std::string &typeName)
Definition
Factory.h:83
EngineCore
Log category system implementation.
Definition
CameraComponent.cpp:8
EngineCore::getTypeName
std::string getTypeName()
Definition
Factory.h:93
EngineCore::Registrar::Registrar
Registrar()
Definition
Registrar.h:11
Engine
include
Engine
Serialization
Registrar.h
Generated by
1.14.0