using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; /// /// Driver-side seam for subscription lifecycle + the inbound event stream. Production /// wraps MxGatewaySession.SubscribeBulkAsync, UnsubscribeBulkAsync, and /// StreamEventsAsync; tests substitute a fake to drive synthetic events through /// the without a real gw. /// public interface IGalaxySubscriber { /// /// Subscribe a batch of tag full references. Returns one /// per request entry, in input order. Failed tags /// (gateway rejection) carry a non-zero status and an item handle of zero or /// negative — the caller treats those as per-tag failures rather than a whole-call /// failure. /// /// The list of tag references to subscribe to. /// The buffered update interval in milliseconds. /// Cancellation token for the operation. Task> SubscribeBulkAsync( IReadOnlyList fullReferences, int bufferedUpdateIntervalMs, CancellationToken cancellationToken); /// Unsubscribe a batch of item handles obtained from . /// The item handles to unsubscribe. /// Cancellation token for the operation. Task UnsubscribeBulkAsync(IReadOnlyList itemHandles, CancellationToken cancellationToken); /// /// Long-running consumer of the gateway's StreamEvents RPC. Each emitted /// carries the gw item handle the caller correlates against /// its . /// /// Cancellation token for the stream. IAsyncEnumerable StreamEventsAsync(CancellationToken cancellationToken); }