--- /dev/null
+/*\r
+ * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.openflowjava.protocol.api.extensibility;\r
+\r
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;\r
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionDeserializerKey;\r
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterDeserializerKey;\r
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterInstructionDeserializerKey;\r
+\r
+/**\r
+ * Provides methods for deserialization part of extensibility\r
+ * @author michal.polkorab\r
+ */\r
+public interface DeserializerExtensionProvider {\r
+\r
+ /**\r
+ * Unregisters custom deserializer\r
+ * @param key used for deserializer lookup\r
+ * @return true if deserializer was removed,\r
+ * false if no deserializer was found under specified key\r
+ */\r
+ public boolean unregisterDeserializer(ExperimenterDeserializerKey key);\r
+\r
+ /**\r
+ * Registers action deserializer\r
+ * @param key used for deserializer lookup\r
+ * @param deserializer deserializer instance\r
+ */\r
+ public void registerActionDeserializer(ExperimenterActionDeserializerKey key,\r
+ OFGeneralDeserializer deserializer);\r
+\r
+ /**\r
+ * Registers instruction deserializer\r
+ * @param key used for deserializer lookup\r
+ * @param deserializer deserializer instance\r
+ */\r
+ public void registerInstructionDeserializer(ExperimenterInstructionDeserializerKey key,\r
+ OFGeneralDeserializer deserializer);\r
+\r
+ /**\r
+ * Registers match entry deserializer\r
+ * @param key used for deserializer lookup\r
+ * @param deserializer deserializer instance\r
+ */\r
+ public void registerMatchEntryDeserializer(MatchEntryDeserializerKey key,\r
+ OFGeneralDeserializer deserializer);\r
+}\r
SERIALIZER_TYPE getDeserializer(MessageCodeKey key);\r
\r
/**\r
- * Registers deserializer under key\r
- * @param key used to registry lookup\r
+ * Registers deserializer\r
+ * @param key used for deserializer lookup\r
* @param deserializer deserializer instance\r
*/\r
- public void registerDeserializer(MessageCodeKey key, OFGeneralDeserializer deserializer);\r
+ public void registerDeserializer(MessageCodeKey key,\r
+ OFGeneralDeserializer deserializer);\r
\r
/**\r
- * Unregisters deserializer under key\r
- * @param key used to registry lookup\r
+ * Unregisters deserializer\r
+ * @param key used for deserializer lookup\r
* @param deserializer deserializer instance\r
* @return true if deserializer was removed,\r
* false if no deserializer was found under specified key\r
--- /dev/null
+/*\r
+ * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.openflowjava.protocol.api.extensibility;\r
+\r
+import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;\r
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionSerializerKey;\r
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterInstructionSerializerKey;\r
+import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterSerializerKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MatchField;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmClassBase;\r
+\r
+\r
+/**\r
+ * Provides methods for serialization part of extensibility\r
+ * @author michal.polkorab\r
+ */\r
+public interface SerializerExtensionProvider {\r
+\r
+ /**\r
+ * Unregisters custom serializer\r
+ * @param key used for serializer lookup\r
+ * @return true if serializer was removed,\r
+ * false if no serializer was found under specified key\r
+ */\r
+ public boolean unregisterSerializer(ExperimenterSerializerKey key);\r
+\r
+ /**\r
+ * Registers action serializer\r
+ * @param key used for serializer lookup\r
+ * @param serializer serializer implementation\r
+ */\r
+ public void registerActionSerializer(ExperimenterActionSerializerKey key,\r
+ OFGeneralSerializer serializer);\r
+\r
+ /**\r
+ * Registers instruction serializer\r
+ * @param key used for serializer lookup\r
+ * @param serializer serializer implementation\r
+ */\r
+ public void registerInstructionSerializer(ExperimenterInstructionSerializerKey key,\r
+ OFGeneralSerializer serializer);\r
+\r
+ /**\r
+ * Registers match entry serializer\r
+ * @param key used for serializer lookup\r
+ * @param serializer serializer implementation\r
+ */\r
+ public <OXM_CLASS extends OxmClassBase, OXM_TYPE extends MatchField> void registerMatchEntrySerializer(\r
+ MatchEntrySerializerKey<OXM_CLASS, OXM_TYPE> key,OFGeneralSerializer serializer);\r
+}
\ No newline at end of file
package org.opendaylight.openflowjava.protocol.api.extensibility;\r
\r
\r
+\r
+\r
/**\r
* Stores and handles serializers \r
* @author michal.polkorab\r
getSerializer(MessageTypeKey<KEY_TYPE> msgTypeKey);\r
\r
/**\r
- * Registers serializer under key\r
- * @param msgTypeKey lookup key\r
+ * Registers serializer\r
+ * @param key used for serializer lookup\r
* @param serializer serializer implementation\r
*/\r
- public <KEY_TYPE> void\r
- registerSerializer(MessageTypeKey<KEY_TYPE> msgTypeKey, OFGeneralSerializer serializer);\r
+ public <KEY_TYPE> void registerSerializer(MessageTypeKey<KEY_TYPE> key,\r
+ OFGeneralSerializer serializer);\r
\r
/**\r
- * Unregisters serializer under key\r
- * @param msgTypeKey lookup key\r
+ * Unregisters serializer\r
+ * @param key used for serializer lookup\r
* @param serializer serializer implementation\r
* @return true if serializer was removed,\r
* false if no serializer was found under specified key\r
*/\r
- public <KEY_TYPE> boolean unregisterSerializer(MessageTypeKey<KEY_TYPE> msgTypeKey);\r
+ public <KEY_TYPE> boolean unregisterSerializer(MessageTypeKey<KEY_TYPE> key);\r
}\r
return serverFacade;
}
- @Override
- public void registerSerializer(ExperimenterSerializerKey key,
- OFGeneralSerializer serializer) {
- serializerRegistry.registerSerializer((MessageTypeKey<?>) key, serializer);
- }
-
- @Override
- public void registerDeserializer(ExperimenterDeserializerKey key,
- OFGeneralDeserializer deserializer) {
- deserializerRegistry.registerDeserializer((MessageCodeKey) key, deserializer);
- }
-
@Override
public void close() throws Exception {
shutdown();
@Override
public void registerActionSerializer(ExperimenterActionSerializerKey key,
OFGeneralSerializer serializer) {
- registerSerializer(key, serializer);
+ serializerRegistry.registerSerializer(key, serializer);
}
@Override
public void registerActionDeserializer(ExperimenterActionDeserializerKey key,
OFGeneralDeserializer deserializer) {
- registerDeserializer(key, deserializer);
+ deserializerRegistry.registerDeserializer(key, deserializer);
}
@Override
public void registerInstructionSerializer(ExperimenterInstructionSerializerKey key,
OFGeneralSerializer serializer) {
- registerSerializer(key, serializer);
+ serializerRegistry.registerSerializer(key, serializer);
}
@Override
public void registerInstructionDeserializer(ExperimenterInstructionDeserializerKey key,
OFGeneralDeserializer deserializer) {
- registerDeserializer(key, deserializer);
+ deserializerRegistry.registerDeserializer(key, deserializer);
}
@Override
public <OXM_CLASS extends OxmClassBase, OXM_TYPE extends MatchField> void registerMatchEntrySerializer(MatchEntrySerializerKey<OXM_CLASS, OXM_TYPE> key,
OFGeneralSerializer serializer) {
- registerSerializer(key, serializer);
+ serializerRegistry.registerSerializer(key, serializer);
}
@Override
public void registerMatchEntryDeserializer(MatchEntryDeserializerKey key,
OFGeneralDeserializer deserializer) {
- registerDeserializer(key, deserializer);
+ deserializerRegistry.registerDeserializer(key, deserializer);
}
-}
+}
\ No newline at end of file
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionConfiguration;
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 org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerExtensionProvider;
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerExtensionProvider;
import com.google.common.util.concurrent.ListenableFuture;
* @author michal.polkorab
*
*/
-public interface SwitchConnectionProvider extends AutoCloseable {
+public interface SwitchConnectionProvider extends AutoCloseable,
+ SerializerExtensionProvider, DeserializerExtensionProvider {
/**
* @param configuration [protocol, port, address and supported features]
*/
void setSwitchConnectionHandler(SwitchConnectionHandler switchConHandler);
- /**
- * Registers custom serializer
- * @param key used for serializer lookup
- * @param serializer serializer implementation
- */
- public void registerSerializer(ExperimenterSerializerKey key,
- OFGeneralSerializer serializer);
-
- /**
- * Registers custom deserializer
- * @param key used for deserializer lookup
- * @param deserializer deserializer instance
- */
- public void registerDeserializer(ExperimenterDeserializerKey key, OFGeneralDeserializer deserializer);
-
- /**
- * Unregisters custom serializer
- * @param key used for serializer lookup
- * @return true if serializer was removed,
- * false if no serializer was found under specified key
- */
- public boolean unregisterSerializer(ExperimenterSerializerKey key);
-
- /**
- * Unregisters custom deserializer
- * @param key used for deserializer lookup
- * @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);
-}
+}
\ No newline at end of file