From cd45764e40ef43a4a43979b3e8f04e8b0865739f Mon Sep 17 00:00:00 2001 From: Michal Polkorab Date: Fri, 4 Jul 2014 15:48:35 +0200 Subject: [PATCH] Extracted (De)SerializerExtensionProvider interfaces from SwitchConnectionProvider Signed-off-by: Michal Polkorab --- .../DeserializerExtensionProvider.java | 53 ++++++++++ .../extensibility/DeserializerRegistry.java | 11 ++- .../SerializerExtensionProvider.java | 56 +++++++++++ .../api/extensibility/SerializerRegistry.java | 16 +-- .../SwitchConnectionProviderImpl.java | 26 ++--- .../connection/SwitchConnectionProvider.java | 97 +------------------ 6 files changed, 136 insertions(+), 123 deletions(-) create mode 100644 openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerExtensionProvider.java create mode 100644 openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerExtensionProvider.java diff --git a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerExtensionProvider.java b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerExtensionProvider.java new file mode 100644 index 00000000..b821b168 --- /dev/null +++ b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerExtensionProvider.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.openflowjava.protocol.api.extensibility; + +import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey; +import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionDeserializerKey; +import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterDeserializerKey; +import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterInstructionDeserializerKey; + +/** + * Provides methods for deserialization part of extensibility + * @author michal.polkorab + */ +public interface DeserializerExtensionProvider { + + /** + * 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 deserializer + * @param key used for deserializer lookup + * @param deserializer deserializer instance + */ + public void registerActionDeserializer(ExperimenterActionDeserializerKey key, + OFGeneralDeserializer deserializer); + + /** + * Registers instruction deserializer + * @param key used for deserializer lookup + * @param deserializer deserializer instance + */ + public void registerInstructionDeserializer(ExperimenterInstructionDeserializerKey key, + OFGeneralDeserializer deserializer); + + /** + * Registers match entry deserializer + * @param key used for deserializer lookup + * @param deserializer deserializer instance + */ + public void registerMatchEntryDeserializer(MatchEntryDeserializerKey key, + OFGeneralDeserializer deserializer); +} diff --git a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerRegistry.java b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerRegistry.java index 4266ab54..4afa95ae 100644 --- a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerRegistry.java +++ b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerRegistry.java @@ -27,15 +27,16 @@ public interface DeserializerRegistry { SERIALIZER_TYPE getDeserializer(MessageCodeKey key); /** - * Registers deserializer under key - * @param key used to registry lookup + * Registers deserializer + * @param key used for deserializer lookup * @param deserializer deserializer instance */ - public void registerDeserializer(MessageCodeKey key, OFGeneralDeserializer deserializer); + public void registerDeserializer(MessageCodeKey key, + OFGeneralDeserializer deserializer); /** - * Unregisters deserializer under key - * @param key used to registry lookup + * Unregisters 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 diff --git a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerExtensionProvider.java b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerExtensionProvider.java new file mode 100644 index 00000000..025e3c2c --- /dev/null +++ b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerExtensionProvider.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.openflowjava.protocol.api.extensibility; + +import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey; +import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionSerializerKey; +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; + + +/** + * Provides methods for serialization part of extensibility + * @author michal.polkorab + */ +public interface SerializerExtensionProvider { + + /** + * 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); + + /** + * Registers action serializer + * @param key used for serializer lookup + * @param serializer serializer implementation + */ + public void registerActionSerializer(ExperimenterActionSerializerKey key, + OFGeneralSerializer serializer); + + /** + * Registers instruction serializer + * @param key used for serializer lookup + * @param serializer serializer implementation + */ + public void registerInstructionSerializer(ExperimenterInstructionSerializerKey key, + OFGeneralSerializer serializer); + + /** + * Registers match entry serializer + * @param key used for serializer lookup + * @param serializer serializer implementation + */ + public void registerMatchEntrySerializer( + MatchEntrySerializerKey key,OFGeneralSerializer serializer); +} \ No newline at end of file diff --git a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerRegistry.java b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerRegistry.java index 83b4ae8d..bf25a609 100644 --- a/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerRegistry.java +++ b/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerRegistry.java @@ -8,6 +8,8 @@ package org.opendaylight.openflowjava.protocol.api.extensibility; + + /** * Stores and handles serializers * @author michal.polkorab @@ -28,19 +30,19 @@ public interface SerializerRegistry { getSerializer(MessageTypeKey msgTypeKey); /** - * Registers serializer under key - * @param msgTypeKey lookup key + * Registers serializer + * @param key used for serializer lookup * @param serializer serializer implementation */ - public void - registerSerializer(MessageTypeKey msgTypeKey, OFGeneralSerializer serializer); + public void registerSerializer(MessageTypeKey key, + OFGeneralSerializer serializer); /** - * Unregisters serializer under key - * @param msgTypeKey lookup key + * Unregisters 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 */ - public boolean unregisterSerializer(MessageTypeKey msgTypeKey); + public boolean unregisterSerializer(MessageTypeKey key); } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java index a6d15792..39a9829b 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java @@ -138,18 +138,6 @@ public class SwitchConnectionProviderImpl implements SwitchConnectionProvider { 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(); @@ -168,36 +156,36 @@ public class SwitchConnectionProviderImpl implements SwitchConnectionProvider { @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 void registerMatchEntrySerializer(MatchEntrySerializerKey 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 diff --git a/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java b/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java index ad7d741d..69d08fbb 100644 --- a/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java +++ b/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java @@ -11,18 +11,8 @@ package org.opendaylight.openflowjava.protocol.spi.connection; 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; @@ -31,7 +21,8 @@ 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] @@ -56,82 +47,4 @@ public interface SwitchConnectionProvider extends AutoCloseable { */ 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 void registerMatchEntrySerializer( - MatchEntrySerializerKey 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 -- 2.36.6