Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
RefManager.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef _REFMANAGER_H
7#define _REFMANAGER_H
8//=====================================================
9
10#include "Dynamic/LinkedList.h"
12
13template <class TO, class FROM> class RefManager : public LinkedListHead
14{
15public:
19
24
26 iterator end() { return iterator(NULL); }
28 iterator rend() { return iterator(NULL); }
29
31 {
33 while ((ref = getFirst()) != NULL)
34 {
35 ((Reference<TO, FROM>*) ref)->invalidate();
36 ref->delink(); // the delink might be already done by invalidate(), but doing it here again does not hurt and insures an empty list
37 }
38 }
39};
40
41//=====================================================
42#endif
43
LinkedListElement * getFirst()
Definition LinkedList.h:88
LinkedListElement * getLast()
Definition LinkedList.h:91
iterator end()
Definition RefManager.h:26
Reference< TO, FROM > * getFirst()
Definition RefManager.h:20
Reference< TO, FROM > const * getFirst() const
Definition RefManager.h:21
iterator rbegin()
Definition RefManager.h:27
iterator begin()
Definition RefManager.h:25
Reference< TO, FROM > const * getLast() const
Definition RefManager.h:23
void clearReferences()
Definition RefManager.h:30
virtual ~RefManager()
Definition RefManager.h:18
Reference< TO, FROM > * getLast()
Definition RefManager.h:22
LinkedListHead::Iterator< Reference< TO, FROM > > iterator
Definition RefManager.h:16
iterator rend()
Definition RefManager.h:28