MessageSerializer.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.IO;
  2. namespace Unity.RenderStreaming.InputSystem
  3. {
  4. /// <summary>
  5. ///
  6. /// </summary>
  7. static class MessageSerializer
  8. {
  9. /// <summary>
  10. ///
  11. /// </summary>
  12. /// <param name="message"></param>
  13. /// <returns></returns>
  14. public static byte[] Serialize(ref InputRemoting.Message message)
  15. {
  16. var stream = new MemoryStream();
  17. var writer = new BinaryWriter(stream);
  18. writer.Write(message.participantId);
  19. writer.Write((int)message.type);
  20. writer.Write(message.data.Length);
  21. writer.Write(message.data);
  22. return stream.ToArray();
  23. }
  24. /// <summary>
  25. ///
  26. /// </summary>
  27. /// <param name="bytes"></param>
  28. /// <param name="message"></param>
  29. public static void Deserialize(byte[] bytes, out InputRemoting.Message message)
  30. {
  31. var reader = new BinaryReader(new MemoryStream(bytes));
  32. message = default;
  33. message.participantId = reader.ReadInt32();
  34. message.type = (InputRemoting.MessageType)reader.ReadInt32();
  35. int length = reader.ReadInt32();
  36. message.data = reader.ReadBytes(length);
  37. }
  38. }
  39. }
  40. // #endif