//===-- SystemLifetimeManager.h -------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLDB_INITIALIZATION_SYSTEM_LIFETIME_MANAGER_H #define LLDB_INITIALIZATION_SYSTEM_LIFETIME_MANAGER_H #include "lldb/lldb-private-types.h" #include #include namespace lldb_private { class SystemInitializer; class SystemLifetimeManager { public: SystemLifetimeManager(); ~SystemLifetimeManager(); void Initialize(std::unique_ptr initializer, LoadPluginCallbackType plugin_callback); void Terminate(); private: std::recursive_mutex m_mutex; std::unique_ptr m_initializer; bool m_initialized; // Noncopyable. SystemLifetimeManager(const SystemLifetimeManager &other) = delete; SystemLifetimeManager &operator=(const SystemLifetimeManager &other) = delete; }; } #endif