package network.thunder.core.communication.nio.handler.low; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; import network.thunder.core.communication.Message; import network.thunder.core.communication.objects.messages.interfaces.helper.MessageSerializer; import java.util.List; /** * Created by matsjerratsch on 13/10/2015. */ public class ByteToMessageObjectHandler extends ByteToMessageDecoder { MessageSerializer serializater; public ByteToMessageObjectHandler (MessageSerializer serializater) { this.serializater = serializater; } @Override protected void decode (ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { try { if (in.readableBytes() > 0) { byte[] data = new byte[in.readableBytes()]; in.readBytes(data); Message message = serializater.deserializeMessage(data); out.add(message); // System.out.println("Incoming: " + message); } } catch (Exception e) { e.printStackTrace(); } } }