SPARK
0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
Connection.h
1
#pragma once
2
3
#include <cstddef>
4
5
namespace
spark::patterns
6
{
7
template
<
typename
... Args>
8
class
Signal;
9
10
template
<
typename
... Args>
11
class
Slot;
12
}
13
14
namespace
spark::patterns::details
15
{
16
template
<
typename
... Args>
17
class
Connection
final
18
{
19
friend
class
Slot
<Args...>;
20
friend
class
Signal
<Args...>;
21
22
public
:
23
explicit
Connection
(
Signal<Args...>
* signal,
Slot<Args...>
* slot,
const
std::size_t slot_key,
const
bool
managed)
24
: m_signal(signal), m_slot(slot), m_slotKey(slot_key), m_managed(managed) {}
25
26
void
releaseSlot()
27
{
28
m_slot->m_connection =
nullptr
;
29
if
(m_managed)
30
delete
m_slot;
31
}
32
33
private
:
34
Signal
<Args...>* m_signal;
35
Slot
<Args...>* m_slot;
36
std::size_t m_slotKey;
37
bool
m_managed =
false
;
38
};
39
}
spark::patterns::Signal
A signal is a class used to emit events.
Definition
Slot.h:10
spark::patterns::Slot
A slot is a connection between a signal and a callback.
Definition
Slot.h:18
spark::patterns::details::Connection
Definition
Connection.h:18
sources
spark
patterns
include
spark
patterns
details
Connection.h
Generated by
1.11.0