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