public virtual SubArray <byte> Compress(SubArray <byte> source) { using (var msDes = new MemoryStream()) { using (var msOrg = source.ToMemoryStream()) Compress(msOrg, msDes); return(msDes.ToSubArray()); } }
public virtual async Task <SubArray <byte> > DecompressAsync(SubArray <byte> source) { using (var msDes = new MemoryStream()) { using (var msOrg = source.ToMemoryStream()) await DecompressAsync(msOrg, msDes).ConfigureAwait(false); return(msDes.ToSubArray()); } }
public static SerializedObject FromSubArray(SubArray <byte> byteArray) { if (byteArray.Count == 0) { return(null); } using (var ms = byteArray.ToMemoryStream()) using (var br = new BinaryReader(ms)) { var rByte = byteArray.Count; var dataTypeByteLength = br.ReadInt32(); if (dataTypeByteLength < -1 || dataTypeByteLength > rByte) { return(null); } var dataTypeByte = dataTypeByteLength != -1 ? br.ReadBytes(dataTypeByteLength) : null; rByte -= dataTypeByteLength; var serializerMimeTypeByteLength = br.ReadInt32(); if (serializerMimeTypeByteLength < -1 || serializerMimeTypeByteLength > rByte) { return(null); } var serializerMimeTypeByte = serializerMimeTypeByteLength != -1 ? br.ReadBytes(serializerMimeTypeByteLength) : null; rByte -= serializerMimeTypeByteLength; var dataLength = br.ReadInt32(); if (dataLength < -1 || dataLength > rByte) { return(null); } var data = dataLength != -1 ? br.ReadBytes(dataLength) : null; return(new SerializedObject(data, dataTypeByte != null ? Encoding.UTF8.GetString(dataTypeByte) : null, serializerMimeTypeByte != null ? Encoding.UTF8.GetString(serializerMimeTypeByte) : null)); } }
public object Deserialize(SubArray <byte> value, Type valueType) => Deserialize(value.ToMemoryStream(), valueType);