using ArchestrAServices.ASBContract; using ArchestrAServices.ASBIDataContract.V2; using ArchestrAServices.Contract; namespace ArchestrAServices.ASBIDataV2Contract; public interface IDataV2 { IAsbInterfaceSettings Settings { get; } ArchestrAServices.ASBContract.ArchestrAResult KeepAlive(ArchestrAServices.ASBContract.ConnectionId Id); void OnConnect(ArchestrAServices.ASBContract.ConnectionId ConnectionId, ulong Timeout); ArchestrAServices.ASBContract.ArchestrAResult ActivateUser(ArchestrAServices.ASBContract.ConnectionId Id, UserToken UserToken); ArchestrAServices.ASBContract.ArchestrAResult ExchangeCapabilities(out string ServiceCapabilities, ArchestrAServices.ASBContract.ConnectionId Id, string ClientCapabilities); ArchestrAServices.ASBContract.ArchestrAResult Read(out ItemStatus[] Status, out RuntimeValue[] Values, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items); ArchestrAServices.ASBContract.ArchestrAResult Write(out ItemStatus[] Status, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items, WriteValue[] Values, uint WriteHandle); ArchestrAServices.ASBContract.ArchestrAResult WriteUser(out ItemStatus[] Status, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items, WriteValue[] Values, UserToken User, uint WriteHandle); ArchestrAServices.ASBContract.ArchestrAResult WriteVerified(out ItemStatus[] Status, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items, WriteValue[] Values, UserToken User, UserToken Supervisor, uint WriteHandle); ArchestrAServices.ASBContract.ArchestrAResult WriteSecured(out ItemStatus[] Status, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items, WriteValue[] Values, UserToken User, uint WriteHandle); ArchestrAServices.ASBContract.ArchestrAResult WriteConfirmed(out WriteValue ValueReceived, out long WriteToken, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity Item, WriteValue Value, UserToken User, UserToken Supervisor); ArchestrAServices.ASBContract.ArchestrAResult ConfirmWrite(ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity Item, long WriteToken, WriteValue Value, UserToken User, UserToken Supervisor, uint WriteHandle); ArchestrAServices.ASBContract.ArchestrAResult PublishWriteComplete(out ItemWriteComplete[] CompleteWrites, ArchestrAServices.ASBContract.ConnectionId Id); ArchestrAServices.ASBContract.ArchestrAResult CreateSubscription(out long SubscriptionId, ArchestrAServices.ASBContract.ConnectionId Id, long MaxQueueSize, ulong SampleInterval); ArchestrAServices.ASBContract.ArchestrAResult SetSubscriptionState(ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId, ArchestrAServices.ASBIDataContract.V2.Variant NewState, ushort StateToChange); ArchestrAServices.ASBContract.ArchestrAResult GetSubscriptionState(out ArchestrAServices.ASBIDataContract.V2.Variant State, ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId, ushort StateToGet); ArchestrAServices.ASBContract.ArchestrAResult DeleteSubscription(ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId); ArchestrAServices.ASBContract.ArchestrAResult AddMonitoredItems(out ItemStatus[] Status, out ItemRegistration[] ItemCapabilities, ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId, MonitoredItem[] Items, byte RequireId); ArchestrAServices.ASBContract.ArchestrAResult DeleteMonitoredItems(out ItemStatus[] Status, ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId, MonitoredItem[] Items); ArchestrAServices.ASBContract.ArchestrAResult GetMonitoredItems(out MonitoredItem[] Items, ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId); ArchestrAServices.ASBContract.ArchestrAResult Publish(out ItemStatus[] Status, out MonitoredItemValue[] Values, ArchestrAServices.ASBContract.ConnectionId Id, long SubscriptionId); ArchestrAServices.ASBContract.ArchestrAResult RegisterItems(out ItemStatus[] Status, out ItemRegistration[] ItemCapabilities, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items, byte RequireId, byte RegisterOnly); ArchestrAServices.ASBContract.ArchestrAResult UnregisterItems(out ItemStatus[] Status, ArchestrAServices.ASBContract.ConnectionId Id, ItemIdentity[] Items); void OnDisconnect(ArchestrAServices.ASBContract.ConnectionId Id); }