refactor: move events and service locator into core project

This commit is contained in:
k0t9i
2023-10-17 14:16:58 +04:00
parent 9836ef3a17
commit 03e61a9b9a
55 changed files with 825 additions and 760 deletions

View File

@@ -0,0 +1,33 @@
#pragma once
#include <memory>
#include "../Events/EventDispatcher.h"
namespace L2Bot::Domain::Services
{
class ServiceLocator
{
public:
static ServiceLocator& GetInstance() {
static ServiceLocator instance;
return instance;
}
const std::unique_ptr<Events::EventDispatcher>& GetEventDispatcher()
{
return m_EventDispatcher;
}
void SetEventDispatcher(std::unique_ptr<Events::EventDispatcher> dispatcher)
{
m_EventDispatcher = std::move(dispatcher);
}
private:
ServiceLocator() = default;
virtual ~ServiceLocator() = default;
ServiceLocator(const ServiceLocator&) = delete;
ServiceLocator& operator=(const ServiceLocator&) = delete;
private:
std::unique_ptr<Events::EventDispatcher> m_EventDispatcher;
};
}