Lucene++ - a full-featured, c++ search engine
API Documentation


Loading...
Searching...
No Matches
CycleCheck.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3// Distributable under the terms of either the Apache License (Version 2.0)
4// or the GNU Lesser General Public License.
6
7#ifndef CYCLECHECK_H
8#define CYCLECHECK_H
9
10#include "Lucene.h"
11
12namespace Lucene {
13
15class LPPAPI CycleCheck {
16public:
17 virtual ~CycleCheck();
18
19protected:
20 static MapStringInt cycleMap;
22
23protected:
24 void addRef(const String& className, int32_t ref);
25 static void addStatic(LuceneObjectPtr* staticRef);
26
27public:
28 template <class TYPE>
29 static void addStatic(TYPE& staticRef) {
30 addStatic(reinterpret_cast<LuceneObjectPtr*>(&staticRef));
31 }
32
33 static void dumpRefs();
34};
35
36template <class TYPE>
37class CycleCheckT : public CycleCheck {
38public:
40 addRef(TYPE::_getClassName(), 1);
41 }
42
43 virtual ~CycleCheckT() {
44 addRef(TYPE::_getClassName(), -1);
45 }
46};
47
48}
49
50#endif
Definition CycleCheck.h:37
CycleCheckT()
Definition CycleCheck.h:39
virtual ~CycleCheckT()
Definition CycleCheck.h:43
Debug utility to track shared_ptr utilization.
Definition CycleCheck.h:15
static void addStatic(LuceneObjectPtr *staticRef)
static void dumpRefs()
virtual ~CycleCheck()
static void addStatic(TYPE &staticRef)
Definition CycleCheck.h:29
static MapStringInt cycleMap
Definition CycleCheck.h:20
static Set< LuceneObjectPtr * > staticRefs
Definition CycleCheck.h:21
void addRef(const String &className, int32_t ref)
Utility template class to handle set based collections that can be safely copied and shared.
Definition Set.h:17
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition LuceneTypes.h:539

clucene.sourceforge.net