Extensibility support (deserialization part)
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / core / PublishingChannelInitializer.java
index 5a35864b4184f429daa3585dbdb7208090ba5fd3..184aec137df3414ee55e3952dad6c4ea6be7e6a1 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.openflowjava.protocol.impl.connection.ConnectionAdapterF
 import org.opendaylight.openflowjava.protocol.impl.connection.ConnectionFacade;
 import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES;
 import org.opendaylight.openflowjava.protocol.impl.serialization.SerializationFactory;
+import org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,6 +39,7 @@ public class PublishingChannelInitializer extends ChannelInitializer<SocketChann
     private long switchIdleTimeout;
     private boolean encryption;
     private SerializationFactory serializationFactory;
+    private DeserializationFactory deserializationFactory;
 
     /**
      * default ctor
@@ -75,7 +77,9 @@ public class PublishingChannelInitializer extends ChannelInitializer<SocketChann
             }
             ch.pipeline().addLast(COMPONENT_NAMES.OF_FRAME_DECODER.name(), new OFFrameDecoder());
             ch.pipeline().addLast(COMPONENT_NAMES.OF_VERSION_DETECTOR.name(), new OFVersionDetector());
-            ch.pipeline().addLast(COMPONENT_NAMES.OF_DECODER.name(), new OFDecoder());
+            OFDecoder ofDecoder = new OFDecoder();
+            ofDecoder.setDeserializationFactory(deserializationFactory);
+            ch.pipeline().addLast(COMPONENT_NAMES.OF_DECODER.name(), ofDecoder);
             OFEncoder ofEncoder = new OFEncoder();
             ofEncoder.setSerializationFactory(serializationFactory);
             ch.pipeline().addLast(COMPONENT_NAMES.OF_ENCODER.name(), ofEncoder);
@@ -130,4 +134,12 @@ public class PublishingChannelInitializer extends ChannelInitializer<SocketChann
     public void setSerializationFactory(SerializationFactory serializationFactory) {
         this.serializationFactory = serializationFactory;
     }
+    
+    /**
+     * @param deserializationFactory
+     */
+    public void setDeserializationFactory(DeserializationFactory deserializationFactory) {
+        this.deserializationFactory = deserializationFactory;
+    }
+
 }