My Project
Loading...
Searching...
No Matches
MessageProcessor.hpp
1#pragma once
2
3#include "message/MessageFrame.hpp"
4#include "message/MessageAssembler.hpp"
5#include "message/MessageFragmenter.hpp"
6#include <queue>
7#include <mutex>
8#include <condition_variable>
9#include <thread>
10#include <atomic>
11#include <functional>
12#include <optional>
13
14// Forward declarations
15class System;
16class ServerSocket;
17
19private:
20 // Processing thread
21 std::thread processingThread;
22 std::atomic<bool> running;
23
24 // Message processing components
25 MessageAssembler assembler;
26 MessageFragmenter fragmenter;
27
28 // Callbacks
29 void onClientConnected();
30 void onClientDisconnected();
31
32 // Reference to system for handlers
33 System* system;
34
35 // Owned ServerSocket for network communication
36 std::unique_ptr<ServerSocket> serverSocket;
37
38 // Main processing loop
39 void processLoop();
40
41 // Internal handlers
42 void handleInputMessage(const MessageFrame& frame);
43 void handleCompleteMessage(const std::string& messageId, const std::string& payload, MessageType type);
44
45public:
46 MessageProcessor(System* sys, int port);
48
49 // Control methods
50 void start();
51 void stop();
52 bool isRunning() const;
53
54 // Network methods
55 bool acceptConnection();
56 bool isClientConnected() const;
57 void setOnConnectedCallback(std::function<void()> callback);
58 void setOnDisconnectedCallback(std::function<void()> callback);
59
60 // Configuration methods - REMOVED setServerSocket
61
62 // Message handling
63 void sendMessage(const std::string& messageId, const std::string& payload, MessageType type);
64};
Definition MessageAssembler.hpp:15
Definition MessageFragmenter.hpp:7
Definition MessageProcessor.hpp:18
Definition ServerSocket.hpp:18
Definition System.hpp:14
Definition MessageFrame.hpp:34