From 06af1ed6c63dbea3c2f2d7d577330cd2e82cd720 Mon Sep 17 00:00:00 2001 From: black Date: Sun, 6 Jul 2025 15:19:12 +0200 Subject: [PATCH] added manager singleton logic --- src/Manager.cpp | 11 ++++++++++- src/Manager.h | 13 +++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Manager.cpp b/src/Manager.cpp index 071614d..84ef127 100644 --- a/src/Manager.cpp +++ b/src/Manager.cpp @@ -2,4 +2,13 @@ // Created by black on 12.06.25. // -#include "emulator/Manager.h" +#include "Manager.h" + +#include + +Manager::Manager(std::string path): m_path(std::move(path)) {} + +Manager * Manager::getInstance(const std::string &program_path) { + static Manager instance{program_path}; + return &instance; +} diff --git a/src/Manager.h b/src/Manager.h index f58dc65..d20bac0 100644 --- a/src/Manager.h +++ b/src/Manager.h @@ -4,11 +4,24 @@ #ifndef MANAGER_H #define MANAGER_H +#include /// Die Manager Instanz sorgt für die Koordination von user input, Datei einlesen, code execution und anderen Aktionen. class Manager { +private: + /// Die Instanz des Managers soll mit einem immutable path zum Programm erstellt werden + explicit Manager(std::string path); + std::string m_path; public: + /// Singleton Logik + Manager(const Manager &) = delete; + Manager(const Manager &&) = delete; + Manager &operator=(const Manager &) = delete; + Manager &operator=(const Manager &&) = delete; + ~Manager() = default; + + static Manager *getInstance(const std::string &program_path); };