summaryrefslogtreecommitdiff
path: root/src/config/legacy/DispatcherTranslator.hpp
blob: 18978f798b5f92940732e1ea0e2cadb826e2ea26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "../../SharedDefs.hpp"
#include "../../helpers/memory/Memory.hpp"

#include <functional>
#include <unordered_map>
#include <string>

namespace Config::Legacy {
    class CDispatcherTranslator {
      public:
        CDispatcherTranslator();
        ~CDispatcherTranslator() = default;

        SDispatchResult run(const std::string& dispatcher, const std::string& data);

      private:
        std::unordered_map<std::string, std::function<SDispatchResult(const std::string&)>> m_dispMap;
    };

    UP<CDispatcherTranslator>& translator();
}