Storage Engine API
mongo::CollectionMock Class Reference

This class comprises a mock Collection for use by UUIDCatalog unit tests. More...

#include <collection_mock.h>

Inheritance diagram for mongo::CollectionMock:
mongo::Collection::Impl mongo::CappedCallback mongo::UpdateNotifier mongo::CappedCallback mongo::UpdateNotifier

Detailed Description

This class comprises a mock Collection for use by UUIDCatalog unit tests.

Public Member Functions

 CollectionMock (const NamespaceString &ns)
 
 ~CollectionMock ()=default
 
void init (OperationContext *opCtx)
 
const NamespaceString & ns () const
 
bool ok () const
 
CollectionCatalogEntrygetCatalogEntry ()
 
const CollectionCatalogEntrygetCatalogEntry () const
 
CollectionInfoCacheinfoCache ()
 
const CollectionInfoCacheinfoCache () const
 
void refreshUUID (OperationContext *opCtx)
 
const IndexCataloggetIndexCatalog () const
 
IndexCataloggetIndexCatalog ()
 
const RecordStoregetRecordStore () const
 
RecordStoregetRecordStore ()
 
CursorManager * getCursorManager () const
 
bool requiresIdIndex () const
 
Snapshotted< BSONObj > docFor (OperationContext *opCtx, const RecordId &loc) const
 
bool findDoc (OperationContext *opCtx, const RecordId &loc, Snapshotted< BSONObj > *out) const
 
std::unique_ptr< SeekableRecordCursorgetCursor (OperationContext *opCtx, bool forward) const
 
std::vector< std::unique_ptr< RecordCursor > > getManyCursors (OperationContext *opCtx) const
 
void deleteDocument (OperationContext *opCtx, StmtId stmtId, const RecordId &loc, OpDebug *opDebug, bool fromMigrate, bool noWarn, Collection::StoreDeletedDoc storeDeletedDoc)
 
Status insertDocuments (OperationContext *opCtx, std::vector< InsertStatement >::const_iterator begin, std::vector< InsertStatement >::const_iterator end, OpDebug *opDebug, bool enforceQuota, bool fromMigrate)
 
Status insertDocument (OperationContext *opCtx, const InsertStatement &doc, OpDebug *opDebug, bool enforceQuota, bool fromMigrate)
 
Status insertDocumentsForOplog (OperationContext *opCtx, const DocWriter *const *docs, Timestamp *timestamps, size_t nDocs)
 
Status insertDocument (OperationContext *opCtx, const BSONObj &doc, const std::vector< MultiIndexBlock *> &indexBlocks, bool enforceQuota)
 
RecordId updateDocument (OperationContext *opCtx, const RecordId &oldLocation, const Snapshotted< BSONObj > &oldDoc, const BSONObj &newDoc, bool enforceQuota, bool indexesAffected, OpDebug *opDebug, OplogUpdateEntryArgs *args)
 
bool updateWithDamagesSupported () const
 
StatusWith< RecordDataupdateDocumentWithDamages (OperationContext *opCtx, const RecordId &loc, const Snapshotted< RecordData > &oldRec, const char *damageSource, const mutablebson::DamageVector &damages, OplogUpdateEntryArgs *args)
 
StatusWith< CompactStatscompact (OperationContext *opCtx, const CompactOptions *options)
 
Status truncate (OperationContext *opCtx)
 
Status validate (OperationContext *opCtx, ValidateCmdLevel level, bool background, std::unique_ptr< Lock::CollectionLock > collLk, ValidateResults *results, BSONObjBuilder *output)
 
Status touch (OperationContext *opCtx, bool touchData, bool touchIndexes, BSONObjBuilder *output) const
 
void cappedTruncateAfter (OperationContext *opCtx, RecordId end, bool inclusive)
 
StatusWithMatchExpression parseValidator (OperationContext *opCtx, const BSONObj &validator, MatchExpressionParser::AllowedFeatureSet allowedFeatures, boost::optional< ServerGlobalParams::FeatureCompatibility::Version > maxFeatureCompatibilityVersion) const
 
Status setValidator (OperationContext *opCtx, BSONObj validator)
 
Status setValidationLevel (OperationContext *opCtx, StringData newLevel)
 
Status setValidationAction (OperationContext *opCtx, StringData newAction)
 
StringData getValidationLevel () const
 
StringData getValidationAction () const
 
Status updateValidator (OperationContext *opCtx, BSONObj newValidator, StringData newLevel, StringData newAction)
 
bool isCapped () const
 
std::shared_ptr< CappedInsertNotifiergetCappedInsertNotifier () const
 
uint64_t numRecords (OperationContext *opCtx) const
 
uint64_t dataSize (OperationContext *opCtx) const
 
uint64_t getIndexSize (OperationContext *opCtx, BSONObjBuilder *details, int scale)
 
boost::optional< Timestamp > getMinimumVisibleSnapshot ()
 
void setMinimumVisibleSnapshot (Timestamp name)
 
bool haveCappedWaiters ()
 Returns true if there may be waiters. More...
 
void notifyCappedWaitersIfNeeded ()
 Used to notify any waiters when new documents may be visible in the capped collection. More...
 
const CollatorInterface * getDefaultCollator () const
 
OptionalCollectionUUID uuid () const
 
- Public Member Functions inherited from mongo::Collection::Impl
virtual ~Impl ()=0
 

Private Member Functions

DatabaseCatalogEntrydbce () const
 
CollectionCatalogEntrydetails () const
 
Status aboutToDeleteCapped (OperationContext *opCtx, const RecordId &loc, RecordData data)
 This will be called right before loc is deleted when wrapping. More...
 
Status recordStoreGoingToUpdateInPlace (OperationContext *opCtx, const RecordId &loc)
 
- Private Member Functions inherited from mongo::CappedCallback
virtual ~CappedCallback ()
 
- Private Member Functions inherited from mongo::UpdateNotifier
virtual ~UpdateNotifier ()
 

Private Attributes

const NamespaceString _ns
 

Constructor & Destructor Documentation

◆ CollectionMock()

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

◆ ~CollectionMock()

mongo::CollectionMock::~CollectionMock ( )
default

Member Function Documentation

◆ aboutToDeleteCapped()

Status mongo::CollectionMock::aboutToDeleteCapped ( OperationContext *  opCtx,
const RecordId &  loc,
RecordData  data 
)
inlineprivatevirtual

This will be called right before loc is deleted when wrapping.

If data is unowned, it is only valid inside of this call. If implementations wish to stash a pointer, they must copy it.

Implements mongo::CappedCallback.

◆ cappedTruncateAfter()

void mongo::CollectionMock::cappedTruncateAfter ( OperationContext *  opCtx,
RecordId  end,
bool  inclusive 
)
inlinevirtual

◆ compact()

StatusWith<CompactStats> mongo::CollectionMock::compact ( OperationContext *  opCtx,
const CompactOptions options 
)
inlinevirtual

◆ dataSize()

uint64_t mongo::CollectionMock::dataSize ( OperationContext *  opCtx) const
inlinevirtual

◆ dbce()

DatabaseCatalogEntry* mongo::CollectionMock::dbce ( ) const
inlineprivatevirtual

◆ deleteDocument()

void mongo::CollectionMock::deleteDocument ( OperationContext *  opCtx,
StmtId  stmtId,
const RecordId &  loc,
OpDebug *  opDebug,
bool  fromMigrate,
bool  noWarn,
Collection::StoreDeletedDoc  storeDeletedDoc 
)
inlinevirtual

◆ details()

CollectionCatalogEntry* mongo::CollectionMock::details ( ) const
inlineprivatevirtual

◆ docFor()

Snapshotted<BSONObj> mongo::CollectionMock::docFor ( OperationContext *  opCtx,
const RecordId &  loc 
) const
inlinevirtual

◆ findDoc()

bool mongo::CollectionMock::findDoc ( OperationContext *  opCtx,
const RecordId &  loc,
Snapshotted< BSONObj > *  out 
) const
inlinevirtual

◆ getCappedInsertNotifier()

std::shared_ptr<CappedInsertNotifier> mongo::CollectionMock::getCappedInsertNotifier ( ) const
inlinevirtual

◆ getCatalogEntry() [1/2]

CollectionCatalogEntry* mongo::CollectionMock::getCatalogEntry ( )
inlinevirtual

◆ getCatalogEntry() [2/2]

const CollectionCatalogEntry* mongo::CollectionMock::getCatalogEntry ( ) const
inlinevirtual

◆ getCursor()

std::unique_ptr<SeekableRecordCursor> mongo::CollectionMock::getCursor ( OperationContext *  opCtx,
bool  forward 
) const
inlinevirtual

◆ getCursorManager()

CursorManager* mongo::CollectionMock::getCursorManager ( ) const
inlinevirtual

◆ getDefaultCollator()

const CollatorInterface* mongo::CollectionMock::getDefaultCollator ( ) const
inlinevirtual

◆ getIndexCatalog() [1/2]

const IndexCatalog* mongo::CollectionMock::getIndexCatalog ( ) const
inlinevirtual

◆ getIndexCatalog() [2/2]

IndexCatalog* mongo::CollectionMock::getIndexCatalog ( )
inlinevirtual

◆ getIndexSize()

uint64_t mongo::CollectionMock::getIndexSize ( OperationContext *  opCtx,
BSONObjBuilder *  details,
int  scale 
)
inlinevirtual

◆ getManyCursors()

std::vector<std::unique_ptr<RecordCursor> > mongo::CollectionMock::getManyCursors ( OperationContext *  opCtx) const
inlinevirtual

◆ getMinimumVisibleSnapshot()

boost::optional<Timestamp> mongo::CollectionMock::getMinimumVisibleSnapshot ( )
inlinevirtual

◆ getRecordStore() [1/2]

const RecordStore* mongo::CollectionMock::getRecordStore ( ) const
inlinevirtual

◆ getRecordStore() [2/2]

RecordStore* mongo::CollectionMock::getRecordStore ( )
inlinevirtual

◆ getValidationAction()

StringData mongo::CollectionMock::getValidationAction ( ) const
inlinevirtual

◆ getValidationLevel()

StringData mongo::CollectionMock::getValidationLevel ( ) const
inlinevirtual

◆ haveCappedWaiters()

bool mongo::CollectionMock::haveCappedWaiters ( )
inlinevirtual

Returns true if there may be waiters.

Implements mongo::CappedCallback.

◆ infoCache() [1/2]

CollectionInfoCache* mongo::CollectionMock::infoCache ( )
inlinevirtual

◆ infoCache() [2/2]

const CollectionInfoCache* mongo::CollectionMock::infoCache ( ) const
inlinevirtual

◆ init()

void mongo::CollectionMock::init ( OperationContext *  opCtx)
inlinevirtual

◆ insertDocument() [1/2]

Status mongo::CollectionMock::insertDocument ( OperationContext *  opCtx,
const InsertStatement &  doc,
OpDebug *  opDebug,
bool  enforceQuota,
bool  fromMigrate 
)
inlinevirtual

◆ insertDocument() [2/2]

Status mongo::CollectionMock::insertDocument ( OperationContext *  opCtx,
const BSONObj &  doc,
const std::vector< MultiIndexBlock *> &  indexBlocks,
bool  enforceQuota 
)
inlinevirtual

◆ insertDocuments()

Status mongo::CollectionMock::insertDocuments ( OperationContext *  opCtx,
std::vector< InsertStatement >::const_iterator  begin,
std::vector< InsertStatement >::const_iterator  end,
OpDebug *  opDebug,
bool  enforceQuota,
bool  fromMigrate 
)
inlinevirtual

◆ insertDocumentsForOplog()

Status mongo::CollectionMock::insertDocumentsForOplog ( OperationContext *  opCtx,
const DocWriter *const *  docs,
Timestamp *  timestamps,
size_t  nDocs 
)
inlinevirtual

◆ isCapped()

bool mongo::CollectionMock::isCapped ( ) const
inlinevirtual

◆ notifyCappedWaitersIfNeeded()

void mongo::CollectionMock::notifyCappedWaitersIfNeeded ( )
inlinevirtual

Used to notify any waiters when new documents may be visible in the capped collection.

Implements mongo::CappedCallback.

◆ ns()

const NamespaceString& mongo::CollectionMock::ns ( ) const
inlinevirtual

◆ numRecords()

uint64_t mongo::CollectionMock::numRecords ( OperationContext *  opCtx) const
inlinevirtual

◆ ok()

bool mongo::CollectionMock::ok ( ) const
inlinevirtual

◆ parseValidator()

StatusWithMatchExpression mongo::CollectionMock::parseValidator ( OperationContext *  opCtx,
const BSONObj &  validator,
MatchExpressionParser::AllowedFeatureSet  allowedFeatures,
boost::optional< ServerGlobalParams::FeatureCompatibility::Version >  maxFeatureCompatibilityVersion 
) const
inlinevirtual

◆ recordStoreGoingToUpdateInPlace()

Status mongo::CollectionMock::recordStoreGoingToUpdateInPlace ( OperationContext *  opCtx,
const RecordId &  loc 
)
inlineprivatevirtual

Implements mongo::UpdateNotifier.

◆ refreshUUID()

void mongo::CollectionMock::refreshUUID ( OperationContext *  opCtx)
inlinevirtual

◆ requiresIdIndex()

bool mongo::CollectionMock::requiresIdIndex ( ) const
inlinevirtual

◆ setMinimumVisibleSnapshot()

void mongo::CollectionMock::setMinimumVisibleSnapshot ( Timestamp  name)
inlinevirtual

◆ setValidationAction()

Status mongo::CollectionMock::setValidationAction ( OperationContext *  opCtx,
StringData  newAction 
)
inlinevirtual

◆ setValidationLevel()

Status mongo::CollectionMock::setValidationLevel ( OperationContext *  opCtx,
StringData  newLevel 
)
inlinevirtual

◆ setValidator()

Status mongo::CollectionMock::setValidator ( OperationContext *  opCtx,
BSONObj  validator 
)
inlinevirtual

◆ touch()

Status mongo::CollectionMock::touch ( OperationContext *  opCtx,
bool  touchData,
bool  touchIndexes,
BSONObjBuilder *  output 
) const
inlinevirtual

◆ truncate()

Status mongo::CollectionMock::truncate ( OperationContext *  opCtx)
inlinevirtual

◆ updateDocument()

RecordId mongo::CollectionMock::updateDocument ( OperationContext *  opCtx,
const RecordId &  oldLocation,
const Snapshotted< BSONObj > &  oldDoc,
const BSONObj &  newDoc,
bool  enforceQuota,
bool  indexesAffected,
OpDebug *  opDebug,
OplogUpdateEntryArgs *  args 
)
inlinevirtual

◆ updateDocumentWithDamages()

StatusWith<RecordData> mongo::CollectionMock::updateDocumentWithDamages ( OperationContext *  opCtx,
const RecordId &  loc,
const Snapshotted< RecordData > &  oldRec,
const char *  damageSource,
const mutablebson::DamageVector &  damages,
OplogUpdateEntryArgs *  args 
)
inlinevirtual

◆ updateValidator()

Status mongo::CollectionMock::updateValidator ( OperationContext *  opCtx,
BSONObj  newValidator,
StringData  newLevel,
StringData  newAction 
)
inlinevirtual

◆ updateWithDamagesSupported()

bool mongo::CollectionMock::updateWithDamagesSupported ( ) const
inlinevirtual

◆ uuid()

OptionalCollectionUUID mongo::CollectionMock::uuid ( ) const
inlinevirtual

◆ validate()

Status mongo::CollectionMock::validate ( OperationContext *  opCtx,
ValidateCmdLevel  level,
bool  background,
std::unique_ptr< Lock::CollectionLock collLk,
ValidateResults results,
BSONObjBuilder *  output 
)
inlinevirtual

Member Data Documentation

◆ _ns

const NamespaceString mongo::CollectionMock::_ns
private

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