Horizon
src
pool
entity.hpp
1
#pragma once
2
#include "gate.hpp"
3
#include "nlohmann/json_fwd.hpp"
4
#include "unit.hpp"
5
#include "util/uuid.hpp"
6
#include <fstream>
7
#include <map>
8
#include <vector>
9
10
namespace
horizon {
11
using
json
=
nlohmann::json
;
12
13
class
Entity
:
public
UUIDProvider
{
14
private
:
15
Entity
(
const
UUID
&uu,
const
json
&,
class
Pool
&pool);
16
17
public
:
18
Entity
(
const
UUID
&uu);
19
Entity
(
const
UUID
&uu,
const
YAML::Node &n,
Pool
&pool);
20
21
static
Entity
new_from_file(
const
std::string &filename,
Pool
&pool);
22
UUID
uuid;
23
std::string name;
24
std::string manufacturer;
25
std::string prefix;
26
std::set<std::string> tags;
27
std::map<UUID, Gate> gates;
28
void
serialize_yaml(YAML::Emitter &em)
const
;
29
json
serialize()
const
;
30
void
update_refs(
Pool
&pool);
31
UUID
get_uuid()
const
;
32
};
33
}
// namespace horizon
nlohmann::json
basic_json<> json
default JSON class
Definition:
json_fwd.hpp:61
horizon::Entity
Definition:
entity.hpp:13
nlohmann::basic_json
a class to store JSON values
Definition:
json.hpp:161
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition:
uuid.hpp:16
horizon::Pool
Stores objects (Unit, Entity, Symbol, Part, etc.) from the pool.
Definition:
pool.hpp:21
horizon::UUIDProvider
Interface for objects that have a UUID.
Definition:
uuid_provider.hpp:9
Generated by
1.8.16