summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Wagner <david.wagner@intel.com>2015-01-06 18:33:36 +0100
committerDavid Wagner <david.wagner@intel.com>2015-01-22 12:02:31 +0100
commit36f40a0b7eee0a6d8b6ca54fdfb1b9043845a555 (patch)
tree752c0a0524faa336facfe65bcaaf186f622e6196
parenta53f6504e8d3d01ffd0ea1e655e202b03b943fe6 (diff)
downloadexternal_parameter-framework-36f40a0b7eee0a6d8b6ca54fdfb1b9043845a555.zip
external_parameter-framework-36f40a0b7eee0a6d8b6ca54fdfb1b9043845a555.tar.gz
external_parameter-framework-36f40a0b7eee0a6d8b6ca54fdfb1b9043845a555.tar.bz2
New ParamegerMgr "Full" connector
This is a new connector that implements (almost) all of the parameter-framework capabilities, in contrast to CParameterMgrPlatformConnector which only implements criteria creation, modification, and application and dynamic parameter handling capabilities. It will allow user to programatically do whatever the PFW can do, e.g. create domains and configurations. Change-Id: Ide118aaaae4f84fa7280d2cae470de0c024c0f00 Signed-off-by: David Wagner <david.wagner@intel.com>
-rw-r--r--parameter/Android.mk2
-rw-r--r--parameter/CMakeLists.txt2
-rw-r--r--parameter/ParameterMgrFullConnector.cpp350
-rw-r--r--parameter/include/ParameterMgrFullConnector.h259
4 files changed, 613 insertions, 0 deletions
diff --git a/parameter/Android.mk b/parameter/Android.mk
index 0625c2b..8592c52 100644
--- a/parameter/Android.mk
+++ b/parameter/Android.mk
@@ -36,6 +36,7 @@ common_copy_headers_to := parameter
common_copy_headers := \
include/ParameterMgrLoggerForward.h \
include/ParameterMgrPlatformConnector.h \
+ include/ParameterMgrFullConnector.h \
include/SelectionCriterionTypeInterface.h \
include/SelectionCriterionInterface.h \
include/ParameterHandle.h
@@ -88,6 +89,7 @@ common_src_files := \
ParameterFrameworkConfiguration.cpp \
ParameterHandle.cpp \
ParameterMgr.cpp \
+ ParameterMgrFullConnector.cpp \
ParameterMgrPlatformConnector.cpp \
ParameterType.cpp \
PathNavigator.cpp \
diff --git a/parameter/CMakeLists.txt b/parameter/CMakeLists.txt
index cf2449e..7d91a82 100644
--- a/parameter/CMakeLists.txt
+++ b/parameter/CMakeLists.txt
@@ -74,6 +74,7 @@ add_library(parameter SHARED
ParameterFrameworkConfiguration.cpp
ParameterHandle.cpp
ParameterMgr.cpp
+ ParameterMgrFullConnector.cpp
ParameterMgrPlatformConnector.cpp
ParameterType.cpp
PathNavigator.cpp
@@ -115,6 +116,7 @@ install(TARGETS parameter LIBRARY DESTINATION lib)
install(FILES
include/ParameterHandle.h
include/ParameterMgrLoggerForward.h
+ include/ParameterMgrFullConnector.h
include/ParameterMgrPlatformConnector.h
include/SelectionCriterionInterface.h
include/SelectionCriterionTypeInterface.h
diff --git a/parameter/ParameterMgrFullConnector.cpp b/parameter/ParameterMgrFullConnector.cpp
new file mode 100644
index 0000000..92a8e04
--- /dev/null
+++ b/parameter/ParameterMgrFullConnector.cpp
@@ -0,0 +1,350 @@
+/*
+ * Copyright (c) 2015, Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation and/or
+ * other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "ParameterMgrFullConnector.h"
+#include "ParameterMgr.h"
+#include "ParameterMgrLogger.h"
+
+#include <list>
+
+using std::string;
+
+CParameterMgrFullConnector::CParameterMgrFullConnector(const string& strConfigurationFilePath) :
+ _pParameterMgr(new CParameterMgr(strConfigurationFilePath)), _pLogger(NULL)
+{
+ _pParameterMgrLogger = new CParameterMgrLogger<CParameterMgrFullConnector>(*this);
+ _pParameterMgr->setLogger(_pParameterMgrLogger);
+}
+
+CParameterMgrFullConnector::~CParameterMgrFullConnector()
+{
+ delete _pParameterMgr;
+ delete _pParameterMgrLogger;
+}
+
+
+bool CParameterMgrFullConnector::start(string& strError)
+{
+ // Create data structure & Init flow
+ return _pParameterMgr->load(strError) && _pParameterMgr->init(strError);
+}
+
+void CParameterMgrFullConnector::setLogger(CParameterMgrFullConnector::ILogger* pLogger)
+{
+ _pLogger = pLogger;
+}
+
+// Private logging
+void CParameterMgrFullConnector::doLog(bool bIsWarning, const string& strLog)
+{
+ if (_pLogger) {
+
+ _pLogger->log(bIsWarning, strLog);
+ }
+}
+
+CParameterHandle* CParameterMgrFullConnector::createParameterHandle(const string& strPath,
+ string& strError)
+{
+ return _pParameterMgr->createParameterHandle(strPath, strError);
+}
+
+ISelectionCriterionTypeInterface* CParameterMgrFullConnector::createSelectionCriterionType(
+ bool bIsInclusive)
+{
+ return _pParameterMgr->createSelectionCriterionType(bIsInclusive);
+}
+
+ISelectionCriterionInterface* CParameterMgrFullConnector::createSelectionCriterion(
+ const string& strName,
+ const ISelectionCriterionTypeInterface* pSelectionCriterionType)
+{
+ return _pParameterMgr->createSelectionCriterion(strName,
+ static_cast<const CSelectionCriterionType*>(pSelectionCriterionType));
+}
+
+ISelectionCriterionInterface* CParameterMgrFullConnector::getSelectionCriterion(
+ const string& strName)
+{
+ return _pParameterMgr->getSelectionCriterion(strName);
+}
+
+void CParameterMgrFullConnector::applyConfigurations()
+{
+ return _pParameterMgr->applyConfigurations();
+}
+
+void CParameterMgrFullConnector::setFailureOnMissingSubsystem(bool bFail)
+{
+ _pParameterMgr->setFailureOnMissingSubsystem(bFail);
+}
+
+bool CParameterMgrFullConnector::getFailureOnMissingSubsystem() const
+{
+ return _pParameterMgr->getFailureOnMissingSubsystem();
+}
+
+void CParameterMgrFullConnector::setFailureOnFailedSettingsLoad(bool bFail)
+{
+ _pParameterMgr->setFailureOnFailedSettingsLoad(bFail);
+}
+
+bool CParameterMgrFullConnector::getFailureOnFailedSettingsLoad()
+{
+ return _pParameterMgr->getFailureOnFailedSettingsLoad();
+}
+
+void CParameterMgrFullConnector::setValidateSchemasOnStart(bool bValidate)
+{
+ _pParameterMgr->setValidateSchemasOnStart(bValidate);
+}
+
+bool CParameterMgrFullConnector::getValidateSchemasOnStart() const
+{
+ return _pParameterMgr->getValidateSchemasOnStart();
+}
+
+bool CParameterMgrFullConnector::setTuningMode(bool bOn, string& strError)
+{
+ return _pParameterMgr->setTuningMode(bOn, strError);
+}
+
+bool CParameterMgrFullConnector::isTuningModeOn() const
+{
+ return _pParameterMgr->tuningModeOn();
+}
+
+void CParameterMgrFullConnector::setValueSpace(bool bIsRaw)
+{
+ return _pParameterMgr->setValueSpace(bIsRaw);
+}
+
+bool CParameterMgrFullConnector::isValueSpaceRaw() const
+{
+ return _pParameterMgr->valueSpaceIsRaw();
+}
+
+void CParameterMgrFullConnector::setOutputRawFormat(bool bIsHex)
+{
+ return _pParameterMgr->setOutputRawFormat(bIsHex);
+}
+
+bool CParameterMgrFullConnector::isOutputRawFormatHex() const
+{
+ return _pParameterMgr->outputRawFormatIsHex();
+}
+
+bool CParameterMgrFullConnector::setAutoSync(bool bAutoSyncOn, string& strError)
+{
+ return _pParameterMgr->setAutoSync(bAutoSyncOn, strError);
+}
+
+bool CParameterMgrFullConnector::isAutoSyncOn() const
+{
+ return _pParameterMgr->autoSyncOn();
+}
+
+bool CParameterMgrFullConnector::sync(string& strError)
+{
+ return _pParameterMgr->sync(strError);
+}
+
+bool CParameterMgrFullConnector::accessParameterValue(const string& strPath, string& strValue,
+ bool bSet, string& strError)
+{
+ return _pParameterMgr->accessParameterValue(strPath, strValue, bSet, strError);
+}
+
+bool CParameterMgrFullConnector::accessConfigurationValue(const string &strDomain,
+ const string &strConfiguration,
+ const string& strPath, string& strValue,
+ bool bSet, string& strError)
+{
+ return _pParameterMgr->accessConfigurationValue(strDomain, strConfiguration, strPath, strValue,
+ bSet, strError);
+}
+
+bool CParameterMgrFullConnector::getParameterMapping(const string& strPath, string& strValue) const
+{
+ return _pParameterMgr->getParameterMapping(strPath, strValue);
+}
+
+bool CParameterMgrFullConnector::createDomain(const string& strName, string& strError)
+{
+ return _pParameterMgr->createDomain(strName, strError);
+}
+
+bool CParameterMgrFullConnector::deleteDomain(const string& strName, string& strError)
+{
+ return _pParameterMgr->deleteDomain(strName, strError);
+}
+
+bool CParameterMgrFullConnector::renameDomain(const string& strName, const string& strNewName,
+ string& strError)
+{
+ return _pParameterMgr->renameDomain(strName, strNewName, strError);
+}
+
+bool CParameterMgrFullConnector::deleteAllDomains(string& strError)
+{
+ return _pParameterMgr->deleteAllDomains(strError);
+}
+
+bool CParameterMgrFullConnector::createConfiguration(const string& strDomain,
+ const string& strConfiguration,
+ string& strError)
+{
+ return _pParameterMgr->createConfiguration(strDomain, strConfiguration, strError);
+}
+
+bool CParameterMgrFullConnector::deleteConfiguration(const string& strDomain,
+ const string& strConfiguration,
+ string& strError)
+{
+ return _pParameterMgr->deleteConfiguration(strDomain, strConfiguration, strError);
+}
+
+bool CParameterMgrFullConnector::renameConfiguration(const string& strDomain,
+ const string& strConfiguration,
+ const string& strNewConfiguration,
+ string& strError)
+{
+ return _pParameterMgr->renameConfiguration(strDomain, strConfiguration, strNewConfiguration,
+ strError);
+}
+
+bool CParameterMgrFullConnector::saveConfiguration(const string& strDomain,
+ const string& strConfiguration, string& strError)
+{
+ return _pParameterMgr->saveConfiguration(strDomain, strConfiguration, strError);
+}
+
+bool CParameterMgrFullConnector::restoreConfiguration(const string& strDomain,
+ const string& strConfiguration,
+ std::list<string>& lstrError)
+{
+ return _pParameterMgr->restoreConfiguration(strDomain, strConfiguration, lstrError);
+}
+
+bool CParameterMgrFullConnector::setSequenceAwareness(const string& strName, bool bSequenceAware,
+ string& strResult)
+{
+ return _pParameterMgr->setSequenceAwareness(strName, bSequenceAware, strResult);
+}
+
+bool CParameterMgrFullConnector::getSequenceAwareness(const string& strName, bool& bSequenceAware,
+ string& strResult)
+{
+ return _pParameterMgr->getSequenceAwareness(strName, bSequenceAware, strResult);
+}
+
+bool CParameterMgrFullConnector::addConfigurableElementToDomain(const string& strDomain,
+ const string& strConfigurableElementPath, string& strError)
+{
+ return _pParameterMgr->addConfigurableElementToDomain(strDomain, strConfigurableElementPath,
+ strError);
+}
+
+bool CParameterMgrFullConnector::removeConfigurableElementFromDomain(const string& strDomain,
+ const string& strConfigurableElementPath, string& strError)
+{
+ return _pParameterMgr->removeConfigurableElementFromDomain(strDomain,
+ strConfigurableElementPath, strError);
+}
+
+bool CParameterMgrFullConnector::split(const string& strDomain,
+ const string& strConfigurableElementPath, string& strError)
+{
+ return _pParameterMgr->split(strDomain, strConfigurableElementPath, strError);
+}
+
+bool CParameterMgrFullConnector::setElementSequence(const string& strDomain,
+ const string& strConfiguration,
+ const std::vector<string>& astrNewElementSequence,
+ string& strError)
+{
+ return _pParameterMgr->setElementSequence(strDomain, strConfiguration, astrNewElementSequence,
+ strError);
+}
+
+bool CParameterMgrFullConnector::setApplicationRule(const string& strDomain,
+ const string& strConfiguration,
+ const string& strApplicationRule,
+ string& strError)
+{
+ return _pParameterMgr->setApplicationRule(strDomain, strConfiguration, strApplicationRule,
+ strError);
+}
+
+
+bool CParameterMgrFullConnector::getApplicationRule(const string& strDomain,
+ const string& strConfiguration,
+ string& strResult)
+{
+ return _pParameterMgr->getApplicationRule(strDomain, strConfiguration, strResult);
+}
+bool CParameterMgrFullConnector::clearApplicationRule(const string& strDomain,
+ const string& strConfiguration,
+ string& strError)
+{
+ return _pParameterMgr->clearApplicationRule(strDomain, strConfiguration, strError);
+}
+
+
+bool CParameterMgrFullConnector::importDomainsXml(const string& strXmlSource, bool bWithSettings,
+ bool bFromFile, string& strError)
+{
+ return _pParameterMgr->importDomainsXml(strXmlSource, bWithSettings, bFromFile, strError);
+}
+
+bool CParameterMgrFullConnector::exportDomainsXml(string& strXmlDest, bool bWithSettings,
+ bool bToFile, string& strError) const
+{
+ return _pParameterMgr->exportDomainsXml(strXmlDest, bWithSettings, bToFile, strError);
+}
+
+bool CParameterMgrFullConnector::importSingleDomainXml(const string& strXmlSource, bool bOverwrite,
+ string& strError)
+{
+ return _pParameterMgr->importSingleDomainXml(strXmlSource, bOverwrite, strError);
+}
+
+bool CParameterMgrFullConnector::exportSingleDomainXml(string& strXmlDest,
+ const string& strDomainName,
+ bool bWithSettings, bool bToFile,
+ string& strError) const
+{
+ return _pParameterMgr->exportSingleDomainXml(strXmlDest, strDomainName, bWithSettings, bToFile,
+ strError);
+}
+
+bool CParameterMgrFullConnector::getSystemClassXMLString(string& strResult)
+{
+ return _pParameterMgr->getSystemClassXMLString(strResult);
+}
diff --git a/parameter/include/ParameterMgrFullConnector.h b/parameter/include/ParameterMgrFullConnector.h
new file mode 100644
index 0000000..1288c69
--- /dev/null
+++ b/parameter/include/ParameterMgrFullConnector.h
@@ -0,0 +1,259 @@
+/*
+ * Copyright (c) 2015, Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation and/or
+ * other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#pragma once
+
+#include "SelectionCriterionTypeInterface.h"
+#include "SelectionCriterionInterface.h"
+#include "ParameterHandle.h"
+#include "ParameterMgrLoggerForward.h"
+
+#include <string>
+#include <list>
+#include <memory>
+#include <stdint.h>
+
+class CParameterMgr;
+
+class CParameterMgrFullConnector
+{
+ friend class CParameterMgrLogger<CParameterMgrFullConnector>;
+
+public:
+ CParameterMgrFullConnector(const std::string& strConfigurationFilePath);
+ ~CParameterMgrFullConnector();
+
+ class ILogger
+ {
+ public:
+ virtual void log(bool bIsWarning, const std::string& strLog) = 0;
+ protected:
+ virtual ~ILogger() {}
+ };
+ // Logging
+ /** Should be called before start */
+ void setLogger(ILogger* pLogger);
+
+
+ bool start(std::string& strError);
+
+ // Dynamic parameter handling
+ CParameterHandle* createParameterHandle(const std::string& strPath, std::string& strError);
+
+ ISelectionCriterionTypeInterface* createSelectionCriterionType(bool bIsInclusive);
+ ISelectionCriterionInterface* createSelectionCriterion(const std::string& strName,
+ const ISelectionCriterionTypeInterface* pSelectionCriterionType);
+ ISelectionCriterionInterface* getSelectionCriterion(const std::string& strName);
+
+ void applyConfigurations();
+
+ /** Should start fail in case of missing subsystems.
+ *
+ * @param[in] bFail: If set to true, parameterMgr start will fail on missing subsystems.
+ * If set to false, missing subsystems will fallback on virtual subsystem.
+ */
+ void setFailureOnMissingSubsystem(bool bFail);
+
+ /** Would start fail in case of missing subsystems.
+ *
+ * @return true if the subsystem will fail on missing subsystem, false otherwise.
+ */
+ bool getFailureOnMissingSubsystem() const;
+
+ /** Should start fail in failed settings load.
+ *
+ * @param[in] bFail: If set to true, parameterMgr start will fail on failed settings load.
+ * If set to false, failed settings load will be ignored.
+ */
+ void setFailureOnFailedSettingsLoad(bool bFail);
+ /** Would start fail in case of failed settings load.
+ *
+ * @return failure on failed settings load policy state.
+ */
+ bool getFailureOnFailedSettingsLoad();
+
+ /** Should .xml files be validated on start ?
+ *
+ * @param[in] bValidate:
+ * If set to true, parameterMgr will report an error
+ * when being unable to validate .xml files
+ * If set to false, no .xml/xsd validation will happen
+ * (default behaviour)
+ *
+ * @return false if unable to set, true otherwise.
+ */
+ void setValidateSchemasOnStart(bool bValidate);
+
+ /** Would .xml files be validated on start?
+ *
+ * @return areSchemasValidated
+ */
+ bool getValidateSchemasOnStart() const;
+ //////////// Tuning /////////////
+ // Tuning mode
+ bool setTuningMode(bool bOn, std::string& strError);
+ bool isTuningModeOn() const;
+
+ // Current value space for user set/get value interpretation
+ void setValueSpace(bool bIsRaw);
+ bool isValueSpaceRaw() const;
+
+ // Current Output Raw Format for user get value interpretation
+ void setOutputRawFormat(bool bIsHex);
+ bool isOutputRawFormatHex() const;
+ // Automatic hardware synchronization control (during tuning session)
+ bool setAutoSync(bool bAutoSyncOn, std::string& strError);
+ bool isAutoSyncOn() const;
+ bool sync(std::string& strError);
+
+ // User set/get parameters
+ bool accessParameterValue(const std::string& strPath, std::string& strValue, bool bSet, std::string& strError);
+ bool accessConfigurationValue(const std::string &strDomain, const std::string &strConfiguration, const std::string& strPath, std::string& strValue, bool bSet, std::string& strError);
+
+ /**
+ * Returns the element mapping corresponding to the path given in parameter.
+ *
+ * @param[in] strPath Path of an element
+ * @param[out] strValue A sting containing the mapping
+ *
+ * @return true if a mapping was found for this element
+ */
+ bool getParameterMapping(const std::string& strPath, std::string& strValue) const;
+ ////////// Configuration/Domains handling //////////////
+ // Creation/Deletion
+ bool createDomain(const std::string& strName, std::string& strError);
+ bool deleteDomain(const std::string& strName, std::string& strError);
+ bool renameDomain(const std::string& strName, const std::string& strNewName, std::string& strError);
+ bool deleteAllDomains(std::string& strError);
+ bool setSequenceAwareness(const std::string& strName, bool bSequenceAware, std::string& strResult);
+ bool getSequenceAwareness(const std::string& strName, bool& bSequenceAware, std::string& strResult);
+ bool createConfiguration(const std::string& strDomain, const std::string& strConfiguration, std::string& strError);
+ bool deleteConfiguration(const std::string& strDomain, const std::string& strConfiguration, std::string& strError);
+ bool renameConfiguration(const std::string& strDomain, const std::string& strConfiguration, const std::string& strNewConfiguration, std::string& strError);
+
+ // Save/Restore
+ bool restoreConfiguration(const std::string& strDomain, const std::string& strConfiguration, std::list<std::string>& strError);
+ bool saveConfiguration(const std::string& strDomain, const std::string& strConfiguration, std::string& strError);
+
+ // Configurable element - domain association
+ bool addConfigurableElementToDomain(const std::string& strDomain, const std::string& strConfigurableElementPath, std::string& strError);
+ bool removeConfigurableElementFromDomain(const std::string& strDomain, const std::string& strConfigurableElementPath, std::string& strError);
+ bool split(const std::string& strDomain, const std::string& strConfigurableElementPath, std::string& strError);
+ bool setElementSequence(const std::string& strDomain, const std::string& strConfiguration, const std::vector<std::string>& astrNewElementSequence, std::string& strError);
+
+ bool setApplicationRule(const std::string& strDomain, const std::string& strConfiguration,
+ const std::string& strApplicationRule, std::string& strError);
+ bool getApplicationRule(const std::string& strDomain, const std::string& strConfiguration,
+ std::string& strResult);
+ bool clearApplicationRule(const std::string& strDomain, const std::string& strConfiguration, std::string& strError);
+
+ /**
+ * Method that imports Configurable Domains from an Xml source.
+ *
+ * @param[in] strXmlSource a string containing an xml description or a path to an xml file
+ * @param[in] bWithSettings a boolean that determines if the settings should be used in the
+ * xml description
+ * @param[in] bFromFile a boolean that determines if the source is an xml description in
+ * strXmlSource or contained in a file. In that case strXmlSource is just the file path.
+ * @param[out] strError is used as the error output
+ *
+ * @return false if any error occures
+ */
+ bool importDomainsXml(const std::string& strXmlSource, bool bWithSettings, bool bFromFile,
+ std::string& strError);
+ /**
+ * Method that imports a single Configurable Domain from an Xml source.
+ *
+ * @param[in] strXmlSource a string containing an xml description or a path to an xml file
+ * @param[in] bWithSettings a boolean that determines if the settings should be used in the
+ * xml description
+ * @param[in] bFromFile a boolean that determines if the source is an xml description in
+ * strXmlSource or contained in a file. In that case strXmlSource is just the file path.
+ * @param[out] strError is used as the error output
+ *
+ * @return false if any error occurs
+ */
+ bool importSingleDomainXml(const std::string& strXmlSource, bool bOverwrite,
+ std::string& strError);
+
+
+ /**
+ * Method that exports Configurable Domains to an Xml destination.
+ *
+ * @param[in,out] strXmlDest a string containing an xml description or a path to an xml file
+ * @param[in] bWithSettings a boolean that determines if the settings should be used in the
+ * xml description
+ * @param[in] bToFile a boolean that determines if the destination is an xml description in
+ * strXmlDest or contained in a file. In that case strXmlDest is just the file path.
+ * @param[out] strError is used as the error output
+ *
+ * @return false if any error occures, true otherwise.
+ */
+ bool exportDomainsXml(std::string& strXmlDest, bool bWithSettings, bool bToFile,
+ std::string& strError) const;
+
+ /**
+ * Method that exports a given Configurable Domain to an Xml destination.
+ *
+ * @param[in,out] strXmlDest a string containing an xml description or a path to an xml file
+ * @param[in] strDomainName the name of the domain to be exported
+ * @param[in] bWithSettings a boolean that determines if the settings should be used in the
+ * xml description
+ * @param[in] bToFile a boolean that determines if the destination is an xml description in
+ * strXmlDest or contained in a file. In that case strXmlDest is just the file path.
+ * @param[out] strError is used as the error output
+ *
+ * @return false if any error occurs, true otherwise.
+ */
+ bool exportSingleDomainXml(std::string& strXmlDest, const std::string& strDomainName, bool bWithSettings,
+ bool bToFile, std::string& strError) const;
+
+ /**
+ * Method that creates an Xml description of the instanciated parameter structure contained
+ * in SystemClass.
+ *
+ * @param[out] strResult contains the xml description of SystemClass or the errors if any
+ *
+ * @return false if any error occures during the creation of the xml description
+ */
+ bool getSystemClassXMLString(std::string& strResult);
+
+private:
+ // disallow copying because this class manages raw pointers' lifecycle
+ CParameterMgrFullConnector(const CParameterMgrFullConnector&);
+ CParameterMgrFullConnector& operator=(const CParameterMgrFullConnector&);
+
+ void doLog(bool bIsWarning, const std::string& strLog);
+
+ CParameterMgr* _pParameterMgr;
+
+ ILogger* _pLogger;
+ // Log wrapper
+ CParameterMgrLogger<CParameterMgrFullConnector>* _pParameterMgrLogger;
+};