1 /* 2 * Created by Phil on 20/04/2011. 3 * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. 4 * 5 * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 */ 8 #ifndef TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED 9 #define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED 10 11 #include "catch_interfaces_exception.h" 12 #include <vector> 13 #include <string> 14 #include <memory> 15 16 namespace Catch { 17 18 class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry { 19 public: 20 ~ExceptionTranslatorRegistry(); 21 virtual void registerTranslator( const IExceptionTranslator* translator ); 22 std::string translateActiveException() const override; 23 std::string tryTranslators() const; 24 25 private: 26 std::vector<std::unique_ptr<IExceptionTranslator const>> m_translators; 27 }; 28 } 29 30 #endif // TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED 31