RuneHive-Game
Loading...
Searching...
No Matches
ServiceRequestDecoder.java
Go to the documentation of this file.
1package dev.advo.fs.net.service;
2
3import org.jboss.netty.buffer.ChannelBuffer;
4import org.jboss.netty.buffer.ChannelBuffers;
5import org.jboss.netty.channel.Channel;
6import org.jboss.netty.channel.ChannelHandlerContext;
7import org.jboss.netty.channel.ChannelPipeline;
8import org.jboss.netty.handler.codec.frame.FrameDecoder;
9
10public final class ServiceRequestDecoder extends FrameDecoder {
11
12 /**
13 * Creates the decoder, enabling the 'unfold' mechanism.
14 */
16 super(true);
17 }
18
19 @Override
20 protected Object decode(ChannelHandlerContext ctx, Channel c, ChannelBuffer buf) throws Exception {
21 if (buf.readable()) {
22 ServiceRequest request = new ServiceRequest(buf.readUnsignedByte());
23
24 //System.out.println("initial request " + request.getId());
25 //if not 0. oof.
26
27 ChannelPipeline pipeline = ctx.getPipeline();
28 pipeline.remove(this);
29
30 if (buf.readable()) {
31 //System.out.println("we should not be here, client should request 1 byte. It requested "+ buf.readableBytes());
32 System.out.println("we should not be here, client should request 1 byte. It requested "+ buf.readableBytes());
33
34 ChannelBuffer b = ChannelBuffers.buffer(1 + buf.readableBytes());
35 b.writeByte(1);
36 b.writeBytes(buf.readBytes(buf.readableBytes()));
37
38 return new Object[] { request,
39 b
40 };
41 } else {
42 return request;
43 }
44 }
45 return null;
46 }
47
48}
ServiceRequestDecoder()
Creates the decoder, enabling the 'unfold' mechanism.
Object decode(ChannelHandlerContext ctx, Channel c, ChannelBuffer buf)