summaryrefslogtreecommitdiff
path: root/src/KingSystem/Utils/Thread/MessageProcessor.h
blob: a53775b85477eedb91ab1aa02e5117c56acd52f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once

namespace ksys {

class Message;

class MessageProcessor {
public:
    class Logger {
    public:
        Logger() = default;
        virtual ~Logger() = default;
        virtual void log(const Message& message, bool success) = 0;
    };

    /// @param logger Must be non null.
    explicit MessageProcessor(Logger* logger);
    virtual ~MessageProcessor();
    virtual bool process(Message* message);

private:
    Logger* mLogger{};
};

}  // namespace ksys