task_plan_2/include/app.hpp

58 lines
2.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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.1CSCI部件编排
/// 组合所有核心模块,通过消息总线解耦,提供统一的全流程编排入口。
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