using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Shared.Contracts; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Host.Backend; /// /// Galaxy data-plane abstraction. Replaces the placeholder StubFrameHandler with a /// real boundary the lifted MxAccessClient + GalaxyRepository implement during /// Phase 2 Task B.1. Splitting the IPC dispatch (GalaxyFrameHandler) from the /// backend means the dispatcher is unit-testable against an in-memory mock without needing /// live Galaxy. /// public interface IGalaxyBackend { /// /// Server-pushed events the backend raises asynchronously (data-change, alarm, /// host-status). The frame handler subscribes once on connect and forwards each /// event to the Proxy as a typed notification. /// event System.EventHandler? OnDataChange; event System.EventHandler? OnAlarmEvent; event System.EventHandler? OnHostStatusChanged; Task OpenSessionAsync(OpenSessionRequest req, CancellationToken ct); Task CloseSessionAsync(CloseSessionRequest req, CancellationToken ct); Task DiscoverAsync(DiscoverHierarchyRequest req, CancellationToken ct); Task ReadValuesAsync(ReadValuesRequest req, CancellationToken ct); Task WriteValuesAsync(WriteValuesRequest req, CancellationToken ct); Task SubscribeAsync(SubscribeRequest req, CancellationToken ct); Task UnsubscribeAsync(UnsubscribeRequest req, CancellationToken ct); Task SubscribeAlarmsAsync(AlarmSubscribeRequest req, CancellationToken ct); Task AcknowledgeAlarmAsync(AlarmAckRequest req, CancellationToken ct); Task HistoryReadAsync(HistoryReadRequest req, CancellationToken ct); Task HistoryReadProcessedAsync(HistoryReadProcessedRequest req, CancellationToken ct); Task HistoryReadAtTimeAsync(HistoryReadAtTimeRequest req, CancellationToken ct); Task HistoryReadEventsAsync(HistoryReadEventsRequest req, CancellationToken ct); Task RecycleAsync(RecycleHostRequest req, CancellationToken ct); }