47 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|