#define TRACE using System; using System.CodeDom.Compiler; using System.Diagnostics; using System.IO; using System.Xml.Serialization; using ArchestrAServices.ASBIDataContract; using ArchestrAServices.Common; using ArchestrAServices.Contract; namespace ArchestrAServices.ASBContract; [Serializable] [GeneratedCode("System.Xml", "4.0.30319.18054")] [DebuggerStepThrough] [XmlType(Namespace = "http://asb.contracts.idata.data/20111111")] public struct MonitoredItemValue : IASBCustomSerializableType { private ItemIdentity itemField; private RuntimeValue valueField; private Variant userDataField; public ItemIdentity Item { get { return itemField; } set { itemField = value; } } public RuntimeValue Value { get { return valueField; } set { valueField = value; } } public ArchestrAServices.ASBIDataContract.Variant UserData { get { return new ArchestrAServices.ASBIDataContract.Variant { Type = userDataField.Type, Length = userDataField.Length, Payload = userDataField.Payload }; } set { userDataField.Type = value.Type; userDataField.Length = value.Length; userDataField.Payload = value.Payload; } } public void WriteToStream(BinaryWriter writer) { if (writer != null) { itemField.WriteToStream(writer); valueField.WriteToStream(writer); userDataField.WriteToStream(writer); } } public void InitializeFromStream(BinaryReader reader) { if (MemoryStreamHelper.ValidateStream(reader)) { itemField.InitializeFromStream(reader); valueField.InitializeFromStream(reader); userDataField.InitializeFromStream(reader); } } public object InitializeArrayFromStream(BinaryReader reader, int arrayCnt) { object result = null; if (MemoryStreamHelper.ValidateStream(reader, arrayCnt)) { MonitoredItemValue[] array = new MonitoredItemValue[arrayCnt]; for (int i = 0; i < arrayCnt; i++) { InitializeFrom(reader, ref array[i]); } result = array; } return result; } public void WriteArrayToStream(object graph, ref BinaryWriter bw) { if (graph == null || bw == null) { return; } try { if (graph is MonitoredItemValue[] array) { bw.Write(array.Length); MonitoredItemValue[] array2 = array; foreach (MonitoredItemValue monitoredItemValue in array2) { monitoredItemValue.WriteToStream(bw); } } } catch (Exception ex) { SvcTrace.DiagDiagnostics.TraceEvent(TraceEventType.Error, 0, $" MonitoredItemValue: WriteArrayTo. Exception raised {ex.Message} \n Stack Trace: {ex.StackTrace}"); } } private static void InitializeFrom(BinaryReader reader, ref MonitoredItemValue result) { if (MemoryStreamHelper.ValidateStream(reader)) { result.itemField.InitializeFromStream(reader); result.valueField.InitializeFromStream(reader); result.userDataField.InitializeFromStream(reader); } } }