summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/database_holder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/catalog/database_holder.cpp')
-rw-r--r--src/mongo/db/catalog/database_holder.cpp29
1 files changed, 3 insertions, 26 deletions
diff --git a/src/mongo/db/catalog/database_holder.cpp b/src/mongo/db/catalog/database_holder.cpp
index 0b0c4336662..b40577d797f 100644
--- a/src/mongo/db/catalog/database_holder.cpp
+++ b/src/mongo/db/catalog/database_holder.cpp
@@ -36,32 +36,9 @@ namespace mongo {
DatabaseHolder::Impl::~Impl() = default;
-namespace {
-stdx::function<DatabaseHolder::factory_function_type> factory;
-} // namespace
-
-void DatabaseHolder::registerFactory(decltype(factory) newFactory) {
- factory = std::move(newFactory);
-}
-
-auto DatabaseHolder::makeImpl() -> std::unique_ptr<Impl> {
- return factory();
-}
-
void DatabaseHolder::TUHook::hook() noexcept {}
-namespace {
-stdx::function<decltype(dbHolder)> dbHolderImpl;
-} // namespace
-} // namespace mongo
-
-// The `mongo::` prefix is necessary to placate MSVC -- it is unable to properly identify anonymous
-// nested namespace members in `decltype` expressions when defining functions using scope-resolution
-// syntax.
-void mongo::registerDbHolderImpl(decltype(mongo::dbHolderImpl) impl) {
- dbHolderImpl = std::move(impl);
-}
+MONGO_DEFINE_SHIM(DatabaseHolder::makeImpl);
+MONGO_DEFINE_SHIM(DatabaseHolder::getDatabaseHolder);
-auto mongo::dbHolder() -> DatabaseHolder& {
- return dbHolderImpl();
-}
+} // namespace mongo