7#ifndef FIELDCACHESANITYCHECKER_H
8#define FIELDCACHESANITYCHECKER_H
79 SetReaderField valMismatchKeys);
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Utility template class to handle collections that can be safely copied and shared.
Definition Collection.h:17
Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent.
Definition FieldCacheSanityChecker.h:28
static Collection< InsanityPtr > checkSanity(Collection< FieldCacheEntryPtr > cacheEntries)
Quick and dirty convenience method that instantiates an instance with "good defaults" and uses it to ...
InsanityType
An Enumeration of the different types of "insane" behaviour that may be detected in a FieldCache.
Definition FieldCacheSanityChecker.h:41
@ SUBREADER
Indicates an overlap in cache usage on a given field in sub/super readers.
Definition FieldCacheSanityChecker.h:43
@ VALUEMISMATCH
Indicates entries have the same reader+fieldname but different cached values. This can happen if diff...
Definition FieldCacheSanityChecker.h:53
Collection< InsanityPtr > checkSubreaders(MapSetIntFieldCacheEntry valIdToItems, MapSetReaderFieldInt readerFieldToValIds)
Internal helper method used by check that iterates over the keys of readerFieldToValIds and generates...
virtual ~FieldCacheSanityChecker()
Collection< InsanityPtr > checkValueMismatch(MapSetIntFieldCacheEntry valIdToItems, MapSetReaderFieldInt readerFieldToValIds, SetReaderField valMismatchKeys)
Internal helper method used by check that iterates over valMismatchKeys and generates a Collection of...
Collection< InsanityPtr > check(Collection< FieldCacheEntryPtr > cacheEntries)
Tests a CacheEntry[] for indication of "insane" cache usage. NOTE: FieldCache CreationPlaceholder obj...
MapOfSets< int32_t, boost::hash< int32_t >, std::equal_to< int32_t >, FieldCacheEntryPtr, luceneHash< FieldCacheEntryPtr >, luceneEquals< FieldCacheEntryPtr > > MapSetIntFieldCacheEntry
Definition FieldCacheSanityChecker.h:36
Collection< LuceneObjectPtr > getAllDecendentReaderKeys(const LuceneObjectPtr &seed)
Checks if the seed is an IndexReader, and if so will walk the hierarchy of subReaders building up a l...
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr > > MapSetReaderFieldReaderField
Definition FieldCacheSanityChecker.h:38
FieldCacheSanityChecker()
static Collection< InsanityPtr > checkSanity(const FieldCachePtr &cache)
Quick and dirty convenience method.
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
FieldCacheSanityChecker::InsanityType type
Definition FieldCacheSanityChecker.h:103
Collection< FieldCacheEntryPtr > entries
Definition FieldCacheSanityChecker.h:105
Insanity(FieldCacheSanityChecker::InsanityType type, const String &msg, Collection< FieldCacheEntryPtr > entries)
virtual String toString()
Multi-Line representation of this Insanity object, starting with the Type and Msg,...
FieldCacheSanityChecker::InsanityType getType()
Type of insane behavior this object represents.
Collection< FieldCacheEntryPtr > getCacheEntries()
CacheEntry objects which suggest a problem.
String msg
Definition FieldCacheSanityChecker.h:104
String getMsg()
Description of the insane behaviour.
Base class for all Lucene classes.
Definition LuceneObject.h:31
Helper class for keeping Lists of Objects associated with keys.
Definition MapOfSets.h:16
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition LuceneTypes.h:539
boost::shared_ptr< FieldCacheEntry > FieldCacheEntryPtr
Definition LuceneTypes.h:336
boost::shared_ptr< ReaderField > ReaderFieldPtr
Definition LuceneTypes.h:548
boost::shared_ptr< FieldCache > FieldCachePtr
Definition LuceneTypes.h:334