Cherry-pick from https://gerrit.onos.onlab.us/#/c/342/

Cherry-pick from https://gerrit.onos.onlab.us/#/c/322/

Suppress device update for the same device.
Add function to clean devices.

Conflicts:

	src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java

NOTE: The above conflict has been resolved by hand.
The conflict was in the number of parameters when
calling deviceStorage.init() inside file OnosDeviceManager.java:
deviceStorage.init("") -> deviceStorage.init("","")

Conflicts:

	src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java
	src/main/java/net/onrc/onos/datagrid/IDatagridService.java

NOTE: The above conflict has been resolved by hand.

Change-Id: I831e391efce9a795370be99238834b6bc7db2bee
diff --git a/src/main/java/net/onrc/onos/datagrid/IDatagridService.java b/src/main/java/net/onrc/onos/datagrid/IDatagridService.java
index 118cbfa..0c79b81 100755
--- a/src/main/java/net/onrc/onos/datagrid/IDatagridService.java
+++ b/src/main/java/net/onrc/onos/datagrid/IDatagridService.java
@@ -4,6 +4,8 @@
 
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.onrc.onos.intent.Intent;
+import net.onrc.onos.ofcontroller.devicemanager.IDeviceEventHandler;
+import net.onrc.onos.ofcontroller.devicemanager.OnosDevice;
 import net.onrc.onos.ofcontroller.flowmanager.IFlowEventHandlerService;
 import net.onrc.onos.ofcontroller.proxyarp.ArpReplyNotification;
 import net.onrc.onos.ofcontroller.proxyarp.IArpReplyEventHandler;
@@ -317,4 +319,13 @@
      * @param arpReply The notification of the ARP reply
      */
     public void sendArpReplyNotification(ArpReplyNotification arpReply);
+
+	void sendNotificationDeviceAdded(Long mac, OnosDevice dev);
+
+	void sendNotificationDeviceDeleted(OnosDevice dev);
+
+	void registerMapDeviceEventHandler(IDeviceEventHandler deviceEventHandler);
+
+	void deregisterMapDeviceEventHandler(IDeviceEventHandler deviceEventHandler);
+
 }