public static byte[] Serialize(FileToAssetsMapping[] assetToFileMappings) { byte[] bytes = new byte[CacheSerializerUtils.ARRAY_SIZE_OFFSET]; int offset = 0; CacheSerializerUtils.EncodeShort((short)assetToFileMappings.Length, ref bytes, ref offset); foreach (FileToAssetsMapping fileToAssetsMapping in assetToFileMappings) { CacheSerializerUtils.EncodeLong(fileToAssetsMapping.Timestamp, ref bytes, ref offset); CacheSerializerUtils.EncodeString(fileToAssetsMapping.FileId, ref bytes, ref offset); CacheSerializerUtils.EncodeShort((short)fileToAssetsMapping.FileNodes.Count, ref bytes, ref offset); foreach (FileToAssetMappingNode fileNode in fileToAssetsMapping.FileNodes) { CacheSerializerUtils.EncodeString(fileNode.AssetId, ref bytes, ref offset); CacheSerializerUtils.EncodeDependencies(fileNode.Dependencies, ref bytes, ref offset); } } CacheSerializerUtils.EncodeString(EOF, ref bytes, ref offset); Deserialize(bytes); return(bytes); }
public static byte[] Serialize(FileToAssetNode[] fileToAssetNodes) { byte[] bytes = new byte[CacheSerializerUtils.ARRAY_SIZE_OFFSET]; int offset = 0; CacheSerializerUtils.EncodeShort((short)fileToAssetNodes.Length, ref bytes, ref offset); foreach (FileToAssetNode fileToAssetNode in fileToAssetNodes) { CacheSerializerUtils.EncodeString(fileToAssetNode.FileId, ref bytes, ref offset); CacheSerializerUtils.EncodeShort((short)fileToAssetNode.ResolverTimeStamps.Count, ref bytes, ref offset); for (int i = 0; i < fileToAssetNode.ResolverTimeStamps.Count; ++i) { FileToAssetNode.ResolverTimeStamp resolverTimeStamp = fileToAssetNode.ResolverTimeStamps[i]; CacheSerializerUtils.EncodeString(resolverTimeStamp.ResolverId, ref bytes, ref offset); CacheSerializerUtils.EncodeLong(resolverTimeStamp.TimeStamp, ref bytes, ref offset); } CacheSerializerUtils.EncodeShort((short)fileToAssetNode.AssetNodes.Count, ref bytes, ref offset); for (int j = 0; j < fileToAssetNode.AssetNodes.Count; ++j) { AssetNode assetNode = fileToAssetNode.AssetNodes[j]; CacheSerializerUtils.EncodeString(assetNode.Id, ref bytes, ref offset); CacheSerializerUtils.EncodeShort((short)assetNode.ResolverDatas.Count, ref bytes, ref offset); for (var i = 0; i < assetNode.ResolverDatas.Count; i++) { AssetNode.ResolverData resolverData = assetNode.ResolverDatas[i]; CacheSerializerUtils.EncodeString(resolverData.ResolverId, ref bytes, ref offset); CacheSerializerUtils.EncodeDependencies(resolverData.Dependencies, ref bytes, ref offset); bytes = CacheSerializerUtils.EnsureSize(bytes, offset); } } } CacheSerializerUtils.EncodeString(EOF, ref bytes, ref offset); Deserialize(bytes); return(bytes); }