Added support for OF 1.0
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / serialization / factories / ExperimenterInputMessageFactory.java
index 0769f367352cb7e4f487a4184b77f62b33f4bce8..deba61c007b9d1bf57ba83893fa405a97d6866e1 100644 (file)
@@ -15,7 +15,7 @@ public class ExperimenterInputMessageFactory implements OFSerializer<Experimente
 \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
@@ -35,18 +35,23 @@ public class ExperimenterInputMessageFactory implements OFSerializer<Experimente
     @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