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