summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/collection.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/catalog/collection.h')
-rw-r--r--src/mongo/db/catalog/collection.h33
1 files changed, 13 insertions, 20 deletions
diff --git a/src/mongo/db/catalog/collection.h b/src/mongo/db/catalog/collection.h
index 042c7a3a0c5..9c41f8478f3 100644
--- a/src/mongo/db/catalog/collection.h
+++ b/src/mongo/db/catalog/collection.h
@@ -330,19 +330,16 @@ public:
virtual const CollatorInterface* getDefaultCollator() const = 0;
};
-private:
- static std::unique_ptr<Impl> makeImpl(Collection* _this,
- OperationContext* opCtx,
- StringData fullNS,
- OptionalCollectionUUID uuid,
- CollectionCatalogEntry* details,
- RecordStore* recordStore,
- DatabaseCatalogEntry* dbce);
-
public:
- using factory_function_type = decltype(makeImpl);
-
- static void registerFactory(stdx::function<factory_function_type> factory);
+ static MONGO_DECLARE_SHIM((Collection * _this,
+ OperationContext* opCtx,
+ StringData fullNS,
+ OptionalCollectionUUID uuid,
+ CollectionCatalogEntry* details,
+ RecordStore* recordStore,
+ DatabaseCatalogEntry* dbce,
+ PrivateTo<Collection>)
+ ->std::unique_ptr<Impl>) makeImpl;
explicit inline Collection(OperationContext* const opCtx,
const StringData fullNS,
@@ -350,7 +347,8 @@ public:
CollectionCatalogEntry* const details, // does not own
RecordStore* const recordStore, // does not own
DatabaseCatalogEntry* const dbce) // does not own
- : _pimpl(makeImpl(this, opCtx, fullNS, uuid, details, recordStore, dbce)) {
+ : _pimpl(makeImpl(
+ this, opCtx, fullNS, uuid, details, recordStore, dbce, PrivateCall<Collection>{})) {
this->_impl().init(opCtx);
}
@@ -627,13 +625,8 @@ public:
opCtx, validator, allowedFeatures, maxFeatureCompatibilityVersion);
}
- static StatusWith<ValidationLevel> parseValidationLevel(StringData);
- static StatusWith<ValidationAction> parseValidationAction(StringData);
-
- static void registerParseValidationLevelImpl(
- stdx::function<decltype(parseValidationLevel)> impl);
- static void registerParseValidationActionImpl(
- stdx::function<decltype(parseValidationAction)> impl);
+ static MONGO_DECLARE_SHIM((StringData)->StatusWith<ValidationLevel>) parseValidationLevel;
+ static MONGO_DECLARE_SHIM((StringData)->StatusWith<ValidationAction>) parseValidationAction;
/**
* Sets the validator for this collection.