Toggle navigation
ivorium
iv_components
Example project
GitHub
Main Page
Modules
Classes
Files
File List
File Members
ivorium_model
ModelTools
World.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
ivorium_core/ivorium_core.hpp
>
4
#include <unordered_set>
5
6
namespace
iv
7
{
8
12
template
<
class
Component >
13
class
World
14
{
15
public
:
16
iv::ClientMarker
cm
;
17
18
World
(
iv::Instance
* inst );
19
iv::Instance
*
instance
()
const
;
20
21
void
Register
( Component * );
22
void
Unregister
( Component * );
23
24
std::unordered_set< Component * >
const
&
components
();
25
26
protected
:
27
virtual
void
Component_Registered
( Component * component ) = 0;
28
virtual
void
Component_Unregistered
( Component * component ) = 0;
29
30
private
:
31
iv::Instance
* inst;
32
std::unordered_set< Component * > _components;
33
};
34
35
}
36
37
#include "
World.inl
"