using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TeamAAS_VP.Models; using TeamAAS_VP.Models.Scanner; namespace TeamAAS_VP.Interfaces { /// /// 提供扫码枪生命周期管理的接口,包括创建、获取及注销扫码枪实例。 /// public interface IScannerService { /// /// 异步创建并注册一个扫码枪实例。 /// /// 要创建扫码枪的唯一标识(GUID)。 /// 用于初始化扫码枪的信息对象,不能为空。 /// /// 返回一个 ;任务完成时布尔值指示创建是否成功。 /// /// 为 null 时抛出。 Task CreateScannerAsync(Guid id, ScannerInfo scannerInfo); /// /// 同步创建并注册一个扫码枪实例。 /// /// 要创建扫码枪的唯一标识(GUID)。 /// 用于初始化扫码枪的信息对象,不能为空。 /// 返回布尔值,指示创建是否成功。 /// 为 null 时抛出。 bool CreateScanner(Guid id, ScannerInfo scannerInfo); /// /// 获取已注册的扫码枪实例(同步)。通过 GUID 查找。 /// /// 要获取的扫码枪唯一标识(GUID)。 /// /// 已注册的 实例;如果未找到对应扫码枪,返回 null(或实现可选择抛出异常)。 /// IScanner GetScanner(Guid id); /// /// 异步获取已注册的扫码枪实例。通过 GUID 查找。 /// /// 要获取的扫码枪唯一标识(GUID)。 /// /// 一个任务,完成时返回对应的 实例;若未找到可返回 null。 /// Task GetScannerAsync(Guid id); /// /// 获取所有已注册的扫码枪实例(同步)。 /// /// IReadOnlyCollection GetAllScanners(); /// /// 获取所有已注册的扫码枪实例(异步)。 /// /// Task> GetAllScannersAsync(); /// /// 尝试获取已注册的扫码枪实例(同步)。通过 GUID 查找。 /// /// /// /// bool TryGetScanner(Guid id, out IScanner scanner); /// /// 尝试获取已注册的扫码枪实例(异步)。通过 GUID 查找。 /// /// /// Task<(bool found, IScanner scanner)> TryGetScannerAsync(Guid id); /// /// 检查扫码枪是否已注册(同步)。通过 GUID 检查。 /// /// /// bool ContainsScanner(Guid id); /// /// 检查扫码枪是否已注册(异步)。通过 GUID 检查。 /// /// /// Task ContainsScannerAsync(Guid id); /// /// 移除已注册的扫码枪实例(同步)。通过 GUID 移除。 /// /// /// 返回是否成功移除 bool RemoveScanner(Guid id); /// /// 移除已注册的扫码枪实例(异步)。通过 GUID 移除。 /// /// /// Task RemoveScannerAsync(Guid id); /// /// 异步注销并移除指定的扫码枪注册信息。通过 GUID 注销。 /// /// 要注销的扫码枪唯一标识(GUID)。 /// 表示注销操作完成的任务。 Task UnRegisterScannerAsync(Guid id); /// /// 同步注销并移除指定的扫码枪注册信息。通过 GUID 注销。 /// /// 要注销的扫码枪唯一标识(GUID)。 void UnRegisterScanner(Guid id); /// /// 获取已注册的扫码枪实例(同步)。通过扫码枪编号(int)查找。 /// /// 扫码枪编号(整型)。 /// /// 已注册的 实例;如果未找到对应扫码枪,返回 null(或实现可选择抛出异常)。 /// IScanner GetScannerByNumber(int number); /// /// 异步获取已注册的扫码枪实例。通过扫码枪编号(int)查找。 /// /// 扫码枪编号(整型)。 /// /// 一个任务,完成时返回对应的 实例;若未找到可返回 null。 /// Task GetScannerByNumberAsync(int number); /// /// 异步注销并移除指定的扫码枪注册信息。通过扫码枪编号(int)注销。 /// /// 要注销的扫码枪编号(整型)。 /// 表示注销操作完成的任务。 Task UnRegisterScannerByNumberAsync(int number); /// /// 同步注销并移除指定的扫码枪注册信息。通过扫码枪编号(int)注销。 /// /// 要注销的扫码枪编号(整型)。 void UnRegisterScannerByNumber(int number); /// /// 移除所有扫码枪 /// void RemoveAllScanners(); /// /// 初始化所有扫码枪 /// /// /// (bool IsSucceed, string Message) InitializeAllScanners(ScannerInfo[] scanners); /// /// 初始化所有扫码枪 (异步) /// /// Task<(bool IsSucceed, string Message)> InitializeAllScannersAsync(ScannerInfo[] scanners); /// /// 更新扫码枪编号 /// /// /// void UpdateScannerNumber(Guid id, int newNumber); } }