Merge "Fix for bug #236 and bug #240 Have made changes in opendaylight-table-types...
[controller.git] / opendaylight / configuration / api / src / main / java / org / opendaylight / controller / configuration / IConfigurationServiceCommon.java
index c76e3770264aecbf32499eb876502ea9b6daccf1..bbc9ee1ee815f1e57660f7edc080987c116fa46d 100644 (file)
@@ -9,13 +9,53 @@
 
 package org.opendaylight.controller.configuration;
 
+import java.util.List;
+
+import org.opendaylight.controller.sal.utils.IObjectReader;
 import org.opendaylight.controller.sal.utils.Status;
 
 /**
- * Container Manager interface
- *
- *
+ * Common configuration interface for Configuration Service and Container
+ * Configuration Service
  */
 public interface IConfigurationServiceCommon {
+    /**
+     * Represent the trigger to save the controller configuration cluster wide.
+     * When called on IConfigurationService, it will trigger a cluster wide save
+     * configuration event for all the global instance components and all
+     * components in all containers. When called on
+     * IContainerConfigurationService, it will trigger a cluster wide save
+     * configuration event for all components in the current container.
+     *
+     * @return the Status object representing the result of the saving request
+     */
     Status saveConfigurations();
+
+    /**
+     * Bundle will call this function to ask Configuration Manager to persist
+     * their configurations. It is up to the Configuration Manager to decide
+     * how the configuration will be persisted
+     *
+     * @param config
+     *            The bundle configuration as a collection of
+     *            ConfigurationObject
+     * @param storeName
+     *            The identifier for this configuration
+     * @return The Status of the operation
+     */
+    Status persistConfiguration(List<ConfigurationObject> config, String storeName);
+
+    /**
+     * Bundle will call this function to ask Configuration Manager to retrieve
+     * the configuration identified by the passed store name
+     *
+     * @param reader
+     *            The reader object for parsing the configuration provided by
+     *            the caller
+     * @param storeName
+     *            The identifier for the configuration
+     * @return The retrieved configuration as a collection of
+     *         ConfigurationObject
+     */
+    List<ConfigurationObject> retrieveConfiguration(IObjectReader reader, String storeName);
 }