Renamed datagrid and datastore packages

net.onrc.onos.datagrid.* => net.onrc.onos.core.datagrid.*
net.onrc.onos.datastore.* => net.onrc.onos.core.datastore.*

Change-Id: Ibe1894a6fabae08ea7cfcbf6595f0c91b05ef497
diff --git a/src/main/java/net/onrc/onos/core/datagrid/IDatagridService.java b/src/main/java/net/onrc/onos/core/datagrid/IDatagridService.java
new file mode 100755
index 0000000..5fe52cc
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/datagrid/IDatagridService.java
@@ -0,0 +1,47 @@
+package net.onrc.onos.core.datagrid;
+
+import net.floodlightcontroller.core.module.IFloodlightService;
+
+/**
+ * Interface for providing Datagrid Service to other modules.
+ */
+public interface IDatagridService extends IFloodlightService {
+    /**
+     * Create an event channel.
+     * <p/>
+     * If the channel already exists, just return it.
+     * NOTE: The channel is started automatically.
+     *
+     * @param channelName the event channel name.
+     * @param typeK       the type of the Key in the Key-Value store.
+     * @param typeV       the type of the Value in the Key-Value store.
+     * @return the event channel for the channel name.
+     */
+    <K, V> IEventChannel<K, V> createChannel(String channelName,
+                                             Class<K> typeK, Class<V> typeV);
+
+    /**
+     * Add event channel listener.
+     * <p/>
+     * NOTE: The channel is started automatically right after the listener
+     * is added.
+     *
+     * @param channelName the event channel name.
+     * @param listener    the listener to add.
+     * @param typeK       the type of the Key in the Key-Value store.
+     * @param typeV       the type of the Value in the Key-Value store.
+     * @return the event channel for the channel name.
+     */
+    <K, V> IEventChannel<K, V> addListener(String channelName,
+                                           IEventChannelListener<K, V> listener,
+                                           Class<K> typeK, Class<V> typeV);
+
+    /**
+     * Remove event channel listener.
+     *
+     * @param channelName the event channel name.
+     * @param listener    the listener to remove.
+     */
+    <K, V> void removeListener(String channelName,
+                               IEventChannelListener<K, V> listener);
+}