| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- /*
 
-  *  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_CONTEXT_H_INCLUDED
 
- #define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
 
- #include <memory>
 
- namespace Catch {
 
-     struct IResultCapture;
 
-     struct IRunner;
 
-     struct IConfig;
 
-     struct IMutableContext;
 
-     using IConfigPtr = std::shared_ptr<IConfig const>;
 
-     struct IContext
 
-     {
 
-         virtual ~IContext();
 
-         virtual IResultCapture* getResultCapture() = 0;
 
-         virtual IRunner* getRunner() = 0;
 
-         virtual IConfigPtr const& getConfig() const = 0;
 
-     };
 
-     struct IMutableContext : IContext
 
-     {
 
-         virtual ~IMutableContext();
 
-         virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
 
-         virtual void setRunner( IRunner* runner ) = 0;
 
-         virtual void setConfig( IConfigPtr const& config ) = 0;
 
-     private:
 
-         static IMutableContext *currentContext;
 
-         friend IMutableContext& getCurrentMutableContext();
 
-         friend void cleanUpContext();
 
-         static void createContext();
 
-     };
 
-     inline IMutableContext& getCurrentMutableContext()
 
-     {
 
-         if( !IMutableContext::currentContext )
 
-             IMutableContext::createContext();
 
-         // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
 
-         return *IMutableContext::currentContext;
 
-     }
 
-     inline IContext& getCurrentContext()
 
-     {
 
-         return getCurrentMutableContext();
 
-     }
 
-     void cleanUpContext();
 
-     class SimplePcg32;
 
-     SimplePcg32& rng();
 
- }
 
- #endif // TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
 
 
  |