| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- /*
 
-  *  Created by Phil on 5/8/2012.
 
-  *  Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
 
-  *
 
-  *  Distributed under the Boost Software License, Version 1.0. (See accompanying
 
-  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-  */
 
- #include "catch_interfaces_registry_hub.h"
 
- #include "catch_context.h"
 
- #include "catch_test_case_registry_impl.h"
 
- #include "catch_reporter_registry.h"
 
- #include "catch_exception_translator_registry.h"
 
- #include "catch_tag_alias_registry.h"
 
- #include "catch_startup_exception_registry.h"
 
- #include "catch_singletons.hpp"
 
- #include "catch_enum_values_registry.h"
 
- namespace Catch {
 
-     namespace {
 
-         class RegistryHub : public IRegistryHub, public IMutableRegistryHub,
 
-                             private NonCopyable {
 
-         public: // IRegistryHub
 
-             RegistryHub() = default;
 
-             IReporterRegistry const& getReporterRegistry() const override {
 
-                 return m_reporterRegistry;
 
-             }
 
-             ITestCaseRegistry const& getTestCaseRegistry() const override {
 
-                 return m_testCaseRegistry;
 
-             }
 
-             IExceptionTranslatorRegistry const& getExceptionTranslatorRegistry() const override {
 
-                 return m_exceptionTranslatorRegistry;
 
-             }
 
-             ITagAliasRegistry const& getTagAliasRegistry() const override {
 
-                 return m_tagAliasRegistry;
 
-             }
 
-             StartupExceptionRegistry const& getStartupExceptionRegistry() const override {
 
-                 return m_exceptionRegistry;
 
-             }
 
-         public: // IMutableRegistryHub
 
-             void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) override {
 
-                 m_reporterRegistry.registerReporter( name, factory );
 
-             }
 
-             void registerListener( IReporterFactoryPtr const& factory ) override {
 
-                 m_reporterRegistry.registerListener( factory );
 
-             }
 
-             void registerTest( TestCase const& testInfo ) override {
 
-                 m_testCaseRegistry.registerTest( testInfo );
 
-             }
 
-             void registerTranslator( const IExceptionTranslator* translator ) override {
 
-                 m_exceptionTranslatorRegistry.registerTranslator( translator );
 
-             }
 
-             void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) override {
 
-                 m_tagAliasRegistry.add( alias, tag, lineInfo );
 
-             }
 
-             void registerStartupException() noexcept override {
 
- #if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
 
-                 m_exceptionRegistry.add(std::current_exception());
 
- #else
 
-                 CATCH_INTERNAL_ERROR("Attempted to register active exception under CATCH_CONFIG_DISABLE_EXCEPTIONS!");
 
- #endif
 
-             }
 
-             IMutableEnumValuesRegistry& getMutableEnumValuesRegistry() override {
 
-                 return m_enumValuesRegistry;
 
-             }
 
-         private:
 
-             TestRegistry m_testCaseRegistry;
 
-             ReporterRegistry m_reporterRegistry;
 
-             ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
 
-             TagAliasRegistry m_tagAliasRegistry;
 
-             StartupExceptionRegistry m_exceptionRegistry;
 
-             Detail::EnumValuesRegistry m_enumValuesRegistry;
 
-         };
 
-     }
 
-     using RegistryHubSingleton = Singleton<RegistryHub, IRegistryHub, IMutableRegistryHub>;
 
-     IRegistryHub const& getRegistryHub() {
 
-         return RegistryHubSingleton::get();
 
-     }
 
-     IMutableRegistryHub& getMutableRegistryHub() {
 
-         return RegistryHubSingleton::getMutable();
 
-     }
 
-     void cleanUp() {
 
-         cleanupSingletons();
 
-         cleanUpContext();
 
-     }
 
-     std::string translateActiveException() {
 
-         return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
 
-     }
 
- } // end namespace Catch
 
 
  |