All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.datasecs.hydra.shared.protocol.packets.serialization.PacketDecoder Maven / Gradle / Ivy

The newest version!
package de.datasecs.hydra.shared.protocol.packets.serialization;

import de.datasecs.hydra.shared.protocol.Protocol;
import de.datasecs.hydra.shared.protocol.packets.Packet;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageDecoder;

import java.util.List;

/**
 * Created with love by DataSecs on 29.09.2017.
 */
public class PacketDecoder extends MessageToMessageDecoder {

    private Protocol protocol;

    public PacketDecoder(Protocol protocol) {
        this.protocol = protocol;
    }

    @Override
    protected void decode(ChannelHandlerContext context, ByteBuf in, List out) {
        int length = in.readInt();

        if (length > 0) {
            Packet packet = protocol.createPacket(in.readByte());
            packet.read(in);
            out.add(packet);
        }
    }
}