public static void ApplyUpdate(global::Improbable.Worker.Core.SchemaComponentUpdate updateObj, ref Improbable.Gdk.Tests.NonblittableTypes.NonBlittableComponent.Component component) { var obj = updateObj.GetFields(); var clearedFields = updateObj.GetClearedFields(); { if (obj.GetBoolCount(1) == 1) { var value = obj.GetBool(1); component.BoolField = value; } } { if (obj.GetInt32Count(2) == 1) { var value = obj.GetInt32(2); component.IntField = value; } } { if (obj.GetInt64Count(3) == 1) { var value = obj.GetInt64(3); component.LongField = value; } } { if (obj.GetFloatCount(4) == 1) { var value = obj.GetFloat(4); component.FloatField = value; } } { if (obj.GetDoubleCount(5) == 1) { var value = obj.GetDouble(5); component.DoubleField = value; } } { if (obj.GetStringCount(6) == 1) { var value = obj.GetString(6); component.StringField = value; } } { bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 7; if (isCleared) { break; } } if (isCleared) { component.OptionalField = new int?(); } else if (obj.GetInt32Count(7) == 1) { var value = obj.GetInt32(7); component.OptionalField = new int?(value); } } { var listSize = obj.GetInt32Count(8); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 8; if (isCleared) { break; } } if (listSize > 0 || isCleared) { component.ListField.Clear(); } for (var i = 0; i < listSize; i++) { var value = obj.IndexInt32(8, (uint)i); component.ListField.Add(value); } } { var mapSize = obj.GetObjectCount(9); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 9; if (isCleared) { break; } } if (mapSize > 0 || isCleared) { component.MapField.Clear(); } for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(9, (uint)i); var key = mapObj.GetInt32(1); var value = mapObj.GetString(2); component.MapField.Add(key, value); } } }
public static Improbable.Gdk.Tests.NonblittableTypes.NonBlittableComponent.Update DeserializeUpdate(global::Improbable.Worker.Core.SchemaComponentUpdate updateObj) { var update = new Improbable.Gdk.Tests.NonblittableTypes.NonBlittableComponent.Update(); var obj = updateObj.GetFields(); var clearedFields = updateObj.GetClearedFields(); { if (obj.GetBoolCount(1) == 1) { var value = obj.GetBool(1); update.BoolField = new global::Improbable.Gdk.Core.Option <BlittableBool>(value); } } { if (obj.GetInt32Count(2) == 1) { var value = obj.GetInt32(2); update.IntField = new global::Improbable.Gdk.Core.Option <int>(value); } } { if (obj.GetInt64Count(3) == 1) { var value = obj.GetInt64(3); update.LongField = new global::Improbable.Gdk.Core.Option <long>(value); } } { if (obj.GetFloatCount(4) == 1) { var value = obj.GetFloat(4); update.FloatField = new global::Improbable.Gdk.Core.Option <float>(value); } } { if (obj.GetDoubleCount(5) == 1) { var value = obj.GetDouble(5); update.DoubleField = new global::Improbable.Gdk.Core.Option <double>(value); } } { if (obj.GetStringCount(6) == 1) { var value = obj.GetString(6); update.StringField = new global::Improbable.Gdk.Core.Option <string>(value); } } { bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 7; if (isCleared) { break; } } if (isCleared) { update.OptionalField = new global::Improbable.Gdk.Core.Option <int?>(new int?()); } else if (obj.GetInt32Count(7) == 1) { var value = obj.GetInt32(7); update.OptionalField = new global::Improbable.Gdk.Core.Option <int?>(new int?(value)); } } { var listSize = obj.GetInt32Count(8); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 8; if (isCleared) { break; } } if (listSize > 0 || isCleared) { update.ListField = new global::Improbable.Gdk.Core.Option <global::System.Collections.Generic.List <int> >(new global::System.Collections.Generic.List <int>()); } for (var i = 0; i < listSize; i++) { var value = obj.IndexInt32(8, (uint)i); update.ListField.Value.Add(value); } } { var mapSize = obj.GetObjectCount(9); bool isCleared = false; foreach (var fieldIndex in clearedFields) { isCleared = fieldIndex == 9; if (isCleared) { break; } } if (mapSize > 0 || isCleared) { update.MapField = new global::Improbable.Gdk.Core.Option <global::System.Collections.Generic.Dictionary <int, string> >(new global::System.Collections.Generic.Dictionary <int, string>()); } for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(9, (uint)i); var key = mapObj.GetInt32(1); var value = mapObj.GetString(2); update.MapField.Value.Add(key, value); } } return(update); }