Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
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
"
11
#include "
Dynamic/LinkedReference/Reference.h
"
12
13
template
<
class
TO,
class
FROM>
class
RefManager
:
public
LinkedListHead
14
{
15
public
:
16
typedef
LinkedListHead::Iterator< Reference<TO, FROM>
>
iterator
;
17
RefManager
() { }
18
virtual
~RefManager
() {
clearReferences
(); }
19
20
Reference<TO, FROM>
*
getFirst
() {
return
((
Reference<TO, FROM>
*)
LinkedListHead::getFirst
()); }
21
Reference<TO, FROM>
const
*
getFirst
()
const
{
return
((
Reference<TO, FROM>
const
*)
LinkedListHead::getFirst
()); }
22
Reference<TO, FROM>
*
getLast
() {
return
((
Reference<TO, FROM>
*)
LinkedListHead::getLast
()); }
23
Reference<TO, FROM>
const
*
getLast
()
const
{
return
((
Reference<TO, FROM>
const
*)
LinkedListHead::getLast
()); }
24
25
iterator
begin
() {
return
iterator
(
getFirst
()); }
26
iterator
end
() {
return
iterator
(NULL); }
27
iterator
rbegin
() {
return
iterator
(
getLast
()); }
28
iterator
rend
() {
return
iterator
(NULL); }
29
30
void
clearReferences
()
31
{
32
LinkedListElement
* ref;
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
LinkedList.h
Reference.h
LinkedListElement
Definition
LinkedList.h:16
LinkedListElement::delink
void delink()
Definition
LinkedList.h:40
LinkedListHead::Iterator
Definition
LinkedList.h:126
LinkedListHead::getFirst
LinkedListElement * getFirst()
Definition
LinkedList.h:88
LinkedListHead::getLast
LinkedListElement * getLast()
Definition
LinkedList.h:91
LinkedListHead::LinkedListHead
LinkedListHead()
Definition
LinkedList.h:77
RefManager::end
iterator end()
Definition
RefManager.h:26
RefManager::getFirst
Reference< TO, FROM > * getFirst()
Definition
RefManager.h:20
RefManager::getFirst
Reference< TO, FROM > const * getFirst() const
Definition
RefManager.h:21
RefManager::rbegin
iterator rbegin()
Definition
RefManager.h:27
RefManager::begin
iterator begin()
Definition
RefManager.h:25
RefManager::getLast
Reference< TO, FROM > const * getLast() const
Definition
RefManager.h:23
RefManager::clearReferences
void clearReferences()
Definition
RefManager.h:30
RefManager::RefManager
RefManager()
Definition
RefManager.h:17
RefManager::~RefManager
virtual ~RefManager()
Definition
RefManager.h:18
RefManager::getLast
Reference< TO, FROM > * getLast()
Definition
RefManager.h:22
RefManager::iterator
LinkedListHead::Iterator< Reference< TO, FROM > > iterator
Definition
RefManager.h:16
RefManager::rend
iterator rend()
Definition
RefManager.h:28
Reference
Definition
Reference.h:15
src
server
shared
Dynamic
LinkedReference
RefManager.h
Generated on
for Project SkyFire Core by
1.17.0