1 /* 2 * Created by Martin on 31/08/2017. 3 * 4 * Distributed under the Boost Software License, Version 1.0. (See accompanying 5 * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 */ 7 #include "catch_reporter_registry.h" 8 9 namespace Catch { 10 11 ReporterRegistry::~ReporterRegistry() = default; 12 create(std::string const & name,IConfigPtr const & config) const13 IStreamingReporterPtr ReporterRegistry::create( std::string const& name, IConfigPtr const& config ) const { 14 auto it = m_factories.find( name ); 15 if( it == m_factories.end() ) 16 return nullptr; 17 return it->second->create( ReporterConfig( config ) ); 18 } 19 registerReporter(std::string const & name,IReporterFactoryPtr const & factory)20 void ReporterRegistry::registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) { 21 m_factories.emplace(name, factory); 22 } registerListener(IReporterFactoryPtr const & factory)23 void ReporterRegistry::registerListener( IReporterFactoryPtr const& factory ) { 24 m_listeners.push_back( factory ); 25 } 26 getFactories() const27 IReporterRegistry::FactoryMap const& ReporterRegistry::getFactories() const { 28 return m_factories; 29 } getListeners() const30 IReporterRegistry::Listeners const& ReporterRegistry::getListeners() const { 31 return m_listeners; 32 } 33 34 } 35