using System.Threading;
using System.Threading.Tasks;
using ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Shared.Contracts;
namespace ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Host.Backend;
///
/// The Host's view of a FOCAS session. One implementation wraps the real
/// Fwlib32.dll via P/Invoke (lands with the real Fwlib32 integration follow-up,
/// since no hardware is available today); a second implementation —
/// — is used by tests.
/// Both live on .NET 4.8 x86 so the Host can be deployed in either mode without
/// changing the pipe server.
/// Invoked via FwlibFrameHandler in the Ipc namespace.
///
public interface IFocasBackend
{
Task OpenSessionAsync(OpenSessionRequest request, CancellationToken ct);
Task CloseSessionAsync(CloseSessionRequest request, CancellationToken ct);
Task ReadAsync(ReadRequest request, CancellationToken ct);
Task WriteAsync(WriteRequest request, CancellationToken ct);
Task PmcBitWriteAsync(PmcBitWriteRequest request, CancellationToken ct);
Task ProbeAsync(ProbeRequest request, CancellationToken ct);
}