using Kean.Application.Command.ViewModels; using Kean.Domain.Wcs.Commands; using Orleans; using System.Threading.Tasks; namespace Kean.Application.Command.Interfaces { /// <summary> /// 表示控制交互颗粒 /// </summary> internal interface IWcsGrain : IGrainWithGuidKey { /// <summary> /// 串行接受输入指令 /// </summary> /// <param name="command">命令</param> /// <returns>降级指令及失败信息</returns> Task<(AcceptInputCommand Fallback, Failure Failure)> AcceptInput(AcceptInputCommand command); /// <summary> /// 串行同步输出指令 /// </summary> /// <param name="command">命令</param> /// <returns>失败信息</returns> Task<Failure> SyncOutput(SyncOutputCommand command); /// <summary> /// 串行同步站台 /// </summary> /// <param name="command">命令</param> /// <returns>失败信息</returns> Task<Failure> SyncStation(SyncStationCommand command); } }