From ef8f794b934a207c3416d18435ffe942764d3e33 Mon Sep 17 00:00:00 2001 From: andrea Date: Thu, 12 Sep 2013 16:44:06 +0200 Subject: [PATCH] Added encode/decode for Disconnect message --- .../parser/netty/DisconnectDecoder.java | 26 +++++++++++++++++++ .../parser/netty/DisconnectEncoder.java | 19 ++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectDecoder.java create mode 100644 netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectEncoder.java diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectDecoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectDecoder.java new file mode 100644 index 00000000..3ef795fe --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectDecoder.java @@ -0,0 +1,26 @@ +package org.dna.mqtt.moquette.parser.netty; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import java.util.List; +import org.dna.mqtt.moquette.proto.messages.DisconnectMessage; + +/** + * + * @author andrea + */ +class DisconnectDecoder extends DemuxDecoder { + + @Override + void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { + //Common decoding part + in.resetReaderIndex(); + DisconnectMessage message = new DisconnectMessage(); + if (!decodeCommonHeader(message, in)) { + in.resetReaderIndex(); + return; + } + out.add(message); + } + +} diff --git a/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectEncoder.java b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectEncoder.java new file mode 100644 index 00000000..d5fa9cc5 --- /dev/null +++ b/netty_parser/src/main/java/org/dna/mqtt/moquette/parser/netty/DisconnectEncoder.java @@ -0,0 +1,19 @@ +package org.dna.mqtt.moquette.parser.netty; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.DisconnectMessage; + +/** + * + * @author andrea + */ +public class DisconnectEncoder extends DemuxEncoder { + + @Override + protected void encode(ChannelHandlerContext chc, DisconnectMessage msg, ByteBuf out) { + out.writeByte(AbstractMessage.DISCONNECT << 4).writeByte(0); + } + +}