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


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:
31  virtual ~FieldCacheSanityChecker();
32 
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 {
44 
54 
57  EXPECTED
58  };
59 
62  static Collection<InsanityPtr> checkSanity(const FieldCachePtr& cache);
63 
67  static Collection<InsanityPtr> checkSanity(Collection<FieldCacheEntryPtr> cacheEntries);
68 
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:
98  virtual ~Insanity();
99 
101 
102 protected:
104  String msg;
106 
107 public:
110 
112  String getMsg();
113 
115  Collection<FieldCacheEntryPtr> getCacheEntries();
116 
119  virtual String toString();
120 };
121 
122 }
123 
124 #endif
boost::shared_ptr< FieldCacheEntry > FieldCacheEntryPtr
Definition: LuceneTypes.h:336
boost::shared_ptr< FieldCache > FieldCachePtr
Definition: LuceneTypes.h:334
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
InsanityType
An Enumeration of the different types of "insane" behaviour that may be detected in a FieldCache...
Definition: FieldCacheSanityChecker.h:41
Indicates entries have the same reader+fieldname but different cached values. This can happen if diff...
Definition: FieldCacheSanityChecker.h:53
Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent...
Definition: FieldCacheSanityChecker.h:28
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Indicates an overlap in cache usage on a given field in sub/super readers.
Definition: FieldCacheSanityChecker.h:43
boost::shared_ptr< ReaderField > ReaderFieldPtr
Definition: LuceneTypes.h:548
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr > > MapSetReaderFieldReaderField
Definition: FieldCacheSanityChecker.h:38
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, int32_t, boost::hash< int32_t >, std::equal_to< int32_t > > MapSetReaderFieldInt
Definition: FieldCacheSanityChecker.h:37
Simple container for a collection of related CacheEntry objects that in conjunction with each other r...
Definition: FieldCacheSanityChecker.h:95
Utility template class to handle collections that can be safely copied and shared.
Definition: Collection.h:17
FieldCacheSanityChecker::InsanityType type
Definition: FieldCacheSanityChecker.h:100
Collection< FieldCacheEntryPtr > entries
Definition: FieldCacheSanityChecker.h:105
String msg
Definition: FieldCacheSanityChecker.h:104
Helper class for keeping Lists of Objects associated with keys.
Definition: MapOfSets.h:16

clucene.sourceforge.net