Exemple #1
0
        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());
        }
 protected override void OnDeserialize(GameBinaryReader reader, PacketInfo info,
                                       SerializablePacket packet)
 {
     _deserializers[info](reader, packet);
 }
 protected override void OnSerialize(GameBinaryWriter writer, PacketInfo info,
                                     SerializablePacket packet)
 {
     _serializers[info](writer, packet);
 }
Exemple #6
0
 protected abstract void OnDeserialize(GameBinaryReader reader, PacketInfo info,
                                       SerializablePacket packet);
Exemple #7
0
 protected abstract void OnSerialize(GameBinaryWriter writer, PacketInfo info,
                                     SerializablePacket packet);
 protected override void OnSerialize(GameBinaryWriter writer, PacketInfo info,
                                     SerializablePacket packet)
 {
     SerializeObject(writer, packet);
 }