public static void SerializeSnapshot(global::Improbable.EntityAcl.Snapshot snapshot, global::Improbable.Worker.CInterop.SchemaObject obj) { global::Improbable.WorkerRequirementSet.Serialization.Serialize(snapshot.ReadAcl, obj.AddObject(1)); foreach (var keyValuePair in snapshot.ComponentWriteAcl) { var mapObj = obj.AddObject(2); mapObj.AddUint32(1, keyValuePair.Key); global::Improbable.WorkerRequirementSet.Serialization.Serialize(keyValuePair.Value, mapObj.AddObject(2)); } }
public static global::Improbable.EntityAcl.Snapshot DeserializeSnapshot(global::Improbable.Worker.CInterop.SchemaObject obj) { var component = new global::Improbable.EntityAcl.Snapshot(); component.ReadAcl = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(obj.GetObject(1)); { var map = new global::System.Collections.Generic.Dictionary <uint, global::Improbable.WorkerRequirementSet>(); var mapSize = obj.GetObjectCount(2); component.ComponentWriteAcl = map; for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(2, (uint)i); var key = mapObj.GetUint32(1); var value = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(mapObj.GetObject(2)); map.Add(key, value); } } return(component); }
public static void ApplyUpdate(global::Improbable.Worker.CInterop.SchemaComponentUpdate updateObj, ref global::Improbable.EntityAcl.Snapshot snapshot) { var obj = updateObj.GetFields(); if (obj.GetObjectCount(1) == 1) { snapshot.ReadAcl = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(obj.GetObject(1)); } { var mapSize = obj.GetObjectCount(2); var isCleared = updateObj.IsFieldCleared(2); if (mapSize > 0 || isCleared) { snapshot.ComponentWriteAcl.Clear(); } for (var i = 0; i < mapSize; i++) { var mapObj = obj.IndexObject(2, (uint)i); var key = mapObj.GetUint32(1); var value = global::Improbable.WorkerRequirementSet.Serialization.Deserialize(mapObj.GetObject(2)); snapshot.ComponentWriteAcl.Add(key, value); } } }