// Copyright 2020 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include namespace Core { // Central class that encapsulates the running system. class System { public: ~System(); System(const System&) = delete; System& operator=(const System&) = delete; System(System&&) = delete; System& operator=(System&&) = delete; // Intermediate instance accessor until global state is eliminated. static System& GetInstance() { static System instance; return instance; } private: System(); struct Impl; std::unique_ptr m_impl; }; } // namespace Core