Allow Netty to automatically maintain our internal usages of ByteBuf

This commit is contained in:
atomicint
2018-11-11 10:48:41 -05:00
parent 68361110d9
commit 3326dba3cd
8 changed files with 33 additions and 51 deletions
@@ -47,7 +47,7 @@ public final class GroupedRegionUpdateMessageEncoder extends MessageEncoder<Grou
GamePacket packet = encoder.encode(update);
builder.put(DataType.BYTE, packet.getOpcode());
builder.putBytes(packet.getPayload());
builder.putBytes(packet.content());
}
return builder.toGamePacket();
@@ -13,7 +13,7 @@ public final class SpamPacketMessageDecoder extends MessageDecoder<SpamPacketMes
@Override
public SpamPacketMessage decode(GamePacket packet) {
return new SpamPacketMessage(packet.getPayload().array());
return new SpamPacketMessage(packet.content().array());
}
}
@@ -47,7 +47,7 @@ public final class GroupedRegionUpdateMessageEncoder extends MessageEncoder<Grou
GamePacket packet = encoder.encode(update);
builder.put(DataType.BYTE, packet.getOpcode());
builder.putBytes(packet.getPayload());
builder.putBytes(packet.content());
}
return builder.toGamePacket();
@@ -13,7 +13,7 @@ public final class SpamPacketMessageDecoder extends MessageDecoder<SpamPacketMes
@Override
public SpamPacketMessage decode(GamePacket packet) {
return new SpamPacketMessage(packet.getPayload().array());
return new SpamPacketMessage(packet.content().array());
}
}
@@ -70,37 +70,32 @@ public final class ApolloHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelRead(ChannelHandlerContext ctx, Object message) throws Exception {
try {
Channel channel = ctx.channel();
Attribute<Session> attribute = channel.attr(ApolloHandler.SESSION_KEY);
Session session = attribute.get();
Channel channel = ctx.channel();
Attribute<Session> attribute = channel.attr(ApolloHandler.SESSION_KEY);
Session session = attribute.get();
if (message instanceof HttpRequest || message instanceof JagGrabRequest) {
session = new UpdateSession(channel, serverContext);
if (message instanceof HttpRequest || message instanceof JagGrabRequest) {
session = new UpdateSession(channel, serverContext);
}
if (session != null) {
session.messageReceived(message);
return;
}
// TODO: Perhaps let HandshakeMessage implement Message to remove this explicit check
if (message instanceof HandshakeMessage) {
HandshakeMessage handshakeMessage = (HandshakeMessage) message;
switch (handshakeMessage.getServiceId()) {
case HandshakeConstants.SERVICE_GAME:
attribute.set(new LoginSession(channel, serverContext));
break;
case HandshakeConstants.SERVICE_UPDATE:
attribute.set(new UpdateSession(channel, serverContext));
break;
}
if (session != null) {
session.messageReceived(message);
return;
}
// TODO: Perhaps let HandshakeMessage implement Message to remove this explicit check
if (message instanceof HandshakeMessage) {
HandshakeMessage handshakeMessage = (HandshakeMessage) message;
switch (handshakeMessage.getServiceId()) {
case HandshakeConstants.SERVICE_GAME:
attribute.set(new LoginSession(channel, serverContext));
break;
case HandshakeConstants.SERVICE_UPDATE:
attribute.set(new UpdateSession(channel, serverContext));
break;
}
}
} finally {
ReferenceCountUtil.release(message);
}
}