| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | /* *  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) */#include "catch_context.h"#include "catch_common.h"#include "catch_random_number_generator.h"namespace Catch {    class Context : public IMutableContext, NonCopyable {    public: // IContext        IResultCapture* getResultCapture() override {            return m_resultCapture;        }        IRunner* getRunner() override {            return m_runner;        }        IConfigPtr const& getConfig() const override {            return m_config;        }        ~Context() override;    public: // IMutableContext        void setResultCapture( IResultCapture* resultCapture ) override {            m_resultCapture = resultCapture;        }        void setRunner( IRunner* runner ) override {            m_runner = runner;        }        void setConfig( IConfigPtr const& config ) override {            m_config = config;        }        friend IMutableContext& getCurrentMutableContext();    private:        IConfigPtr m_config;        IRunner* m_runner = nullptr;        IResultCapture* m_resultCapture = nullptr;    };    IMutableContext *IMutableContext::currentContext = nullptr;    void IMutableContext::createContext()    {        currentContext = new Context();    }    void cleanUpContext() {        delete IMutableContext::currentContext;        IMutableContext::currentContext = nullptr;    }    IContext::~IContext() = default;    IMutableContext::~IMutableContext() = default;    Context::~Context() = default;    SimplePcg32& rng() {        static SimplePcg32 s_rng;        return s_rng;    }}
 |