Simplified extension registration (part1)
[openflowjava.git] / openflow-protocol-spi / src / main / java / org / opendaylight / openflowjava / protocol / spi / connection / SwitchConnectionProvider.java
index 97a2948d9117472bf166a683526a5fa6e6b60fae..ad7d741d1d73e989845a14d4a5f846d276f6b852 100644 (file)
@@ -13,8 +13,16 @@ import org.opendaylight.openflowjava.protocol.api.connection.ConnectionConfigura
 import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFGeneralDeserializer;
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFGeneralSerializer;
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionDeserializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterDeserializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterInstructionDeserializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterInstructionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterSerializerKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MatchField;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmClassBase;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
@@ -66,7 +74,6 @@ public interface SwitchConnectionProvider extends AutoCloseable {
     /**
      * Unregisters custom serializer
      * @param key used for serializer lookup
-     * @param serializer serializer implementation
      * @return true if serializer was removed,
      *  false if no serializer was found under specified key
      */
@@ -75,9 +82,56 @@ public interface SwitchConnectionProvider extends AutoCloseable {
     /**
      * Unregisters custom deserializer
      * @param key used for deserializer lookup
-     * @param deserializer deserializer instance
      * @return true if deserializer was removed,
      *  false if no deserializer was found under specified key
      */
     public boolean unregisterDeserializer(ExperimenterDeserializerKey key);
+
+    /**
+     * Registers action serializer
+     * @param key used for serializer lookup
+     * @param serializer serializer implementation
+     */
+    public void registerActionSerializer(ExperimenterActionSerializerKey key,
+            OFGeneralSerializer serializer);
+
+    /**
+     * Registers action deserializer
+     * @param key used for deserializer lookup
+     * @param deserializer deserializer instance
+     */
+    public void registerActionDeserializer(ExperimenterActionDeserializerKey key,
+            OFGeneralDeserializer deserializer);
+
+    /**
+     * Registers instruction serializer
+     * @param key used for serializer lookup
+     * @param serializer serializer implementation
+     */
+    public void registerInstructionSerializer(ExperimenterInstructionSerializerKey key,
+            OFGeneralSerializer serializer);
+
+    /**
+     * Registers instruction deserializer
+     * @param key used for deserializer lookup
+     * @param deserializer deserializer instance
+     */
+    public void registerInstructionDeserializer(ExperimenterInstructionDeserializerKey key,
+            OFGeneralDeserializer deserializer);
+
+    /**
+     * Registers match entry serializer
+     * @param key used for serializer lookup
+     * @param serializer serializer implementation
+     */
+    public <OXM_CLASS extends OxmClassBase, OXM_TYPE extends MatchField> void registerMatchEntrySerializer(
+            MatchEntrySerializerKey<OXM_CLASS, OXM_TYPE> key,OFGeneralSerializer serializer);
+
+    /**
+     * Registers match entry deserializer
+     * @param key used for deserializer lookup
+     * @param deserializer deserializer instance
+     */
+    public void registerMatchEntryDeserializer(MatchEntryDeserializerKey key,
+            OFGeneralDeserializer deserializer);
 }