summaryrefslogtreecommitdiff
path: root/include/internal/catch_singletons.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/internal/catch_singletons.hpp')
-rw-r--r--include/internal/catch_singletons.hpp44
1 files changed, 0 insertions, 44 deletions
diff --git a/include/internal/catch_singletons.hpp b/include/internal/catch_singletons.hpp
deleted file mode 100644
index fbc4b32c..00000000
--- a/include/internal/catch_singletons.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Created by Phil Nash on 15/6/2018.
- *
- * 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_SINGLETONS_HPP_INCLUDED
-#define TWOBLUECUBES_CATCH_SINGLETONS_HPP_INCLUDED
-
-namespace Catch {
-
- struct ISingleton {
- virtual ~ISingleton();
- };
-
-
- void addSingleton( ISingleton* singleton );
- void cleanupSingletons();
-
-
- template<typename SingletonImplT, typename InterfaceT = SingletonImplT, typename MutableInterfaceT = InterfaceT>
- class Singleton : SingletonImplT, public ISingleton {
-
- static auto getInternal() -> Singleton* {
- static Singleton* s_instance = nullptr;
- if( !s_instance ) {
- s_instance = new Singleton;
- addSingleton( s_instance );
- }
- return s_instance;
- }
-
- public:
- static auto get() -> InterfaceT const& {
- return *getInternal();
- }
- static auto getMutable() -> MutableInterfaceT& {
- return *getInternal();
- }
- };
-
-} // namespace Catch
-
-#endif // TWOBLUECUBES_CATCH_SINGLETONS_HPP_INCLUDED