Storage Engine API
mongo::IndexCatalog::Impl Class Referenceabstract

#include <index_catalog.h>

Inheritance diagram for mongo::IndexCatalog::Impl:
mongo::IndexCatalogImpl

Public Member Functions

virtual ~Impl ()=0
 
virtual Status init (OperationContext *opCtx)=0
 
virtual bool ok () const =0
 
virtual bool haveAnyIndexes () const =0
 
virtual int numIndexesTotal (OperationContext *opCtx) const =0
 
virtual int numIndexesReady (OperationContext *opCtx) const =0
 
virtual bool haveIdIndex (OperationContext *opCtx) const =0
 
virtual BSONObj getDefaultIdIndexSpec () const =0
 
virtual IndexDescriptor * findIdIndex (OperationContext *opCtx) const =0
 
virtual IndexDescriptor * findIndexByName (OperationContext *opCtx, StringData name, bool includeUnfinishedIndexes) const =0
 
virtual IndexDescriptor * findIndexByKeyPatternAndCollationSpec (OperationContext *opCtx, const BSONObj &key, const BSONObj &collationSpec, bool includeUnfinishedIndexes) const =0
 
virtual void findIndexesByKeyPattern (OperationContext *opCtx, const BSONObj &key, bool includeUnfinishedIndexes, std::vector< IndexDescriptor *> *matches) const =0
 
virtual IndexDescriptor * findShardKeyPrefixedIndex (OperationContext *opCtx, const BSONObj &shardKey, bool requireSingleKey) const =0
 
virtual void findIndexByType (OperationContext *opCtx, const std::string &type, std::vector< IndexDescriptor *> &matches, bool includeUnfinishedIndexes) const =0
 
virtual const IndexDescriptor * refreshEntry (OperationContext *opCtx, const IndexDescriptor *oldDesc)=0
 
virtual const IndexCatalogEntrygetEntry (const IndexDescriptor *desc) const =0
 
virtual IndexAccessMethod * getIndex (const IndexDescriptor *desc)=0
 
virtual const IndexAccessMethod * getIndex (const IndexDescriptor *desc) const =0
 
virtual Status checkUnfinished () const =0
 
virtual StatusWith< BSONObj > createIndexOnEmptyCollection (OperationContext *opCtx, BSONObj spec)=0
 
virtual StatusWith< BSONObj > prepareSpecForCreate (OperationContext *opCtx, const BSONObj &original) const =0
 
virtual void dropAllIndexes (OperationContext *opCtx, bool includingIdIndex, stdx::function< void(const IndexDescriptor *)> onDropFn=nullptr)=0
 
virtual Status dropIndex (OperationContext *opCtx, IndexDescriptor *desc)=0
 
virtual std::vector< BSONObj > getAndClearUnfinishedIndexes (OperationContext *opCtx)=0
 
virtual bool isMultikey (OperationContext *opCtx, const IndexDescriptor *idx)=0
 
virtual MultikeyPaths getMultikeyPaths (OperationContext *opCtx, const IndexDescriptor *idx)=0
 
virtual Status indexRecords (OperationContext *opCtx, const std::vector< BsonRecord > &bsonRecords, int64_t *keysInsertedOut)=0
 
virtual void unindexRecord (OperationContext *opCtx, const BSONObj &obj, const RecordId &loc, bool noWarn, int64_t *keysDeletedOut)=0
 
virtual std::string getAccessMethodName (OperationContext *opCtx, const BSONObj &keyPattern)=0
 
virtual Status _upgradeDatabaseMinorVersionIfNeeded (OperationContext *opCtx, const std::string &newPluginName)=0
 

Private Member Functions

virtual const Collection_getCollection () const =0
 
virtual Collection_getCollection ()=0
 
virtual IndexCatalogEntry_setupInMemoryStructures (OperationContext *opCtx, std::unique_ptr< IndexDescriptor > descriptor, bool initFromDisk)=0
 
virtual Status _dropIndex (OperationContext *opCtx, IndexCatalogEntry *entry)=0
 
virtual const IndexCatalogEntryContainer_getEntries () const =0
 
virtual IndexCatalogEntryContainer_getEntries ()=0
 
virtual void _deleteIndexFromDisk (OperationContext *const opCtx, const std::string &indexName, const std::string &indexNamespace)=0
 

Private Attributes

friend IndexCatalog
 

Constructor & Destructor Documentation

◆ ~Impl()

mongo::IndexCatalog::Impl::~Impl ( )
pure virtualdefault

Member Function Documentation

◆ _deleteIndexFromDisk()

virtual void mongo::IndexCatalog::Impl::_deleteIndexFromDisk ( OperationContext *const  opCtx,
const std::string &  indexName,
const std::string &  indexNamespace 
)
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _dropIndex()

virtual Status mongo::IndexCatalog::Impl::_dropIndex ( OperationContext *  opCtx,
IndexCatalogEntry entry 
)
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _getCollection() [1/2]

virtual const Collection* mongo::IndexCatalog::Impl::_getCollection ( ) const
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _getCollection() [2/2]

virtual Collection* mongo::IndexCatalog::Impl::_getCollection ( )
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _getEntries() [1/2]

virtual const IndexCatalogEntryContainer& mongo::IndexCatalog::Impl::_getEntries ( ) const
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _getEntries() [2/2]

virtual IndexCatalogEntryContainer& mongo::IndexCatalog::Impl::_getEntries ( )
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _setupInMemoryStructures()

virtual IndexCatalogEntry* mongo::IndexCatalog::Impl::_setupInMemoryStructures ( OperationContext *  opCtx,
std::unique_ptr< IndexDescriptor >  descriptor,
bool  initFromDisk 
)
privatepure virtual

Implemented in mongo::IndexCatalogImpl.

◆ _upgradeDatabaseMinorVersionIfNeeded()

virtual Status mongo::IndexCatalog::Impl::_upgradeDatabaseMinorVersionIfNeeded ( OperationContext *  opCtx,
const std::string &  newPluginName 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ checkUnfinished()

virtual Status mongo::IndexCatalog::Impl::checkUnfinished ( ) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ createIndexOnEmptyCollection()

virtual StatusWith<BSONObj> mongo::IndexCatalog::Impl::createIndexOnEmptyCollection ( OperationContext *  opCtx,
BSONObj  spec 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ dropAllIndexes()

virtual void mongo::IndexCatalog::Impl::dropAllIndexes ( OperationContext *  opCtx,
bool  includingIdIndex,
stdx::function< void(const IndexDescriptor *)>  onDropFn = nullptr 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ dropIndex()

virtual Status mongo::IndexCatalog::Impl::dropIndex ( OperationContext *  opCtx,
IndexDescriptor *  desc 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ findIdIndex()

virtual IndexDescriptor* mongo::IndexCatalog::Impl::findIdIndex ( OperationContext *  opCtx) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ findIndexByKeyPatternAndCollationSpec()

virtual IndexDescriptor* mongo::IndexCatalog::Impl::findIndexByKeyPatternAndCollationSpec ( OperationContext *  opCtx,
const BSONObj &  key,
const BSONObj &  collationSpec,
bool  includeUnfinishedIndexes 
) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ findIndexByName()

virtual IndexDescriptor* mongo::IndexCatalog::Impl::findIndexByName ( OperationContext *  opCtx,
StringData  name,
bool  includeUnfinishedIndexes 
) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ findIndexByType()

virtual void mongo::IndexCatalog::Impl::findIndexByType ( OperationContext *  opCtx,
const std::string &  type,
std::vector< IndexDescriptor *> &  matches,
bool  includeUnfinishedIndexes 
) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ findIndexesByKeyPattern()

virtual void mongo::IndexCatalog::Impl::findIndexesByKeyPattern ( OperationContext *  opCtx,
const BSONObj &  key,
bool  includeUnfinishedIndexes,
std::vector< IndexDescriptor *> *  matches 
) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ findShardKeyPrefixedIndex()

virtual IndexDescriptor* mongo::IndexCatalog::Impl::findShardKeyPrefixedIndex ( OperationContext *  opCtx,
const BSONObj &  shardKey,
bool  requireSingleKey 
) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getAccessMethodName()

virtual std::string mongo::IndexCatalog::Impl::getAccessMethodName ( OperationContext *  opCtx,
const BSONObj &  keyPattern 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getAndClearUnfinishedIndexes()

virtual std::vector<BSONObj> mongo::IndexCatalog::Impl::getAndClearUnfinishedIndexes ( OperationContext *  opCtx)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getDefaultIdIndexSpec()

virtual BSONObj mongo::IndexCatalog::Impl::getDefaultIdIndexSpec ( ) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getEntry()

virtual const IndexCatalogEntry* mongo::IndexCatalog::Impl::getEntry ( const IndexDescriptor *  desc) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getIndex() [1/2]

virtual IndexAccessMethod* mongo::IndexCatalog::Impl::getIndex ( const IndexDescriptor *  desc)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getIndex() [2/2]

virtual const IndexAccessMethod* mongo::IndexCatalog::Impl::getIndex ( const IndexDescriptor *  desc) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ getMultikeyPaths()

virtual MultikeyPaths mongo::IndexCatalog::Impl::getMultikeyPaths ( OperationContext *  opCtx,
const IndexDescriptor *  idx 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ haveAnyIndexes()

virtual bool mongo::IndexCatalog::Impl::haveAnyIndexes ( ) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ haveIdIndex()

virtual bool mongo::IndexCatalog::Impl::haveIdIndex ( OperationContext *  opCtx) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ indexRecords()

virtual Status mongo::IndexCatalog::Impl::indexRecords ( OperationContext *  opCtx,
const std::vector< BsonRecord > &  bsonRecords,
int64_t *  keysInsertedOut 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ init()

virtual Status mongo::IndexCatalog::Impl::init ( OperationContext *  opCtx)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ isMultikey()

virtual bool mongo::IndexCatalog::Impl::isMultikey ( OperationContext *  opCtx,
const IndexDescriptor *  idx 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ numIndexesReady()

virtual int mongo::IndexCatalog::Impl::numIndexesReady ( OperationContext *  opCtx) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ numIndexesTotal()

virtual int mongo::IndexCatalog::Impl::numIndexesTotal ( OperationContext *  opCtx) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ ok()

virtual bool mongo::IndexCatalog::Impl::ok ( ) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ prepareSpecForCreate()

virtual StatusWith<BSONObj> mongo::IndexCatalog::Impl::prepareSpecForCreate ( OperationContext *  opCtx,
const BSONObj &  original 
) const
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ refreshEntry()

virtual const IndexDescriptor* mongo::IndexCatalog::Impl::refreshEntry ( OperationContext *  opCtx,
const IndexDescriptor *  oldDesc 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

◆ unindexRecord()

virtual void mongo::IndexCatalog::Impl::unindexRecord ( OperationContext *  opCtx,
const BSONObj &  obj,
const RecordId &  loc,
bool  noWarn,
int64_t *  keysDeletedOut 
)
pure virtual

Implemented in mongo::IndexCatalogImpl.

Member Data Documentation

◆ IndexCatalog

friend mongo::IndexCatalog::Impl::IndexCatalog
private

The documentation for this class was generated from the following files: