-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathITrackable.h
45 lines (35 loc) · 1.04 KB
/
ITrackable.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef _TRACKABLE_H
#define _TRACKABLE_H
class ITrackable
{
protected:
std::list<ITrackable*> m_Trackers; // objects that are tracking us
//std::list<ITrackable*> m_Track; // objects that we're tracking
public:
ITrackable() {}
virtual ~ITrackable() {
// notify trackers of deletion
//foreach(ITrackable* t, m_Trackers)
// t->removeTracker(t);
}
void addTracker(ITrackable* t) {
m_Trackers.push_back(t);
}
void clearTrackers() {
m_Trackers.clear();
}
void removeTracker(ITrackable* t) {
for(std::list<ITrackable*>::iterator itr = m_Trackers.begin();
itr != m_Trackers.end();
++itr)
{
if(*itr == t) {
m_Trackers.erase(itr);
break;
}
}
//_onRemoveTracker();
}
//virtual void _onRemoveTracker(ITrackable* t) = 0;
};
#endif