Simplified buffer allocation for SubAck encoding part
This commit is contained in:
@@ -17,24 +17,18 @@ class SubAckEncoder extends DemuxEncoder<SubAckMessage> {
|
|||||||
throw new IllegalArgumentException("Found a suback message with empty topics");
|
throw new IllegalArgumentException("Found a suback message with empty topics");
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuf variableHeaderBuff = chc.alloc().buffer(4);
|
int variableHeaderSize = 2 + message.types().size();
|
||||||
ByteBuf buff = null;
|
ByteBuf buff = chc.alloc().buffer(6 + variableHeaderSize);
|
||||||
try {
|
try {
|
||||||
variableHeaderBuff.writeShort(message.getMessageID());
|
|
||||||
for (AbstractMessage.QOSType c : message.types()) {
|
|
||||||
variableHeaderBuff.writeByte(c.ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
int variableHeaderSize = variableHeaderBuff.readableBytes();
|
|
||||||
buff = chc.alloc().buffer(2 + variableHeaderSize);
|
|
||||||
|
|
||||||
buff.writeByte(AbstractMessage.SUBACK << 4 );
|
buff.writeByte(AbstractMessage.SUBACK << 4 );
|
||||||
buff.writeBytes(Utils.encodeRemainingLength(variableHeaderSize));
|
buff.writeBytes(Utils.encodeRemainingLength(variableHeaderSize));
|
||||||
buff.writeBytes(variableHeaderBuff);
|
buff.writeShort(message.getMessageID());
|
||||||
|
for (AbstractMessage.QOSType c : message.types()) {
|
||||||
|
buff.writeByte(c.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
out.writeBytes(buff);
|
out.writeBytes(buff);
|
||||||
} finally {
|
} finally {
|
||||||
variableHeaderBuff.release();
|
|
||||||
buff.release();
|
buff.release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user