diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/FlowClassifierService.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/FlowClassifierService.java index e3cbf9ac44..4843884680 100644 --- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/FlowClassifierService.java +++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/FlowClassifierService.java @@ -15,13 +15,14 @@ */ package org.onosproject.vtnrsc.flowclassifier; +import org.onosproject.event.ListenerService; import org.onosproject.vtnrsc.FlowClassifier; import org.onosproject.vtnrsc.FlowClassifierId; /** * Provides Services for Flow Classifier. */ -public interface FlowClassifierService { +public interface FlowClassifierService extends ListenerService { /** * Check whether Flow Classifier is present based on given Flow Classifier @@ -79,18 +80,4 @@ public interface FlowClassifierService { * false */ boolean removeFlowClassifier(FlowClassifierId id); - - /** - * Adds the specified listener to Flow-Classifier manager. - * - * @param listener Flow-Classifier listener - */ - void addListener(FlowClassifierListener listener); - - /** - * Removes the specified listener to Flow-Classifier manager. - * - * @param listener Flow-Classifier listener - */ - void removeListener(FlowClassifierListener listener); } diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/impl/FlowClassifierManager.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/impl/FlowClassifierManager.java index b29dc7a337..18f63b301f 100644 --- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/impl/FlowClassifierManager.java +++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/flowclassifier/impl/FlowClassifierManager.java @@ -25,6 +25,7 @@ import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.ReferenceCardinality; import org.apache.felix.scr.annotations.Service; import org.onlab.util.KryoNamespace; +import org.onosproject.event.AbstractListenerManager; import org.onosproject.store.serializers.KryoNamespaces; import org.onosproject.store.service.EventuallyConsistentMap; import org.onosproject.store.service.MultiValuedTimestamp; @@ -32,28 +33,27 @@ import org.onosproject.store.service.StorageService; import org.onosproject.store.service.WallClockTimestamp; import org.onosproject.vtnrsc.FlowClassifierId; import org.onosproject.vtnrsc.FlowClassifier; +import org.onosproject.vtnrsc.flowclassifier.FlowClassifierEvent; import org.onosproject.vtnrsc.flowclassifier.FlowClassifierListener; import org.onosproject.vtnrsc.flowclassifier.FlowClassifierService; import org.slf4j.Logger; -import java.util.Set; - import com.google.common.collect.ImmutableList; -import com.google.common.collect.Sets; /** * Provides implementation of the Flow Classifier Service. */ @Component(immediate = true) @Service -public class FlowClassifierManager implements FlowClassifierService { +public class FlowClassifierManager extends AbstractListenerManager + implements FlowClassifierService { private static final String FLOW_CLASSIFIER_NOT_NULL = "Flow Classifier cannot be null"; private static final String FLOW_CLASSIFIER_ID_NOT_NULL = "Flow Classifier Id cannot be null"; private static final String LISTENER_NOT_NULL = "Listener cannot be null"; private final Logger log = getLogger(FlowClassifierManager.class); - private final Set listeners = Sets.newCopyOnWriteArraySet(); + private EventuallyConsistentMap flowClassifierStore; @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) @@ -75,7 +75,6 @@ public class FlowClassifierManager implements FlowClassifierService { @Deactivate protected void deactivate() { flowClassifierStore.destroy(); - listeners.clear(); log.info("Flow Classifier service deactivated"); } @@ -145,16 +144,4 @@ public class FlowClassifierManager implements FlowClassifierService { } return true; } - - @Override - public void addListener(FlowClassifierListener listener) { - checkNotNull(listener, LISTENER_NOT_NULL); - listeners.add(listener); - } - - @Override - public void removeListener(FlowClassifierListener listener) { - checkNotNull(listener, LISTENER_NOT_NULL); - listeners.remove(listener); - } }