From e42dacdeaf82d63000be61c6f1583a2ab08e0a98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Boisnard?= Date: Mon, 25 Feb 2013 15:56:56 +0100 Subject: [PFW] Access Configurations directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BZ: 88357 This patch aims to enable direct access to Configurations without using the main blackboard. 2 additional commands are available: - getConfigurationParameter : Get value for parameter at given path from configuration. - setConfigurationParameter Set value for parameter at given path to configuration. Change-Id: I9357ba5141feee558fa3f7c10f62db14406433b6 Signed-off-by: Frédéric Boisnard Reviewed-on: http://android.intel.com:8080/92325 Reviewed-by: cactus Reviewed-by: Gonzalve, Sebastien Tested-by: Dixon, CharlesX Reviewed-by: buildbot Tested-by: buildbot --- parameter/ConfigurableDomains.cpp | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'parameter/ConfigurableDomains.cpp') diff --git a/parameter/ConfigurableDomains.cpp b/parameter/ConfigurableDomains.cpp index fcfeb4d..bd5c3c5 100644 --- a/parameter/ConfigurableDomains.cpp +++ b/parameter/ConfigurableDomains.cpp @@ -1,4 +1,4 @@ -/* +/* * INTEL CONFIDENTIAL * Copyright © 2011 Intel * Corporation All Rights Reserved. @@ -503,6 +503,36 @@ bool CConfigurableDomains::removeConfigurableElementFromDomain(const string& str return pConfigurableDomain->removeConfigurableElement(pConfigurableElement, strError); } +CParameterBlackboard* CConfigurableDomains::findConfigurationBlackboard(const string& strDomain, + const string& strConfiguration, + const CConfigurableElement* pConfigurableElement, + uint32_t& uiBaseOffset, + bool& bIsLastApplied, + string& strError) const +{ + log_info("Find configuration blackboard for Domain:%s, Configuration:%s, Element:%s", + strDomain.c_str(), strConfiguration.c_str(), pConfigurableElement->getPath().c_str()); + + // Find domain + const CConfigurableDomain* pConfigurableDomain = findConfigurableDomain(strDomain, strError); + + if (!pConfigurableDomain) { + + return NULL; + } + + // Check that element belongs to the domain + if (!pConfigurableElement->belongsTo(pConfigurableDomain)) { + + strError = "Element \"" + pConfigurableElement->getPath() + "\" does not belong to domain \"" + strDomain + "\""; + + return NULL; + } + + // Find Configuration Blackboard and Base Offset + return pConfigurableDomain->findConfigurationBlackboard(strConfiguration, pConfigurableElement, uiBaseOffset, bIsLastApplied, strError); +} + // Binary settings load/store bool CConfigurableDomains::serializeSettings(const string& strBinarySettingsFilePath, bool bOut, uint8_t uiStructureChecksum, string& strError) { -- cgit v1.1