using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Team.FFFeederService.Interfaces; using TeamAAS_VP.Models; namespace TeamAAS_VP.Interfaces { /// /// 提供机器人生命周期管理的接口,包括创建、获取及注销机器人实例。 /// public interface IRobotService { /// /// 异步创建并注册一个机器人实例。 /// /// 要创建机器人的唯一标识(GUID)。 /// 用于初始化机器人的信息对象,不能为空。 /// /// 返回一个 ;任务完成时布尔值指示创建是否成功。 /// /// 为 null 时抛出。 Task CreateRobotAsync(Guid id, RobotInfo robotInfo); /// /// 同步创建并注册一个机器人实例。 /// /// 要创建机器人的唯一标识(GUID)。 /// 用于初始化机器人的信息对象,不能为空。 /// 返回布尔值,指示创建是否成功。 /// 为 null 时抛出。 bool CreateRobot(Guid id, RobotInfo robotInfo); /// /// 获取已注册的机器人实例(同步)。通过 GUID 查找。 /// /// 要获取的机器人唯一标识(GUID)。 /// /// 已注册的 实例;如果未找到对应机器人,返回 null(或实现可选择抛出异常)。 /// IRobot GetRobot(Guid id); /// /// 异步获取已注册的机器人实例。通过 GUID 查找。 /// /// 要获取的机器人唯一标识(GUID)。 /// /// 一个任务,完成时返回对应的 实例;若未找到可返回 null。 /// Task GetRobotAsync(Guid id); /// /// 获取所有已注册的机器人实例(同步)。 /// /// IReadOnlyCollection GetAllRobots(); /// /// 获取所有已注册的机器人实例(异步)。 /// /// Task> GetAllRobotsAsync(); /// /// 尝试获取已注册的机器人实例(同步)。通过 GUID 查找。 /// /// /// /// bool TryGetRobot(Guid id, out IRobot robot); /// /// 尝试获取已注册的机器人实例(异步)。通过 GUID 查找。 /// /// /// Task<(bool found, IRobot robot)> TryGetRobotAsync(Guid id); /// /// 检查机器人是否已注册(同步)。通过 GUID 检查。 /// /// /// bool ContainsRobot(Guid id); /// /// 检查机器人是否已注册(异步)。通过 GUID 检查。 /// /// /// Task ContainsRobotAsync(Guid id); /// /// 移除已注册的机器人实例(同步)。通过 GUID 移除。 /// /// /// 返回是否成功移除 bool RemoveRobot(Guid id); /// /// 移除已注册的机器人实例(异步)。通过 GUID 移除。 /// /// /// Task RemoveRobotAsync(Guid id); /// /// 异步注销并移除指定的机器人注册信息。通过 GUID 注销。 /// /// 要注销的机器人唯一标识(GUID)。 /// 表示注销操作完成的任务。 Task UnRegisterRobotAsync(Guid id); /// /// 同步注销并移除指定的机器人注册信息。通过 GUID 注销。 /// /// 要注销的机器人唯一标识(GUID)。 void UnRegisterRobot(Guid id); /// /// 获取已注册的机器人实例(同步)。通过机器人编号(int)查找。 /// /// 机器人编号(整型)。 /// /// 已注册的 实例;如果未找到对应机器人,返回 null(或实现可选择抛出异常)。 /// IRobot GetRobotByNumber(int number); /// /// 异步获取已注册的机器人实例。通过机器人编号(int)查找。 /// /// 机器人编号(整型)。 /// /// 一个任务,完成时返回对应的 实例;若未找到可返回 null。 /// Task GetRobotByNumberAsync(int number); /// /// 异步注销并移除指定的机器人注册信息。通过机器人编号(int)注销。 /// /// 要注销的机器人编号(整型)。 /// 表示注销操作完成的任务。 Task UnRegisterRobotByNumberAsync(int number); /// /// 同步注销并移除指定的机器人注册信息。通过机器人编号(int)注销。 /// /// 要注销的机器人编号(整型)。 void UnRegisterRobotByNumber(int number); /// /// 移除所有机器人 /// void RemoveAllRobots(); /// /// 初始化所有机器人 /// /// /// (bool IsSucceed, string Message) InitializeAllRobots(RobotInfo[] robots); /// /// 初始化所有机器人 (异步) /// /// Task<(bool IsSucceed, string Message)> InitializeAllRobotsAsync(RobotInfo[] robots); /// /// 更新机器人编号 /// /// /// void UpdateRobotNumber(Guid id, int newNumber); } }