Moved Netty messaging out of onos-core-dist to under onos-utils
diff --git a/utils/netty/src/main/java/org/onlab/netty/messaging/MessageEncoder.java b/utils/netty/src/main/java/org/onlab/netty/messaging/MessageEncoder.java
new file mode 100644
index 0000000..1b52a0f
--- /dev/null
+++ b/utils/netty/src/main/java/org/onlab/netty/messaging/MessageEncoder.java
@@ -0,0 +1,60 @@
+package org.onlab.netty;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.MessageToByteEncoder;
+
+/**
+ * Encode InternalMessage out into a byte buffer.
+ */
+public class MessageEncoder extends MessageToByteEncoder<InternalMessage> {
+
+ // onosiscool in ascii
+ public static final byte[] PREAMBLE = "onosiscool".getBytes();
+
+ private final Serializer serializer;
+
+ public MessageEncoder(Serializer serializer) {
+ this.serializer = serializer;
+ }
+
+ @Override
+ protected void encode(ChannelHandlerContext context, InternalMessage message,
+ ByteBuf out) throws Exception {
+
+ // write preamble
+ out.writeBytes(PREAMBLE);
+
+ // write id
+ out.writeLong(message.id());
+
+ // write type length
+ out.writeInt(message.type().length());
+
+ // write type
+ out.writeBytes(message.type().getBytes());
+
+ // write sender host name size
+ out.writeInt(message.sender().host().length());
+
+ // write sender host name.
+ out.writeBytes(message.sender().host().getBytes());
+
+ // write port
+ out.writeInt(message.sender().port());
+
+ try {
+ serializer.encode(message.payload());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ byte[] payload = serializer.encode(message.payload());
+
+ // write payload length.
+ out.writeInt(payload.length);
+
+ // write payload bytes
+ out.writeBytes(payload);
+ }
+}