| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- using System;
 
- using InABox.Core;
 
- namespace InABox.Rpc
 
- {
 
-     [Serializable]
 
-     public class RpcMessage : ISerializeBinary
 
-     {
 
-         public Guid Id { get; set; }
 
-         public String Command { get; set; }
 
-         public byte[] Payload { get; set; }
 
-         public RpcError Error { get; set; }
 
-         public override string ToString() => $"{Command} [{Error}]";
 
-         public RpcMessage()
 
-         {
 
-             Id = Guid.NewGuid();
 
-             Command = "";
 
-             Payload = Array.Empty<byte>();
 
-             Error = RpcError.NONE;
 
-         }
 
-         public RpcMessage(Guid id, string command, byte[] payload)
 
-         {
 
-             Id = id;
 
-             Command = command;
 
-             Payload = payload;
 
-             Error = RpcError.NONE;
 
-         }
 
-         public void SerializeBinary(CoreBinaryWriter writer)
 
-         {
 
-             writer.Write(Id);
 
-             writer.Write(Command);
 
-             writer.WriteBinaryValue(Payload);
 
-             writer.Write(Error.ToString());
 
-         }
 
-         public void DeserializeBinary(CoreBinaryReader reader)
 
-         {
 
-             Id = reader.ReadGuid();
 
-             Command = reader.ReadString();
 
-             Payload = reader.ReadBinaryValue<byte[]>();
 
-             if (Enum.TryParse<RpcError>(reader.ReadString(), out var error))
 
-                 Error = error;
 
-         }
 
-     }
 
- }
 
 
  |