33 #include "mongo/base/string_data.h" 35 #include "mongo/db/index/multikey_paths.h" 36 #include "mongo/db/namespace_string.h" 37 #include "mongo/db/record_id.h" 38 #include "mongo/db/server_options.h" 44 class IndexDescriptor;
45 class OperationContext;
52 const NamespaceString&
ns()
const {
66 virtual void getAllIndexes(OperationContext* opCtx, std::vector<std::string>* names)
const = 0;
69 std::vector<std::string>* names)
const = 0;
72 std::vector<std::string>* names)
const {}
74 virtual BSONObj
getIndexSpec(OperationContext* opCtx, StringData idxName)
const = 0;
89 MultikeyPaths* multikeyPaths)
const = 0;
101 StringData indexName,
102 const MultikeyPaths& multikeyPaths) = 0;
104 virtual RecordId
getIndexHead(OperationContext* opCtx, StringData indexName)
const = 0;
107 StringData indexName,
108 const RecordId& newHead) = 0;
110 virtual bool isIndexReady(OperationContext* opCtx, StringData indexName)
const = 0;
117 const IndexDescriptor* spec,
118 bool isBackgroundSecondaryBuild) = 0;
120 virtual void indexBuildSuccess(OperationContext* opCtx, StringData indexName) = 0;
128 long long newExpireSeconds) = 0;
136 virtual void updateFlags(OperationContext* opCtx,
int newValue) = 0;
144 const BSONObj& validator,
145 StringData validationLevel,
146 StringData validationAction) = 0;
151 virtual void setIsTemp(OperationContext* opCtx,
bool isTemp) = 0;
virtual BSONObj getIndexSpec(OperationContext *opCtx, StringData idxName) const =0
virtual void addUUID(OperationContext *opCtx, CollectionUUID uuid, Collection *coll)=0
Assigns a new UUID to this collection.
virtual ~CollectionCatalogEntry()
Definition: collection_catalog_entry.h:50
virtual Status removeIndex(OperationContext *opCtx, StringData indexName)=0
Definition: collection_options.h:57
virtual void getAllIndexes(OperationContext *opCtx, std::vector< std::string > *names) const =0
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
virtual void getReadyIndexes(OperationContext *opCtx, std::vector< std::string > *names) const =0
virtual int getMaxAllowedIndexes() const =0
Definition: collection_catalog_entry.h:47
OperationContext Database StringData BSONObj CollectionOptions::ParseKind bool const BSONObj &idIndex Status
Definition: database_impl.cpp:956
virtual CollectionOptions getCollectionOptions(OperationContext *opCtx) const =0
virtual Status prepareForIndexBuild(OperationContext *opCtx, const IndexDescriptor *spec, bool isBackgroundSecondaryBuild)=0
UUID CollectionUUID
A CollectionUUID is a 128-bit unique identifier, per RFC 4122, v4.
Definition: collection_options.h:53
this is NOT safe through a yield right now.
Definition: collection.h:160
NamespaceString _ns
Definition: collection_catalog_entry.h:171
virtual void updateIndexMetadata(OperationContext *opCtx, const IndexDescriptor *desc)
Definition: collection_catalog_entry.h:130
virtual void updateValidator(OperationContext *opCtx, const BSONObj &validator, StringData validationLevel, StringData validationAction)=0
Updates the validator for this collection.
virtual void updateTTLSetting(OperationContext *opCtx, StringData idxName, long long newExpireSeconds)=0
boost::optional< CollectionUUID > OptionalCollectionUUID
Definition: collection_options.h:55
Collection *const OperationContext *const const StringData OptionalCollectionUUID uuid
Definition: collection_impl.cpp:80
virtual bool isEqualToMetadataUUID(OperationContext *opCtx, OptionalCollectionUUID uuid)=0
Compare the UUID argument to the UUID obtained from the metadata.
virtual int getTotalIndexCount(OperationContext *opCtx) const =0
virtual void indexBuildSuccess(OperationContext *opCtx, StringData indexName)=0
virtual void updateCappedSize(OperationContext *opCtx, long long size)=0
Updates size of a capped Collection.
A KVPrefix may be prepended to the keys of entries in an underlying KV store.
Definition: kv_prefix.h:44
virtual KVPrefix getIndexPrefix(OperationContext *opCtx, StringData indexName) const =0
virtual RecordId getIndexHead(OperationContext *opCtx, StringData indexName) const =0
CollectionCatalogEntry(StringData ns)
Definition: collection_catalog_entry.h:49
virtual void setIsTemp(OperationContext *opCtx, bool isTemp)=0
Updates the 'temp' setting for this collection.
virtual bool setIndexIsMultikey(OperationContext *opCtx, StringData indexName, const MultikeyPaths &multikeyPaths)=0
Sets the index identified by 'indexName' to be multikey.
virtual int getCompletedIndexCount(OperationContext *opCtx) const =0
virtual void setIndexHead(OperationContext *opCtx, StringData indexName, const RecordId &newHead)=0
Collection *const OperationContext *const opCtx
Definition: collection_impl.cpp:80
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...
virtual void updateFlags(OperationContext *opCtx, int newValue)=0
Sets the flags field of CollectionOptions to newValue.
virtual void getAllUniqueIndexes(OperationContext *opCtx, std::vector< std::string > *names) const
Definition: collection_catalog_entry.h:71
OperationContext const IndexDescriptor * desc
Definition: index_catalog_impl.cpp:97
virtual bool isIndexReady(OperationContext *opCtx, StringData indexName) const =0
const NamespaceString & ns() const
Definition: collection_catalog_entry.h:52