/// <summary> /// /// </summary> /// <param name="bytes"></param> /// <returns></returns> public static JTActiveSafetyPackage Deserialize(ReadOnlySpan <byte> bytes) { JTActiveSafetyPackage jTActiveSafetyPackage = new JTActiveSafetyPackage(); JTActiveSafetyMessagePackReader reader = new JTActiveSafetyMessagePackReader(bytes); jTActiveSafetyPackage.FH_Flag = reader.ReadUInt32(); jTActiveSafetyPackage.FileName = reader.ReadString(50); jTActiveSafetyPackage.Offset = reader.ReadUInt32(); jTActiveSafetyPackage.Length = reader.ReadUInt32(); jTActiveSafetyPackage.Bodies = reader.ReadRemainArray().ToArray(); return(jTActiveSafetyPackage); }
/// <summary> /// /// </summary> /// <param name="package"></param> /// <param name="minBufferSize"></param> /// <returns></returns> public static byte[] Serialize(JTActiveSafetyPackage package, int minBufferSize = 65 * 1024) { byte[] buffer = JTActiveSafetyArrayPool.Rent(minBufferSize); try { JTActiveSafetyMessagePackWriter writer = new JTActiveSafetyMessagePackWriter(buffer); writer.WriteUInt32(package.FH_Flag); writer.WriteString(package.FileName.PadLeft(50, '\0')); writer.WriteUInt32(package.Offset); writer.WriteUInt32((uint)package.Bodies.Length); writer.WriteArray(package.Bodies); return(writer.FlushAndGetArray()); } finally { JTActiveSafetyArrayPool.Return(buffer); } }