using System; using System.Threading; using System.Threading.Tasks; using FanucProgramManager.Cnc.Models; namespace FanucProgramManager.Cnc { public interface ICncMachine : IDisposable { string Name { get; } ConnectionState State { get; } event EventHandler StateChanged; Task> ConnectAsync(CancellationToken ct = default); Task DisconnectAsync(); Task> ReadAsync(CancellationToken ct = default); Task> ReadActiveProgramAsync(CancellationToken ct = default); Task> ReadProgramAsync(string path, CancellationToken ct = default); Task> WriteProgramAsync(string path, CncProgram program, CancellationToken ct = default); Task> SelectMainProgramAsync(string path, CancellationToken ct = default); Task> DeleteProgramAsync(string path, CancellationToken ct = default); } }