public byte[] Serialize(SerializablePacket packet) { if (packet == null) { throw new ArgumentNullException(nameof(packet)); } packet.OnSerialize(this); using var writer = new GameBinaryWriter(); OnSerialize(writer, _byType[packet.GetType()], packet); return(writer.ToArray()); }
public void Deserialize(byte[] payload, SerializablePacket packet) { if (payload == null) { throw new ArgumentNullException(nameof(payload)); } if (packet == null) { throw new ArgumentNullException(nameof(packet)); } using var reader = new GameBinaryReader(payload); OnDeserialize(reader, _byType[packet.GetType()], packet); packet.OnDeserialize(this); }
public void Deserialize(byte[] buffer, int index, int count, SerializablePacket packet) { if (packet == null) { throw new ArgumentNullException(nameof(packet)); } if (!_byType.TryGetValue(packet.GetType(), out var info)) { throw new UnmappedMessageException(); } using var reader = new GameBinaryReader(buffer, index, count); OnDeserialize(reader, info, packet); packet.OnDeserialize(this); }
public byte[] Serialize(SerializablePacket packet) { if (packet == null) { throw new ArgumentNullException(nameof(packet)); } if (!_byType.TryGetValue(packet.GetType(), out var info)) { throw new UnmappedMessageException(); } packet.OnSerialize(this); using var writer = new GameBinaryWriter(); OnSerialize(writer, info, packet); return(writer.ToArray()); }