TDME2
1.9.200
src
tdme
utilities
ObjectDeleter.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <algorithm>
4
#include <vector>
5
6
#include <
tdme/tdme.h
>
7
#include <
tdme/utilities/fwd-tdme.h
>
8
9
using
std::find;
10
using
std::vector;
11
12
namespace
tdme
{
13
namespace
utilities {
14
15
/**
16
* Object deleter
17
* @author Andreas Drewke
18
*/
19
template
<
typename
T>
20
class
ObjectDeleter
final
21
{
22
private
:
23
vector<T*>
objects
;
24
25
public
:
26
// forbid class copy
27
FORBID_CLASS_COPY
(
ObjectDeleter
)
28
29
/**
30
* Public constructor
31
*/
32
ObjectDeleter
() {
33
}
34
35
/**
36
* Public destructor
37
*/
38
~ObjectDeleter
() {
39
for
(
auto
object
:
objects
)
delete
object;
40
objects
.clear();
41
}
42
43
/**
44
* Adds object
45
* @param object object
46
*/
47
T*
add
(T*
object
) {
48
if
(find(
objects
.begin(),
objects
.end(),
object
) !=
objects
.end())
return
object;
49
objects
.push_back(
object
);
50
return
object;
51
}
52
53
};
54
55
};
56
};
tdme::utilities::ObjectDeleter
Object deleter.
Definition:
ObjectDeleter.h:21
tdme::utilities::ObjectDeleter::add
T * add(T *object)
Adds object.
Definition:
ObjectDeleter.h:47
tdme::utilities::ObjectDeleter::~ObjectDeleter
~ObjectDeleter()
Public destructor.
Definition:
ObjectDeleter.h:38
tdme::utilities::ObjectDeleter::objects
vector< T * > objects
Definition:
ObjectDeleter.h:23
tdme
Definition:
fwd-tdme.h:4
tdme.h
FORBID_CLASS_COPY
#define FORBID_CLASS_COPY(CLASS)
Definition:
tdme.h:6
fwd-tdme.h
Generated by
1.9.1