public static void SerializeSnapshot(global::Improbable.TestSchema.ExhaustiveEntity.Snapshot snapshot, global::Improbable.Worker.CInterop.SchemaObject obj) { { obj.AddEntity(1, snapshot.Field1); } { if (snapshot.Field2.HasValue) { obj.AddEntity(2, snapshot.Field2.Value); } } { foreach (var value in snapshot.Field3) { obj.AddEntity(3, value); } } { foreach (var keyValuePair in snapshot.Field4) { var mapObj = obj.AddObject(4); mapObj.AddEntity(1, keyValuePair.Key); mapObj.AddString(2, keyValuePair.Value); } } { foreach (var keyValuePair in snapshot.Field5) { var mapObj = obj.AddObject(5); mapObj.AddString(1, keyValuePair.Key); mapObj.AddEntity(2, keyValuePair.Value); } } }
public static global::Improbable.TestSchema.ExhaustiveEntity.Snapshot DeserializeSnapshot(global::Improbable.Worker.CInterop.SchemaObject obj) { var component = new global::Improbable.TestSchema.ExhaustiveEntity.Snapshot(); { component.Field1 = obj.GetEntity(1); } { if (obj.GetEntityCount(2) == 1) { component.Field2 = new global::Improbable.Gdk.Core.EntitySnapshot?(obj.GetEntity(2)); } } { component.Field3 = new global::System.Collections.Generic.List <global::Improbable.Gdk.Core.EntitySnapshot>(); var list = component.Field3; var listLength = obj.GetEntityCount(3); for (var i = 0; i < listLength; i++) { list.Add(obj.IndexEntity(3, (uint)i)); } } { component.Field4 = new global::System.Collections.Generic.Dictionary <global::Improbable.Gdk.Core.EntitySnapshot, string>(); var map = component.Field4; var mapSize = obj.GetObjectCount(4); for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(4, (uint)i); var key = mapObj.GetEntity(1); var value = mapObj.GetString(2); map.Add(key, value); } } { component.Field5 = new global::System.Collections.Generic.Dictionary <string, global::Improbable.Gdk.Core.EntitySnapshot>(); var map = component.Field5; var mapSize = obj.GetObjectCount(5); for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(5, (uint)i); var key = mapObj.GetString(1); var value = mapObj.GetEntity(2); map.Add(key, value); } } return(component); }
public static void ApplyUpdate(global::Improbable.Worker.CInterop.SchemaComponentUpdate updateObj, ref global::Improbable.TestSchema.ExhaustiveEntity.Snapshot snapshot) { var obj = updateObj.GetFields(); var clearedFields = updateObj.GetClearedFields(); { if (obj.GetEntityCount(1) == 1) { var value = obj.GetEntity(1); snapshot.Field1 = value; } } { bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 2; if (isCleared) { break; } } if (isCleared) { snapshot.Field2 = new global::Improbable.Gdk.Core.EntitySnapshot?(); } else if (obj.GetEntityCount(2) == 1) { var value = obj.GetEntity(2); snapshot.Field2 = new global::Improbable.Gdk.Core.EntitySnapshot?(value); } } { var listSize = obj.GetEntityCount(3); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 3; if (isCleared) { break; } } if (listSize > 0 || isCleared) { snapshot.Field3.Clear(); } for (var i = 0; i < listSize; i++) { var value = obj.IndexEntity(3, (uint)i); snapshot.Field3.Add(value); } } { var mapSize = obj.GetObjectCount(4); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 4; if (isCleared) { break; } } if (mapSize > 0 || isCleared) { snapshot.Field4.Clear(); } for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(4, (uint)i); var key = mapObj.GetEntity(1); var value = mapObj.GetString(2); snapshot.Field4.Add(key, value); } } { var mapSize = obj.GetObjectCount(5); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 5; if (isCleared) { break; } } if (mapSize > 0 || isCleared) { snapshot.Field5.Clear(); } for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(5, (uint)i); var key = mapObj.GetString(1); var value = mapObj.GetEntity(2); snapshot.Field5.Add(key, value); } } }