| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							
- /*
 
-  *  Created by Phil on 31/12/2010.
 
-  *  Copyright 2010 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)
 
-  */
 
- #ifndef TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
 
- #define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
 
- #include "catch_interfaces_registry_hub.h"
 
- namespace Catch {
 
-     template<typename T>
 
-     class ReporterRegistrar {
 
-         class ReporterFactory : public IReporterFactory {
 
-             IStreamingReporterPtr create( ReporterConfig const& config ) const override {
 
-                 return std::unique_ptr<T>( new T( config ) );
 
-             }
 
-             std::string getDescription() const override {
 
-                 return T::getDescription();
 
-             }
 
-         };
 
-     public:
 
-         explicit ReporterRegistrar( std::string const& name ) {
 
-             getMutableRegistryHub().registerReporter( name, std::make_shared<ReporterFactory>() );
 
-         }
 
-     };
 
-     template<typename T>
 
-     class ListenerRegistrar {
 
-         class ListenerFactory : public IReporterFactory {
 
-             IStreamingReporterPtr create( ReporterConfig const& config ) const override {
 
-                 return std::unique_ptr<T>( new T( config ) );
 
-             }
 
-             std::string getDescription() const override {
 
-                 return std::string();
 
-             }
 
-         };
 
-     public:
 
-         ListenerRegistrar() {
 
-             getMutableRegistryHub().registerListener( std::make_shared<ListenerFactory>() );
 
-         }
 
-     };
 
- }
 
- #if !defined(CATCH_CONFIG_DISABLE)
 
- #define CATCH_REGISTER_REPORTER( name, reporterType ) \
 
-     CATCH_INTERNAL_START_WARNINGS_SUPPRESSION         \
 
-     CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS          \
 
-     namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); } \
 
-     CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
 
- #define CATCH_REGISTER_LISTENER( listenerType ) \
 
-     CATCH_INTERNAL_START_WARNINGS_SUPPRESSION   \
 
-     CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS    \
 
-     namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; } \
 
-     CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
 
- #else // CATCH_CONFIG_DISABLE
 
- #define CATCH_REGISTER_REPORTER(name, reporterType)
 
- #define CATCH_REGISTER_LISTENER(listenerType)
 
- #endif // CATCH_CONFIG_DISABLE
 
- #endif // TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
 
 
  |