[ONOS-3117] add listener to PortPairManager
Change-Id: I261527308da725996dbae34bddb855c0cacc6367
Showing
2 changed files
with
34 additions
and
2 deletions
| ... | @@ -77,4 +77,18 @@ public interface PortPairService { | ... | @@ -77,4 +77,18 @@ public interface PortPairService { |
| 77 | * @return true if the give port pair is deleted successfully. | 77 | * @return true if the give port pair is deleted successfully. |
| 78 | */ | 78 | */ |
| 79 | boolean removePortPair(PortPairId portPairId); | 79 | boolean removePortPair(PortPairId portPairId); |
| 80 | + | ||
| 81 | + /** | ||
| 82 | + * Adds the specified listener to Port-Pair manager. | ||
| 83 | + * | ||
| 84 | + * @param listener Port-Pair listener | ||
| 85 | + */ | ||
| 86 | + void addListener(PortPairListener listener); | ||
| 87 | + | ||
| 88 | + /** | ||
| 89 | + * Removes the specified listener to Port-Pair manager. | ||
| 90 | + * | ||
| 91 | + * @param listener Port-Pair listener | ||
| 92 | + */ | ||
| 93 | + void removeListener(PortPairListener listener); | ||
| 80 | } | 94 | } | ... | ... |
| ... | @@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkNotNull; | ... | @@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkNotNull; |
| 19 | import static org.slf4j.LoggerFactory.getLogger; | 19 | import static org.slf4j.LoggerFactory.getLogger; |
| 20 | 20 | ||
| 21 | import java.util.Collections; | 21 | import java.util.Collections; |
| 22 | +import java.util.Set; | ||
| 22 | 23 | ||
| 23 | import org.apache.felix.scr.annotations.Activate; | 24 | import org.apache.felix.scr.annotations.Activate; |
| 24 | import org.apache.felix.scr.annotations.Component; | 25 | import org.apache.felix.scr.annotations.Component; |
| ... | @@ -34,9 +35,12 @@ import org.onosproject.store.service.StorageService; | ... | @@ -34,9 +35,12 @@ import org.onosproject.store.service.StorageService; |
| 34 | import org.onosproject.store.service.WallClockTimestamp; | 35 | import org.onosproject.store.service.WallClockTimestamp; |
| 35 | import org.onosproject.vtnrsc.PortPair; | 36 | import org.onosproject.vtnrsc.PortPair; |
| 36 | import org.onosproject.vtnrsc.PortPairId; | 37 | import org.onosproject.vtnrsc.PortPairId; |
| 38 | +import org.onosproject.vtnrsc.portpair.PortPairListener; | ||
| 37 | import org.onosproject.vtnrsc.portpair.PortPairService; | 39 | import org.onosproject.vtnrsc.portpair.PortPairService; |
| 38 | import org.slf4j.Logger; | 40 | import org.slf4j.Logger; |
| 39 | 41 | ||
| 42 | +import com.google.common.collect.Sets; | ||
| 43 | + | ||
| 40 | /** | 44 | /** |
| 41 | * Provides implementation of the portPairService. | 45 | * Provides implementation of the portPairService. |
| 42 | */ | 46 | */ |
| ... | @@ -44,11 +48,12 @@ import org.slf4j.Logger; | ... | @@ -44,11 +48,12 @@ import org.slf4j.Logger; |
| 44 | @Service | 48 | @Service |
| 45 | public class PortPairManager implements PortPairService { | 49 | public class PortPairManager implements PortPairService { |
| 46 | 50 | ||
| 47 | - private final Logger log = getLogger(getClass()); | ||
| 48 | - | ||
| 49 | private static final String PORT_PAIR_ID_NULL = "PortPair ID cannot be null"; | 51 | private static final String PORT_PAIR_ID_NULL = "PortPair ID cannot be null"; |
| 50 | private static final String PORT_PAIR_NULL = "PortPair cannot be null"; | 52 | private static final String PORT_PAIR_NULL = "PortPair cannot be null"; |
| 53 | + private static final String LISTENER_NOT_NULL = "Listener cannot be null"; | ||
| 51 | 54 | ||
| 55 | + private final Logger log = getLogger(getClass()); | ||
| 56 | + private final Set<PortPairListener> listeners = Sets.newCopyOnWriteArraySet(); | ||
| 52 | private EventuallyConsistentMap<PortPairId, PortPair> portPairStore; | 57 | private EventuallyConsistentMap<PortPairId, PortPair> portPairStore; |
| 53 | 58 | ||
| 54 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 59 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| ... | @@ -73,6 +78,7 @@ public class PortPairManager implements PortPairService { | ... | @@ -73,6 +78,7 @@ public class PortPairManager implements PortPairService { |
| 73 | @Deactivate | 78 | @Deactivate |
| 74 | public void deactivate() { | 79 | public void deactivate() { |
| 75 | portPairStore.destroy(); | 80 | portPairStore.destroy(); |
| 81 | + listeners.clear(); | ||
| 76 | log.info("Stopped"); | 82 | log.info("Stopped"); |
| 77 | } | 83 | } |
| 78 | 84 | ||
| ... | @@ -143,4 +149,16 @@ public class PortPairManager implements PortPairService { | ... | @@ -143,4 +149,16 @@ public class PortPairManager implements PortPairService { |
| 143 | } | 149 | } |
| 144 | return true; | 150 | return true; |
| 145 | } | 151 | } |
| 152 | + | ||
| 153 | + @Override | ||
| 154 | + public void addListener(PortPairListener listener) { | ||
| 155 | + checkNotNull(listener, LISTENER_NOT_NULL); | ||
| 156 | + listeners.add(listener); | ||
| 157 | + } | ||
| 158 | + | ||
| 159 | + @Override | ||
| 160 | + public void removeListener(PortPairListener listener) { | ||
| 161 | + checkNotNull(listener, LISTENER_NOT_NULL); | ||
| 162 | + listeners.remove(listener); | ||
| 163 | + } | ||
| 146 | } | 164 | } | ... | ... |
-
Please register or login to post a comment