Storage Engine API
mongo::CollectionCatalogEntry Class Referenceabstract

#include <collection_catalog_entry.h>

Inheritance diagram for mongo::CollectionCatalogEntry:
mongo::BSONCollectionCatalogEntry mongo::NamespaceDetailsCollectionCatalogEntry mongo::KVCollectionCatalogEntry

Public Member Functions

 CollectionCatalogEntry (StringData ns)
 
virtual ~CollectionCatalogEntry ()
 
const NamespaceString & ns () const
 
virtual CollectionOptions getCollectionOptions (OperationContext *opCtx) const =0
 
virtual int getTotalIndexCount (OperationContext *opCtx) const =0
 
virtual int getCompletedIndexCount (OperationContext *opCtx) const =0
 
virtual int getMaxAllowedIndexes () const =0
 
virtual void getAllIndexes (OperationContext *opCtx, std::vector< std::string > *names) const =0
 
virtual void getReadyIndexes (OperationContext *opCtx, std::vector< std::string > *names) const =0
 
virtual void getAllUniqueIndexes (OperationContext *opCtx, std::vector< std::string > *names) const
 
virtual BSONObj getIndexSpec (OperationContext *opCtx, StringData idxName) const =0
 
virtual bool isIndexMultikey (OperationContext *opCtx, StringData indexName, MultikeyPaths *multikeyPaths) const =0
 Returns true if the index identified by 'indexName' is multikey, and returns false otherwise. More...
 
virtual bool setIndexIsMultikey (OperationContext *opCtx, StringData indexName, const MultikeyPaths &multikeyPaths)=0
 Sets the index identified by 'indexName' to be multikey. More...
 
virtual RecordId getIndexHead (OperationContext *opCtx, StringData indexName) const =0
 
virtual void setIndexHead (OperationContext *opCtx, StringData indexName, const RecordId &newHead)=0
 
virtual bool isIndexReady (OperationContext *opCtx, StringData indexName) const =0
 
virtual KVPrefix getIndexPrefix (OperationContext *opCtx, StringData indexName) const =0
 
virtual Status removeIndex (OperationContext *opCtx, StringData indexName)=0
 
virtual Status prepareForIndexBuild (OperationContext *opCtx, const IndexDescriptor *spec, bool isBackgroundSecondaryBuild)=0
 
virtual void indexBuildSuccess (OperationContext *opCtx, StringData indexName)=0
 
virtual void updateTTLSetting (OperationContext *opCtx, StringData idxName, long long newExpireSeconds)=0
 
virtual void updateIndexMetadata (OperationContext *opCtx, const IndexDescriptor *desc)
 
virtual void updateFlags (OperationContext *opCtx, int newValue)=0
 Sets the flags field of CollectionOptions to newValue. More...
 
virtual void updateValidator (OperationContext *opCtx, const BSONObj &validator, StringData validationLevel, StringData validationAction)=0
 Updates the validator for this collection. More...
 
virtual void setIsTemp (OperationContext *opCtx, bool isTemp)=0
 Updates the 'temp' setting for this collection. More...
 
virtual void addUUID (OperationContext *opCtx, CollectionUUID uuid, Collection *coll)=0
 Assigns a new UUID to this collection. More...
 
virtual bool isEqualToMetadataUUID (OperationContext *opCtx, OptionalCollectionUUID uuid)=0
 Compare the UUID argument to the UUID obtained from the metadata. More...
 
virtual void updateCappedSize (OperationContext *opCtx, long long size)=0
 Updates size of a capped Collection. More...
 

Private Attributes

NamespaceString _ns
 

Constructor & Destructor Documentation

◆ CollectionCatalogEntry()

mongo::CollectionCatalogEntry::CollectionCatalogEntry ( StringData  ns)
inline

◆ ~CollectionCatalogEntry()

virtual mongo::CollectionCatalogEntry::~CollectionCatalogEntry ( )
inlinevirtual

Member Function Documentation

◆ addUUID()

virtual void mongo::CollectionCatalogEntry::addUUID ( OperationContext *  opCtx,
CollectionUUID  uuid,
Collection coll 
)
pure virtual

Assigns a new UUID to this collection.

All collections must have UUIDs, so this is called if a collection erroneously does not have a UUID.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::KVCollectionCatalogEntry.

◆ getAllIndexes()

virtual void mongo::CollectionCatalogEntry::getAllIndexes ( OperationContext *  opCtx,
std::vector< std::string > *  names 
) const
pure virtual

◆ getAllUniqueIndexes()

virtual void mongo::CollectionCatalogEntry::getAllUniqueIndexes ( OperationContext *  opCtx,
std::vector< std::string > *  names 
) const
inlinevirtual

◆ getCollectionOptions()

virtual CollectionOptions mongo::CollectionCatalogEntry::getCollectionOptions ( OperationContext *  opCtx) const
pure virtual

◆ getCompletedIndexCount()

virtual int mongo::CollectionCatalogEntry::getCompletedIndexCount ( OperationContext *  opCtx) const
pure virtual

◆ getIndexHead()

virtual RecordId mongo::CollectionCatalogEntry::getIndexHead ( OperationContext *  opCtx,
StringData  indexName 
) const
pure virtual

◆ getIndexPrefix()

virtual KVPrefix mongo::CollectionCatalogEntry::getIndexPrefix ( OperationContext *  opCtx,
StringData  indexName 
) const
pure virtual

◆ getIndexSpec()

virtual BSONObj mongo::CollectionCatalogEntry::getIndexSpec ( OperationContext *  opCtx,
StringData  idxName 
) const
pure virtual

◆ getMaxAllowedIndexes()

virtual int mongo::CollectionCatalogEntry::getMaxAllowedIndexes ( ) const
pure virtual

◆ getReadyIndexes()

virtual void mongo::CollectionCatalogEntry::getReadyIndexes ( OperationContext *  opCtx,
std::vector< std::string > *  names 
) const
pure virtual

◆ getTotalIndexCount()

virtual int mongo::CollectionCatalogEntry::getTotalIndexCount ( OperationContext *  opCtx) const
pure virtual

◆ indexBuildSuccess()

virtual void mongo::CollectionCatalogEntry::indexBuildSuccess ( OperationContext *  opCtx,
StringData  indexName 
)
pure virtual

◆ isEqualToMetadataUUID()

virtual bool mongo::CollectionCatalogEntry::isEqualToMetadataUUID ( OperationContext *  opCtx,
OptionalCollectionUUID  uuid 
)
pure virtual

Compare the UUID argument to the UUID obtained from the metadata.

Return true if they are equal, false otherwise. uuid can become a CollectionUUID once MMAPv1 is removed.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::KVCollectionCatalogEntry.

◆ isIndexMultikey()

virtual bool mongo::CollectionCatalogEntry::isIndexMultikey ( OperationContext *  opCtx,
StringData  indexName,
MultikeyPaths *  multikeyPaths 
) const
pure virtual

Returns true if the index identified by 'indexName' is multikey, and returns false otherwise.

If the 'multikeyPaths' pointer is non-null, then it must point to an empty vector. If this index supports tracking path-level multikey information, then this function sets 'multikeyPaths' as the path components that cause this index to be multikey.

In particular, if this function returns false and the index supports tracking path-level multikey information, then 'multikeyPaths' is initialized as a vector with size equal to the number of elements in the index key pattern of empty sets.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::BSONCollectionCatalogEntry.

◆ isIndexReady()

virtual bool mongo::CollectionCatalogEntry::isIndexReady ( OperationContext *  opCtx,
StringData  indexName 
) const
pure virtual

◆ ns()

const NamespaceString& mongo::CollectionCatalogEntry::ns ( ) const
inline

◆ prepareForIndexBuild()

virtual Status mongo::CollectionCatalogEntry::prepareForIndexBuild ( OperationContext *  opCtx,
const IndexDescriptor *  spec,
bool  isBackgroundSecondaryBuild 
)
pure virtual

◆ removeIndex()

virtual Status mongo::CollectionCatalogEntry::removeIndex ( OperationContext *  opCtx,
StringData  indexName 
)
pure virtual

◆ setIndexHead()

virtual void mongo::CollectionCatalogEntry::setIndexHead ( OperationContext *  opCtx,
StringData  indexName,
const RecordId &  newHead 
)
pure virtual

◆ setIndexIsMultikey()

virtual bool mongo::CollectionCatalogEntry::setIndexIsMultikey ( OperationContext *  opCtx,
StringData  indexName,
const MultikeyPaths &  multikeyPaths 
)
pure virtual

Sets the index identified by 'indexName' to be multikey.

If 'multikeyPaths' is non-empty, then it must be a vector with size equal to the number of elements in the index key pattern. Additionally, at least one path component of the indexed fields must cause this index to be multikey.

This function returns true if the index metadata has changed, and returns false otherwise.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::KVCollectionCatalogEntry.

◆ setIsTemp()

virtual void mongo::CollectionCatalogEntry::setIsTemp ( OperationContext *  opCtx,
bool  isTemp 
)
pure virtual

Updates the 'temp' setting for this collection.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::KVCollectionCatalogEntry.

◆ updateCappedSize()

virtual void mongo::CollectionCatalogEntry::updateCappedSize ( OperationContext *  opCtx,
long long  size 
)
pure virtual

◆ updateFlags()

virtual void mongo::CollectionCatalogEntry::updateFlags ( OperationContext *  opCtx,
int  newValue 
)
pure virtual

Sets the flags field of CollectionOptions to newValue.

Subsequent calls to getCollectionOptions should have flags==newValue and flagsSet==true.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::KVCollectionCatalogEntry.

◆ updateIndexMetadata()

virtual void mongo::CollectionCatalogEntry::updateIndexMetadata ( OperationContext *  opCtx,
const IndexDescriptor *  desc 
)
inlinevirtual

◆ updateTTLSetting()

virtual void mongo::CollectionCatalogEntry::updateTTLSetting ( OperationContext *  opCtx,
StringData  idxName,
long long  newExpireSeconds 
)
pure virtual

◆ updateValidator()

virtual void mongo::CollectionCatalogEntry::updateValidator ( OperationContext *  opCtx,
const BSONObj &  validator,
StringData  validationLevel,
StringData  validationAction 
)
pure virtual

Updates the validator for this collection.

An empty validator removes all validation.

Implemented in mongo::NamespaceDetailsCollectionCatalogEntry, and mongo::KVCollectionCatalogEntry.

Member Data Documentation

◆ _ns

NamespaceString mongo::CollectionCatalogEntry::_ns
private

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