TrinityCore
RefManager.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef _REFMANAGER_H
19#define _REFMANAGER_H
20
21#include "Dynamic/LinkedList.h"
23
24template <class TO, class FROM>
26{
27public:
31
33
34 Reference<TO, FROM> const* getFirst() const { return static_cast<Reference<TO, FROM> const*>(LinkedListHead::getFirst()); }
35
37 iterator end() { return iterator(nullptr); }
38
40 const_iterator end() const { return const_iterator(nullptr); }
41
42 virtual ~RefManager()
43 {
45 }
46
48 {
49 while (Reference<TO, FROM>* ref = getFirst())
50 ref->invalidate();
51 }
52};
53
54#endif
LinkedListElement * getFirst()
Definition: LinkedList.h:112
iterator end()
Definition: RefManager.h:37
Reference< TO, FROM > * getFirst()
Definition: RefManager.h:32
LinkedListHead::Iterator< Reference< TO, FROM > > iterator
Definition: RefManager.h:28
Reference< TO, FROM > const * getFirst() const
Definition: RefManager.h:34
iterator begin()
Definition: RefManager.h:36
const_iterator end() const
Definition: RefManager.h:40
LinkedListHead::Iterator< Reference< TO, FROM > const > const_iterator
Definition: RefManager.h:29
void clearReferences()
Definition: RefManager.h:47
virtual ~RefManager()
Definition: RefManager.h:42
const_iterator begin() const
Definition: RefManager.h:39