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

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- File List
- Globals

FieldCacheSanityChecker.h
Go to the documentation of this file.
1 // 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 FIELDCACHESANITYCHECKER_H
8 #define FIELDCACHESANITYCHECKER_H
9
10 #include "LuceneObject.h"
11 #include "MapOfSets.h"
12
13 namespace Lucene {
14
28 class LPPAPI FieldCacheSanityChecker : public LuceneObject {
29 public:
30 FieldCacheSanityChecker();
31 virtual ~FieldCacheSanityChecker();
32
33 LUCENE_CLASS(FieldCacheSanityChecker);
34
35 public:
36 typedef MapOfSets< int32_t, boost::hash<int32_t>, std::equal_to<int32_t>, FieldCacheEntryPtr, luceneHash<FieldCacheEntryPtr>, luceneEquals<FieldCacheEntryPtr> > MapSetIntFieldCacheEntry;
37 typedef MapOfSets< ReaderFieldPtr, luceneHash<ReaderFieldPtr>, luceneEquals<ReaderFieldPtr>, int32_t, boost::hash<int32_t>, std::equal_to<int32_t> > MapSetReaderFieldInt;
38 typedef MapOfSets< ReaderFieldPtr, luceneHash<ReaderFieldPtr>, luceneEquals<ReaderFieldPtr>, ReaderFieldPtr, luceneHash<ReaderFieldPtr>, luceneEquals<ReaderFieldPtr> > MapSetReaderFieldReaderField;
39
41 enum InsanityType {
43 SUBREADER,
44
53 VALUEMISMATCH,
54
57 EXPECTED
58 };
59
62 static Collection<InsanityPtr> checkSanity(const FieldCachePtr& cache);
63
67 static Collection<InsanityPtr> checkSanity(Collection<FieldCacheEntryPtr> cacheEntries);
68
71 Collection<InsanityPtr> check(Collection<FieldCacheEntryPtr> cacheEntries);
72
73 protected:
77 Collection<InsanityPtr> checkValueMismatch(MapSetIntFieldCacheEntry valIdToItems,
78 MapSetReaderFieldInt readerFieldToValIds,
79 SetReaderField valMismatchKeys);
80
85 Collection<InsanityPtr> checkSubreaders(MapSetIntFieldCacheEntry valIdToItems,
86 MapSetReaderFieldInt readerFieldToValIds);
87
90 Collection<LuceneObjectPtr> getAllDecendentReaderKeys(const LuceneObjectPtr& seed);
91 };
92
95 class LPPAPI Insanity : public LuceneObject {
96 public:
97 Insanity(FieldCacheSanityChecker::InsanityType type, const String& msg, Collection<FieldCacheEntryPtr> entries);
98 virtual ~Insanity();
99
100 LUCENE_CLASS(Insanity);
101
102 protected:
103 FieldCacheSanityChecker::InsanityType type;
104 String msg;
105 Collection<FieldCacheEntryPtr> entries;
106
107 public:
109 FieldCacheSanityChecker::InsanityType getType();
110
112 String getMsg();
113
115 Collection<FieldCacheEntryPtr> getCacheEntries();
116
119 virtual String toString();
120 };
121
122 }
123
124 #endif
Lucene::FieldCacheEntryPtr
boost::shared_ptr< FieldCacheEntry > FieldCacheEntryPtr
Definition: LuceneTypes.h:336
Lucene::FieldCachePtr
boost::shared_ptr< FieldCache > FieldCachePtr
Definition: LuceneTypes.h:334
Lucene::LuceneObjectPtr
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
Lucene::FieldCacheSanityChecker::InsanityType
InsanityType
An Enumeration of the different types of "insane" behaviour that may be detected in a FieldCache...
Definition: FieldCacheSanityChecker.h:41
LuceneObject.h
Lucene::FieldCacheSanityChecker::VALUEMISMATCH
Indicates entries have the same reader+fieldname but different cached values. This can happen if diff...
Definition: FieldCacheSanityChecker.h:53
Lucene::FieldCacheSanityChecker
Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent...
Definition: FieldCacheSanityChecker.h:28
Lucene::LuceneObject
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Lucene::FieldCacheSanityChecker::SUBREADER
Indicates an overlap in cache usage on a given field in sub/super readers.
Definition: FieldCacheSanityChecker.h:43
Lucene::ReaderFieldPtr
boost::shared_ptr< ReaderField > ReaderFieldPtr
Definition: LuceneTypes.h:548
Lucene::FieldCacheSanityChecker::MapSetReaderFieldReaderField
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr > > MapSetReaderFieldReaderField
Definition: FieldCacheSanityChecker.h:38
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::FieldCacheSanityChecker::MapSetReaderFieldInt
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, int32_t, boost::hash< int32_t >, std::equal_to< int32_t > > MapSetReaderFieldInt
Definition: FieldCacheSanityChecker.h:37
Lucene::Insanity
Simple container for a collection of related CacheEntry objects that in conjunction with each other r...
Definition: FieldCacheSanityChecker.h:95
Lucene::Collection
Utility template class to handle collections that can be safely copied and shared.
Definition: Collection.h:17
MapOfSets.h
Lucene::Insanity::type
FieldCacheSanityChecker::InsanityType type
Definition: FieldCacheSanityChecker.h:100
Lucene::Insanity::entries
Collection< FieldCacheEntryPtr > entries
Definition: FieldCacheSanityChecker.h:105
Lucene::Insanity::msg
String msg
Definition: FieldCacheSanityChecker.h:104
Lucene::MapOfSets
Helper class for keeping Lists of Objects associated with keys.
Definition: MapOfSets.h:16

clucene.sourceforge.net