\r
/** Code type of Experimenter message */\r
public static final byte MESSAGE_TYPE = 4;\r
- private int dataLength;\r
+ private static final byte MESSAGE_LENGTH = 8;\r
private static ExperimenterInputMessageFactory instance;\r
\r
private ExperimenterInputMessageFactory() {\r
@Override\r
public void messageToBuffer(short version, ByteBuf out,\r
ExperimenterInput message) {\r
- dataLength = message.getData().length;\r
ByteBufUtils.writeOFHeader(instance, message, out);\r
out.writeInt(message.getExperimenter().intValue());\r
out.writeInt(message.getExpType().intValue());\r
- out.writeBytes(message.getData());\r
+ byte[] data = message.getData();\r
+ if (data != null) {\r
+ out.writeBytes(data);\r
+ }\r
}\r
\r
@Override\r
public int computeLength(ExperimenterInput message) {\r
- int ofHeaderLength = 8; //OFHeaderLength\r
- int messageLength = 8; //experimenterHeaderLength\r
- return messageLength + ofHeaderLength + dataLength;\r
+ int length = MESSAGE_LENGTH + 2 * (Integer.SIZE / Byte.SIZE);\r
+ byte[] data = message.getData();\r
+ if (data != null) {\r
+ length += data.length;\r
+ }\r
+ return length;\r
}\r
\r
@Override\r