58 lines
2.0 KiB
C++
58 lines
2.0 KiB
C++
#ifndef BATTLEFIELD_APP_HPP
|
||
#define BATTLEFIELD_APP_HPP
|
||
|
||
#include <string>
|
||
#include "core/event.hpp"
|
||
#include "core/task.hpp"
|
||
#include "core/template.hpp"
|
||
#include "core/plan.hpp"
|
||
#include "core/dispatch.hpp"
|
||
#include "core/message_bus.hpp"
|
||
|
||
namespace battlefield {
|
||
|
||
/// @brief 战场任务规划系统顶层应用门面(设计文档4.1:CSCI部件编排)
|
||
/// 组合所有核心模块,通过消息总线解耦,提供统一的全流程编排入口。
|
||
class App {
|
||
public:
|
||
/// @brief 构造函数,初始化各模块并连接消息总线
|
||
App();
|
||
|
||
/// @brief 运行完整的演示流程
|
||
/// 模拟:事件接收 → 任务生成 → 模板选择 → 方案制定 → 分发监控
|
||
void Run();
|
||
|
||
/// @brief 从事件文件目录运行完整流程(使用 events.ndjson)
|
||
/// @param eventFilePath 事件文件路径
|
||
/// @param templateDir 模板目录
|
||
void RunFromFiles(const std::string& eventFilePath,
|
||
const std::string& templateDir);
|
||
|
||
/// @brief 获取事件处理器引用
|
||
EventProcessor& GetEventProcessor() { return eventProcessor_; }
|
||
/// @brief 获取任务生成器引用
|
||
TaskGenerator& GetTaskGenerator() { return taskGenerator_; }
|
||
/// @brief 获取模板管理器引用
|
||
TemplateManager& GetTemplateManager() { return templateManager_; }
|
||
/// @brief 获取方案管理器引用
|
||
PlanManager& GetPlanManager() { return planManager_; }
|
||
/// @brief 获取分发监控器引用
|
||
DispatchMonitor& GetDispatchMonitor() { return dispatchMonitor_; }
|
||
/// @brief 获取消息总线引用
|
||
MessageBus& GetMessageBus() { return MessageBus::Instance(); }
|
||
|
||
private:
|
||
EventProcessor eventProcessor_;
|
||
TaskGenerator taskGenerator_;
|
||
TemplateManager templateManager_;
|
||
PlanManager planManager_;
|
||
DispatchMonitor dispatchMonitor_;
|
||
|
||
/// @brief 初始化消息总线订阅(连接各模块)
|
||
void SetupMessageBus();
|
||
};
|
||
|
||
} // namespace battlefield
|
||
|
||
#endif // BATTLEFIELD_APP_HPP
|