Files
OrpaonVision/OrpaonVision.SiteApp/Runtime/Services/IRuntimeStateMachineService.cs
2026-04-12 22:34:46 +08:00

47 lines
1.2 KiB
C#

using OrpaonVision.Core.Results;
using OrpaonVision.SiteApp.Runtime.Contracts;
namespace OrpaonVision.SiteApp.Runtime.Services
{
/// <summary>
/// 运行态状态机服务接口。
/// </summary>
public interface IRuntimeStateMachineService
{
/// <summary>
/// 获取当前状态快照。
/// </summary>
RuntimeStateSnapshotDto GetSnapshot();
/// <summary>
/// 获取当前状态。
/// </summary>
RuntimeState GetCurrentState();
/// <summary>
/// 获取当前层级。
/// </summary>
int GetCurrentLayer();
/// <summary>
/// 检查是否可以执行特定操作。
/// </summary>
bool CanExecuteOperation(StateTrigger trigger);
/// <summary>
/// 基于触发器执行状态转换。
/// </summary>
Result<StateTransitionEvent> TriggerTransition(StateTrigger trigger, string? reason = null, object? parameters = null);
/// <summary>
/// 尝试推进到下一层。
/// </summary>
Result MoveToNextLayer();
/// <summary>
/// 重置状态机。
/// </summary>
void Reset();
}
}