Files
BQP/srcs/RobotNet10/FleetManager/RobotNet10.FleetManager/Services/RobotManager/IRobotManagerService.cs
2026-07-13 09:25:40 +07:00

47 lines
1.5 KiB
C#

using RobotNet10.FleetManager.Script;
using RobotNet10.FleetManager.Services.RobotController;
using RobotNet10.FleetManager.Services.RobotManager.Models;
namespace RobotNet10.FleetManager.Services.RobotManager;
/// <summary>
/// Service for managing RobotController instances and routing events
/// </summary>
public interface IRobotManagerService
{
/// <summary>
/// Get RobotController instance for a robot
/// </summary>
IRobotController? GetRobotController(string robotId);
/// <summary>
/// Get all RobotController instances
/// </summary>
IReadOnlyDictionary<string, IRobotController> GetAllRobotControllers();
/// <summary>
/// Remove RobotController instance (when robot is deleted from DB)
/// </summary>
void RemoveRobotController(string robotId);
/// <summary>
/// Get RobotData for a robot (backward compatibility)
/// </summary>
RobotData? GetRobotData(string robotId);
/// <summary>
/// Get all RobotData (backward compatibility)
/// </summary>
IReadOnlyDictionary<string, RobotData> GetAllRobotData();
/// <summary>
/// Get list of available (online) robots
/// </summary>
IReadOnlyList<string> GetAvailableRobots();
/// <summary>
/// Get list of available robots with condititions
/// </summary>
Task<IReadOnlyList<string>> GetAvailableRobots(string layout, string version, string level, string model, Func<RobotState, bool> func);
}