implemented a distributed default flow registration mechanism to avoid duplicate requests from other onos instances

Change-Id: Ib2abb483456538e3e08e9790c4b4b0d50db8b384

implemented a distributed default flow registration mechanism to avoid
duplicate requests from other onos instances

Change-Id: I620cc51ac29cddaffa73cdbb20e9a9acbdd9ea69
diff --git a/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java b/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java
index 30f3910..68da758 100644
--- a/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java
+++ b/core/store/trivial/src/main/java/org/onosproject/store/trivial/impl/SimplePacketStore.java
@@ -15,15 +15,21 @@
  */
 package org.onosproject.store.trivial.impl;
 
+import com.google.common.collect.Sets;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.onosproject.net.packet.OutboundPacket;
 import org.onosproject.net.packet.PacketEvent;
 import org.onosproject.net.packet.PacketEvent.Type;
+import org.onosproject.net.packet.PacketRequest;
 import org.onosproject.net.packet.PacketStore;
 import org.onosproject.net.packet.PacketStoreDelegate;
 import org.onosproject.store.AbstractStore;
 
+
+import java.util.Collections;
+import java.util.Set;
+
 /**
  * Simple single instance implementation of the packet store.
  */
@@ -33,9 +39,21 @@
         extends AbstractStore<PacketEvent, PacketStoreDelegate>
         implements PacketStore {
 
+    private Set<PacketRequest> requests = Sets.newConcurrentHashSet();
+
     @Override
     public void emit(OutboundPacket packet) {
         notifyDelegate(new PacketEvent(Type.EMIT, packet));
     }
 
+    @Override
+    public boolean requestPackets(PacketRequest request) {
+        return requests.add(request);
+    }
+
+    @Override
+    public Set<PacketRequest> existingRequests() {
+        return Collections.unmodifiableSet(requests);
+    }
+
 }