TrinityCore
Loading...
Searching...
No Matches
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 ReferenceType>
26{
27public:
31
32 ReferenceType* front() { return front_impl<ReferenceType>(); }
33 ReferenceType const* front() const { return front_impl<ReferenceType>(); }
34
35 iterator begin() { return begin_impl<ReferenceType>(); }
36 iterator end() { return end_impl<ReferenceType>(); }
37
38 const_iterator begin() const { return begin_impl<ReferenceType>(); }
39 const_iterator end() const { return end_impl<ReferenceType>(); }
40
41 virtual ~RefManager()
42 {
44 }
45
47 {
48 while (!empty())
49 front()->invalidate();
50 }
51};
52
53#endif
bool empty() const
Definition LinkedList.h:107
virtual ~RefManager()
Definition RefManager.h:41
const_iterator begin() const
Definition RefManager.h:38
iterator end()
Definition RefManager.h:36
LinkedListHead::Iterator< ReferenceType const > const_iterator
Definition RefManager.h:29
const_iterator end() const
Definition RefManager.h:39
iterator begin()
Definition RefManager.h:35
LinkedListHead::Iterator< ReferenceType > iterator
Definition RefManager.h:28
ReferenceType const * front() const
Definition RefManager.h:33
void clearReferences()
Definition RefManager.h:46
ReferenceType * front()
Definition RefManager.h:32