Cogs.Core
Source
Services
DeferredNameResolution.h
1
#pragma once
2
#include "Base.h"
3
4
#include "Foundation/ComponentModel/Component.h"
5
#include "Foundation/Reflection/Field.h"
6
7
#include <list>
8
9
namespace
Cogs::Core
10
{
11
12
class
DeferredNameResolution
13
{
14
public
:
15
DeferredNameResolution
(
class
Context
* context);
16
17
void
scheduleRescan() { rescan =
true
; }
18
19
void
scheduleResolution(
Cogs::ComponentModel::ComponentHandle
& component,
20
const
Cogs::Reflection::Field
* field,
21
const
std::string& name)
22
{
23
scheduled.push_back(
ResolveData
{ component, field, -1, name });
24
rescan =
true
;
25
}
26
27
void
scheduleResolution(
Cogs::ComponentModel::ComponentHandle
& component,
28
const
Cogs::Reflection::Field
* field,
29
int
index,
30
const
std::string& name)
31
{
32
scheduled.push_back(
ResolveData
{ component, field, index, name });
33
rescan =
true
;
34
}
35
36
void
update();
37
38
private
:
39
Context
* context =
nullptr
;
40
bool
rescan =
true
;
41
42
struct
ResolveData
43
{
44
Cogs::ComponentModel::ComponentHandle
component;
45
const
Cogs::Reflection::Field
* field;
46
int
index;
47
std::string name;
48
};
49
std::list<ResolveData> scheduled;
50
51
};
52
53
54
}
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Core::DeferredNameResolution
Definition:
DeferredNameResolution.h:13
Cogs::Reflection::Field
Field definition describing a single data member of a data structure.
Definition:
Field.h:68
Cogs::Core
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Definition:
ComponentFunctions.h:10
Cogs::ComponentModel::ComponentHandle
Handle to a Component instance.
Definition:
Component.h:67
Cogs::Core::DeferredNameResolution::ResolveData
Definition:
DeferredNameResolution.h:43
Generated by
1.9.6