Files
Denso/srcs/RobotNet10/Commons/RobotNet10.NavigationTune/Services/TuningOrchestrator.cs
2026-07-03 16:31:37 +07:00

52 lines
1.8 KiB
C#

using RobotNet10.NavigationTune.Shared.Interfaces;
using RobotNet10.NavigationTune.Shared.Models;
using BatchTestResult = RobotNet10.NavigationTune.Shared.Models.BatchTestResult;
using ComparisonResult = RobotNet10.NavigationTune.Shared.Models.ComparisonResult;
namespace RobotNet10.NavigationTune.Services;
/// <summary>
/// Main orchestrator for tuning operations
/// </summary>
public interface ITuningOrchestrator
{
/// <summary>
/// Start a test and return immediately with testRunId and status Running.
/// Test runs in background; completion is notified via SignalR (ReceiveTestResult).
/// Use this for UI single-test execution so Stop/Pause buttons become active right away.
/// </summary>
Task<TestExecutionResult> StartTestAsync(
TestScenario scenario,
NavigationParameterSet parameters,
string? connectionId = null,
Guid? testRunId = null,
CancellationToken cancellationToken = default
);
Task<TestExecutionResult> RunSingleTestAsync(
TestScenario scenario,
NavigationParameterSet parameters,
string? connectionId = null,
Guid? testRunId = null,
CancellationToken cancellationToken = default
);
Task<BatchTestResult> RunBatchTestsAsync(
List<TestScenario> scenarios,
NavigationParameterSet parameters,
CancellationToken cancellationToken = default
);
Task<ComparisonResult> CompareConfigurationsAsync(
List<NavigationParameterSet> parameterSets,
TestScenario scenario,
CancellationToken cancellationToken = default
);
void PauseTest(string testRunId);
void ResumeTest(string testRunId);
void StopTest(string testRunId);
void EmergencyStop(string testRunId);
}