Files
eUi/include/eui_frameworkSdk/IMissionConfig.h
T
RCiRoot e3f7733316 V20260829-2.6.1
完成框架目录和模块重构;新增核心、单例、工具、加密及框架 SDK;统一任务、相机和 RPC 接口,并增加离线检测、相机标定、备份恢复、版本管理、崩溃守护和心跳监控功能。
2026-09-20 16:01:09 +08:00

41 lines
1.4 KiB
C++

#pragma once
#include <eui_frameworkSdk/IMissionAlgo.h>
#include <eui_frameworkSdk/IMissionBridge.h>
#include <eui_frameworkSdk/MissionMetadata.h>
#include <eui_frameworkSdk/MissionRuntimeInterfaces.h>
#include <memory>
namespace eui_frameworkSdk
{
// 固定生命周期的 mission 编排/配置角色,不参与热重载。
//
// Core invokes the lifecycle in this order:
// initBasic -> shutdown -> destroyMissionConfigV1.
// initBasic 在一次 backend 生命周期中只调用一次;shutdown 只在释放时调用。
class IMissionConfig
{
public:
// 释放 mission 配置实例。
virtual ~IMissionConfig() = default;
// 注入宿主桥接接口。
void setBridge(IMissionBridge* bridgeIn) noexcept { bridge = bridgeIn; }
// 初始化 mission 配置和运行时依赖。
virtual bool initBasic(IServiceManager& serviceManager, const MissionMetadata& metadata) = 0;
// 释放 mission 运行资源。
virtual void shutdown() = 0;
// 注入当前算法实例。初次加载及 IMissionAlgo 热重载成功后调用;
// nullptr 仅用于 backend 释放。该函数不会重启或重新初始化 IMissionConfig。
// config-only mission 可使用默认空实现。
virtual void setAlgo(std::shared_ptr<IMissionAlgo> algo) { (void)algo; }
protected:
IMissionBridge* bridge = nullptr; // 宿主桥接接口,不负责释放。
};
}