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

#include <collection.h>

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

Public Member Functions

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

Private Member Functions

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

Private Attributes

friend Collection
 

Constructor & Destructor Documentation

◆ ~Impl()

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

Member Function Documentation

◆ aboutToDeleteCapped()

virtual Status mongo::Collection::Impl::aboutToDeleteCapped ( OperationContext *  opCtx,
const RecordId &  loc,
RecordData  data 
)
privatepure virtual

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.

Implemented in mongo::CollectionImpl, and mongo::CollectionMock.

◆ cappedTruncateAfter()

virtual void mongo::Collection::Impl::cappedTruncateAfter ( OperationContext *  opCtx,
RecordId  end,
bool  inclusive 
)
pure virtual

◆ compact()

virtual StatusWith<CompactStats> mongo::Collection::Impl::compact ( OperationContext *  opCtx,
const CompactOptions options 
)
pure virtual

◆ dataSize()

virtual uint64_t mongo::Collection::Impl::dataSize ( OperationContext *  opCtx) const
pure virtual

◆ dbce()

virtual DatabaseCatalogEntry* mongo::Collection::Impl::dbce ( ) const
privatepure virtual

◆ deleteDocument()

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

◆ details()

virtual CollectionCatalogEntry* mongo::Collection::Impl::details ( ) const
privatepure virtual

◆ docFor()

virtual Snapshotted<BSONObj> mongo::Collection::Impl::docFor ( OperationContext *  opCtx,
const RecordId &  loc 
) const
pure virtual

◆ findDoc()

virtual bool mongo::Collection::Impl::findDoc ( OperationContext *  opCtx,
const RecordId &  loc,
Snapshotted< BSONObj > *  out 
) const
pure virtual

◆ getCappedInsertNotifier()

virtual std::shared_ptr<CappedInsertNotifier> mongo::Collection::Impl::getCappedInsertNotifier ( ) const
pure virtual

◆ getCatalogEntry() [1/2]

virtual CollectionCatalogEntry* mongo::Collection::Impl::getCatalogEntry ( )
pure virtual

◆ getCatalogEntry() [2/2]

virtual const CollectionCatalogEntry* mongo::Collection::Impl::getCatalogEntry ( ) const
pure virtual

◆ getCursor()

virtual std::unique_ptr<SeekableRecordCursor> mongo::Collection::Impl::getCursor ( OperationContext *  opCtx,
bool  forward 
) const
pure virtual

◆ getCursorManager()

virtual CursorManager* mongo::Collection::Impl::getCursorManager ( ) const
pure virtual

◆ getDefaultCollator()

virtual const CollatorInterface* mongo::Collection::Impl::getDefaultCollator ( ) const
pure virtual

◆ getIndexCatalog() [1/2]

virtual const IndexCatalog* mongo::Collection::Impl::getIndexCatalog ( ) const
pure virtual

◆ getIndexCatalog() [2/2]

virtual IndexCatalog* mongo::Collection::Impl::getIndexCatalog ( )
pure virtual

◆ getIndexSize()

virtual uint64_t mongo::Collection::Impl::getIndexSize ( OperationContext *  opCtx,
BSONObjBuilder *  details,
int  scale 
)
pure virtual

◆ getManyCursors()

virtual std::vector<std::unique_ptr<RecordCursor> > mongo::Collection::Impl::getManyCursors ( OperationContext *  opCtx) const
pure virtual

◆ getMinimumVisibleSnapshot()

virtual boost::optional<Timestamp> mongo::Collection::Impl::getMinimumVisibleSnapshot ( )
pure virtual

◆ getRecordStore() [1/2]

virtual const RecordStore* mongo::Collection::Impl::getRecordStore ( ) const
pure virtual

◆ getRecordStore() [2/2]

virtual RecordStore* mongo::Collection::Impl::getRecordStore ( )
pure virtual

◆ getValidationAction()

virtual StringData mongo::Collection::Impl::getValidationAction ( ) const
pure virtual

◆ getValidationLevel()

virtual StringData mongo::Collection::Impl::getValidationLevel ( ) const
pure virtual

◆ haveCappedWaiters()

virtual bool mongo::Collection::Impl::haveCappedWaiters ( )
pure virtual

Returns true if there may be waiters.

Implements mongo::CappedCallback.

Implemented in mongo::CollectionImpl, and mongo::CollectionMock.

◆ infoCache() [1/2]

virtual CollectionInfoCache* mongo::Collection::Impl::infoCache ( )
pure virtual

◆ infoCache() [2/2]

virtual const CollectionInfoCache* mongo::Collection::Impl::infoCache ( ) const
pure virtual

◆ init()

virtual void mongo::Collection::Impl::init ( OperationContext *  opCtx)
pure virtual

◆ insertDocument() [1/2]

virtual Status mongo::Collection::Impl::insertDocument ( OperationContext *  opCtx,
const InsertStatement &  doc,
OpDebug *  opDebug,
bool  enforceQuota,
bool  fromMigrate 
)
pure virtual

◆ insertDocument() [2/2]

virtual Status mongo::Collection::Impl::insertDocument ( OperationContext *  opCtx,
const BSONObj &  doc,
const std::vector< MultiIndexBlock *> &  indexBlocks,
bool  enforceQuota 
)
pure virtual

◆ insertDocuments()

virtual Status mongo::Collection::Impl::insertDocuments ( OperationContext *  opCtx,
std::vector< InsertStatement >::const_iterator  begin,
std::vector< InsertStatement >::const_iterator  end,
OpDebug *  opDebug,
bool  enforceQuota,
bool  fromMigrate 
)
pure virtual

◆ insertDocumentsForOplog()

virtual Status mongo::Collection::Impl::insertDocumentsForOplog ( OperationContext *  opCtx,
const DocWriter *const *  docs,
Timestamp *  timestamps,
size_t  nDocs 
)
pure virtual

◆ isCapped()

virtual bool mongo::Collection::Impl::isCapped ( ) const
pure virtual

◆ notifyCappedWaitersIfNeeded()

virtual void mongo::Collection::Impl::notifyCappedWaitersIfNeeded ( )
pure virtual

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

Implements mongo::CappedCallback.

Implemented in mongo::CollectionImpl, and mongo::CollectionMock.

◆ ns()

virtual const NamespaceString& mongo::Collection::Impl::ns ( ) const
pure virtual

◆ numRecords()

virtual uint64_t mongo::Collection::Impl::numRecords ( OperationContext *  opCtx) const
pure virtual

◆ ok()

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

◆ parseValidator()

virtual StatusWithMatchExpression mongo::Collection::Impl::parseValidator ( OperationContext *  opCtx,
const BSONObj &  validator,
MatchExpressionParser::AllowedFeatureSet  allowedFeatures,
boost::optional< ServerGlobalParams::FeatureCompatibility::Version >  maxFeatureCompatibilityVersion = boost::none 
) const
pure virtual

◆ recordStoreGoingToUpdateInPlace()

virtual Status mongo::Collection::Impl::recordStoreGoingToUpdateInPlace ( OperationContext *  opCtx,
const RecordId &  loc 
)
privatepure virtual

◆ refreshUUID()

virtual void mongo::Collection::Impl::refreshUUID ( OperationContext *  opCtx)
pure virtual

◆ requiresIdIndex()

virtual bool mongo::Collection::Impl::requiresIdIndex ( ) const
pure virtual

◆ setMinimumVisibleSnapshot()

virtual void mongo::Collection::Impl::setMinimumVisibleSnapshot ( Timestamp  name)
pure virtual

◆ setValidationAction()

virtual Status mongo::Collection::Impl::setValidationAction ( OperationContext *  opCtx,
StringData  newAction 
)
pure virtual

◆ setValidationLevel()

virtual Status mongo::Collection::Impl::setValidationLevel ( OperationContext *  opCtx,
StringData  newLevel 
)
pure virtual

◆ setValidator()

virtual Status mongo::Collection::Impl::setValidator ( OperationContext *  opCtx,
BSONObj  validator 
)
pure virtual

◆ touch()

virtual Status mongo::Collection::Impl::touch ( OperationContext *  opCtx,
bool  touchData,
bool  touchIndexes,
BSONObjBuilder *  output 
) const
pure virtual

◆ truncate()

virtual Status mongo::Collection::Impl::truncate ( OperationContext *  opCtx)
pure virtual

◆ updateDocument()

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

◆ updateDocumentWithDamages()

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

◆ updateValidator()

virtual Status mongo::Collection::Impl::updateValidator ( OperationContext *  opCtx,
BSONObj  newValidator,
StringData  newLevel,
StringData  newAction 
)
pure virtual

◆ updateWithDamagesSupported()

virtual bool mongo::Collection::Impl::updateWithDamagesSupported ( ) const
pure virtual

◆ uuid()

virtual OptionalCollectionUUID mongo::Collection::Impl::uuid ( ) const
pure virtual

◆ validate()

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

Member Data Documentation

◆ Collection

friend mongo::Collection::Impl::Collection
private

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