#ifndef TPS_EVENT_HANDLER_HPP #define TPS_EVENT_HANDLER_HPP #include "app.hpp" #include #include // ============================================================ // 事件接收与处理模块(SU-01 / SU-02 事件接收单元 & 事件处理单元) // ============================================================ /** * 事件接收与处理处理器。 * 负责原始事件的接收(SRS-F-01-001)、标准化处理(SRS-F-01-002) * 以及待处理事件列表的提供(SRS-F-02-001)。 */ class EventHandler { public: EventHandler() = default; ~EventHandler() = default; /** * 接收原始事件数据包。 * * @requirement(name="接收临机事件和规划事件", id="SRS-F-01-001") * 接收来自事件生成模块或上游情报系统的事件数据包,支持 JSON/XML 格式, * 通过 TCP/IP 协议传输,具备心跳机制和断点续传能力。 * 本方法模拟接收原始事件字符串,解析后存入内部缓存并返回确认信息。 * * @param rawData 原始事件数据包(JSON/XML 字符串) * @param format 数据格式标识("json" 或 "xml") * @return true 表示接收并确认成功,false 表示格式无效或解析失败 */ bool receiveEvent(const std::string& rawData, const std::string& format); /** * 对原始事件进行过滤、标准化转换并封装为内部模型。 * * @requirement(name="事件数据过滤转化封装", id="SRS-F-01-002") * 对接收到的事件数据进行字段过滤、时间戳与坐标系格式转换, * 并封装为标准内部事件模型,添加接收时间、处理节点ID等元数据。 * * @param raw 原始事件数据 * @return NormalizedEvent 标准化后的内部事件对象 */ NormalizedEvent processEvent(const Event& raw); /** * 获取尚未生成任务的待处理事件列表。 * * @requirement(name="接收待处理事件列表", id="SRS-F-02-001") * 从事件处理模块获取尚未生成任务的事件集合,用于后续任务生成流程。 * * @return 待处理事件列表 */ std::vector getPendingEvents() const; /** * 获取当前缓存的所有原始事件。 */ std::vector getAllEvents() const; private: std::vector rawEvents_; ///< 原始事件缓存 std::vector normalized_; ///< 标准化事件缓存 /** * 校验事件数据合法性(基础字段检查)。 */ bool validateEvent(const std::string& rawData, const std::string& format); }; #endif // TPS_EVENT_HANDLER_HPP