[PFW] Access Configurations directly

BZ: 88357

This patch aims to enable direct access to Configurations
without using the main blackboard. 2 additional commands are
available:
- getConfigurationParameter <domain> <configuration> <param path>:
Get value for parameter at given path from configuration.
- setConfigurationParameter <domain> <configuration> <param path> <value>
Set value for parameter at given path to configuration.

Change-Id: I9357ba5141feee558fa3f7c10f62db14406433b6
Signed-off-by: Frédéric Boisnard <fredericx.boisnard@intel.com>
Reviewed-on: http://android.intel.com:8080/92325
Reviewed-by: cactus <cactus@intel.com>
Reviewed-by: Gonzalve, Sebastien <sebastien.gonzalve@intel.com>
Tested-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
diff --git a/parameter/DomainConfiguration.cpp b/parameter/DomainConfiguration.cpp
index 1aa3e0d..ec6e186 100644
--- a/parameter/DomainConfiguration.cpp
+++ b/parameter/DomainConfiguration.cpp
@@ -318,6 +318,37 @@
     }
 }
 
+/**
+ * Get the Configuration Blackboard.
+ *
+ * Fetch the Configuration Blackboard related to the ConfigurableElement given in parameter. This
+ * Element is used to retrieve the correct AreaConfiguration where the Blackboard is stored.
+ *
+ * @param[in] pConfigurableElement      A pointer to a ConfigurableElement that is part of the
+ *                                      Domain. This must have been checked previously, as an
+ *                                      assertion is performed.
+ *
+ * return Pointer to the Blackboard of the Configuration.
+ */
+CParameterBlackboard* CDomainConfiguration::getBlackboard(const CConfigurableElement* pConfigurableElement) const
+{
+    AreaConfigurationListIterator it;
+
+    for (it = _areaConfigurationList.begin(); it != _areaConfigurationList.end(); ++it) {
+
+        CAreaConfiguration* pAreaConfiguration = *it;
+
+        // Check if the Element is associated with the Domain
+        if (pAreaConfiguration->getConfigurableElement() == pConfigurableElement) {
+
+            return &pAreaConfiguration->getBlackboard();
+        }
+    }
+
+    assert(0);
+    return NULL;
+}
+
 // Save data from current
 void CDomainConfiguration::save(const CParameterBlackboard* pMainBlackboard)
 {