diff options
Diffstat (limited to 'src/mongo/db/catalog/database_holder.cpp')
-rw-r--r-- | src/mongo/db/catalog/database_holder.cpp | 29 |
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 |