#ifndef IPC_H #define IPC_H #include #include #include #include #include #include "tser/tser.hpp" #include "Serialize.h" #include "PluginInterface.h" // Include your IPlugin interface header #include "Command.h" // Include your Command structure header #include class IPC { public: IPC(); ~IPC(); void registerHandler(std::shared_ptr handler); void sendMessage(const Command &cmd); std::optional receiveMessage(); private: std::queue messageQueue; std::vector> handlers; std::mutex queueMutex; std::condition_variable queueCondVar; }; #endif // IPC_H