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);
}
}