Vulkan Schnee
0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
DefaultJsonGenerator.h
Go to the documentation of this file.
1
#pragma once
2
#include <json.hpp>
3
4
#include "
Serializable.h
"
5
6
namespace
EngineCore
{
7
class
Serializable
;
8
}
9
10
namespace
EngineCore
{
11
12
class
DefaultJsonGenerator
{
13
public
:
14
static
DefaultJsonGenerator
&
getInstance
() {
15
static
DefaultJsonGenerator
instance;
16
return
instance;
17
}
18
19
template
<
class
T>
20
nlohmann::json
getDefaultSerialization
() {
21
// Ensure T is derived from Serializable
22
static_assert
(std::is_base_of<Serializable, T>::value,
"T must derive from Serializable"
);
23
24
// Create an instance of T
25
std::shared_ptr<T>
object
= std::make_shared<T>();
26
27
// Serialize the object
28
nlohmann::json archive;
29
object
->Serialize(archive);
30
return
archive;
31
}
32
33
private
:
34
DefaultJsonGenerator
() {};
35
36
// prevent copy
37
DefaultJsonGenerator
(
const
DefaultJsonGenerator
&) =
delete
;
38
DefaultJsonGenerator
&
operator=
(
const
DefaultJsonGenerator
&) =
delete
;
39
};
40
41
}
Serializable.h
EngineCore::DefaultJsonGenerator::DefaultJsonGenerator
DefaultJsonGenerator()
Definition
DefaultJsonGenerator.h:34
EngineCore::DefaultJsonGenerator::getDefaultSerialization
nlohmann::json getDefaultSerialization()
Definition
DefaultJsonGenerator.h:20
EngineCore::DefaultJsonGenerator::getInstance
static DefaultJsonGenerator & getInstance()
Definition
DefaultJsonGenerator.h:14
EngineCore::DefaultJsonGenerator::operator=
DefaultJsonGenerator & operator=(const DefaultJsonGenerator &)=delete
EngineCore::DefaultJsonGenerator::DefaultJsonGenerator
DefaultJsonGenerator(const DefaultJsonGenerator &)=delete
EngineCore::Serializable
Definition
Serializable.h:7
EngineCore
Log category system implementation.
Definition
CameraComponent.cpp:8
Engine
include
Engine
Serialization
DefaultJsonGenerator.h
Generated by
1.14.0