import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterIdDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterInstructionDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.MessageCodeKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.experimenter.core.ExperimenterDataOfChoice;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.property.header.QueueProperty;
*/
public interface DeserializerExtensionProvider {
+ /**
+ * Registers deserializer.
+ * Throws IllegalStateException when there is
+ * a deserializer already registered under given key.
+ * <p>
+ * If the deserializer implements {@link DeserializerRegistryInjector} interface,
+ * the deserializer is injected with DeserializerRegistry instance.
+ *
+ * @param key used for deserializer lookup
+ * @param deserializer deserializer instance
+ */
+ void registerDeserializer(MessageCodeKey key,
+ OFGeneralDeserializer deserializer);
+
/**
* Unregisters custom deserializer
* @param key used for deserializer lookup
* @param deserializer deserializer instance
*/
void registerExperimenterMessageDeserializer(ExperimenterIdDeserializerKey key,
- OFDeserializer<ExperimenterMessage> deserializer);
+ OFDeserializer<? extends ExperimenterDataOfChoice> deserializer);
/**
* Registers multipart-reply (stats) message deserializer
* @param deserializer deserializer instance
*/
void registerMultipartReplyMessageDeserializer(ExperimenterIdDeserializerKey key,
- OFDeserializer<MultipartReplyMessage> deserializer);
+ OFDeserializer<? extends ExperimenterDataOfChoice> deserializer);
/**
* Registers multipart-reply table-features message deserializer