136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner/* 236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Copyright (c) 2015, Intel Corporation 336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * All rights reserved. 436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Redistribution and use in source and binary forms, with or without modification, 636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * are permitted provided that the following conditions are met: 736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 1. Redistributions of source code must retain the above copyright notice, this 936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * list of conditions and the following disclaimer. 1036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 1136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 2. Redistributions in binary form must reproduce the above copyright notice, 1236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * this list of conditions and the following disclaimer in the documentation and/or 1336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * other materials provided with the distribution. 1436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 1536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 3. Neither the name of the copyright holder nor the names of its contributors 1636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * may be used to endorse or promote products derived from this software without 1736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * specific prior written permission. 1836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 1936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 2036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 2336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 2536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 2636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 2836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 3036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#pragma once 3136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 329368eea42a1afb01dd44110582f997115b50e742François Gaffie#include "parameter_export.h" 339368eea42a1afb01dd44110582f997115b50e742François Gaffie 3436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include "SelectionCriterionTypeInterface.h" 3536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include "SelectionCriterionInterface.h" 3636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include "ParameterHandle.h" 3736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include "ParameterMgrLoggerForward.h" 389368eea42a1afb01dd44110582f997115b50e742François Gaffie#include "ParameterMgrPlatformConnector.h" 399368eea42a1afb01dd44110582f997115b50e742François Gaffie#include "CommandHandlerInterface.h" 4036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 4136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include <string> 4236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include <list> 4336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include <memory> 4436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner#include <stdint.h> 4536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 4636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagnerclass CParameterMgr; 4736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 489368eea42a1afb01dd44110582f997115b50e742François Gaffie/** @note Since only C++11 components use this interface 499368eea42a1afb01dd44110582f997115b50e742François Gaffie * (contrary to the more restricted CParameterMgrPlatformConnector), 509368eea42a1afb01dd44110582f997115b50e742François Gaffie * could this api not be transition to c++11 ? 519368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 529368eea42a1afb01dd44110582f997115b50e742François Gaffieclass PARAMETER_EXPORT CParameterMgrFullConnector : public CParameterMgrPlatformConnector 5336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner{ 5436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagnerpublic: 559368eea42a1afb01dd44110582f997115b50e742François Gaffie /** String list type which can hold list of error/info and can be presented to client */ 569368eea42a1afb01dd44110582f997115b50e742François Gaffie typedef std::list<std::string> Results; 5736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 589368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgrFullConnector(const std::string &strConfigurationFilePath); 5936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 609368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Create and return a command handler for this ParameterMgr instance 61962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * 629368eea42a1afb01dd44110582f997115b50e742François Gaffie * The caller owns the returned pointer and is responsible for deleting it 639368eea42a1afb01dd44110582f997115b50e742François Gaffie * before destroying the Connector object. 64962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * 659368eea42a1afb01dd44110582f997115b50e742François Gaffie * @returns a Command Handler 66962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner */ 679368eea42a1afb01dd44110582f997115b50e742François Gaffie CommandHandlerInterface *createCommandHandler(); 68962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner 699368eea42a1afb01dd44110582f997115b50e742François Gaffie /** @deprecated Same as its overload without error handling. 709368eea42a1afb01dd44110582f997115b50e742François Gaffie * @note this deprecated method in not available in the python wrapper. 71faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner */ 729368eea42a1afb01dd44110582f997115b50e742François Gaffie void setFailureOnMissingSubsystem(bool bFail); 739368eea42a1afb01dd44110582f997115b50e742François Gaffie using CParameterMgrPlatformConnector::setFailureOnMissingSubsystem; 74faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner 759368eea42a1afb01dd44110582f997115b50e742François Gaffie /** @deprecated Same as its overload without error handling. 769368eea42a1afb01dd44110582f997115b50e742François Gaffie * @note this deprecated method in not available in the python wrapper. 77faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner */ 789368eea42a1afb01dd44110582f997115b50e742François Gaffie void setFailureOnFailedSettingsLoad(bool bFail); 799368eea42a1afb01dd44110582f997115b50e742François Gaffie using CParameterMgrPlatformConnector::setFailureOnFailedSettingsLoad; 80faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner 819368eea42a1afb01dd44110582f997115b50e742François Gaffie /** @deprecated Same as its overload without error handling. 829368eea42a1afb01dd44110582f997115b50e742François Gaffie * @note this deprecated method in not available in the python wrapper. 8336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 8436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner void setValidateSchemasOnStart(bool bValidate); 859368eea42a1afb01dd44110582f997115b50e742François Gaffie using CParameterMgrPlatformConnector::setValidateSchemasOnStart; 8636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 8736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner //////////// Tuning ///////////// 8836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // Tuning mode 899368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setTuningMode(bool bOn, std::string &strError); 9036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner bool isTuningModeOn() const; 9136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 9236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // Current value space for user set/get value interpretation 9336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner void setValueSpace(bool bIsRaw); 9436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner bool isValueSpaceRaw() const; 9536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 9636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // Current Output Raw Format for user get value interpretation 9736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner void setOutputRawFormat(bool bIsHex); 9836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner bool isOutputRawFormatHex() const; 9936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // Automatic hardware synchronization control (during tuning session) 1009368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setAutoSync(bool bAutoSyncOn, std::string &strError); 10136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner bool isAutoSyncOn() const; 1029368eea42a1afb01dd44110582f997115b50e742François Gaffie bool sync(std::string &strError); 10336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 10436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // User set/get parameters 1059368eea42a1afb01dd44110582f997115b50e742François Gaffie bool accessParameterValue(const std::string &strPath, std::string &strValue, bool bSet, 1069368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1079368eea42a1afb01dd44110582f997115b50e742François Gaffie bool accessConfigurationValue(const std::string &strDomain, const std::string &strConfiguration, 1089368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strPath, std::string &strValue, bool bSet, 1099368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 11036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 11136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner /** 11236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Returns the element mapping corresponding to the path given in parameter. 11336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 11436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] strPath Path of an element 11536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[out] strValue A sting containing the mapping 11636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 11736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @return true if a mapping was found for this element 11836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 1199368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getParameterMapping(const std::string &strPath, std::string &strValue) const; 12036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner ////////// Configuration/Domains handling ////////////// 12136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // Creation/Deletion 1229368eea42a1afb01dd44110582f997115b50e742François Gaffie bool createDomain(const std::string &strName, std::string &strError); 1239368eea42a1afb01dd44110582f997115b50e742François Gaffie bool deleteDomain(const std::string &strName, std::string &strError); 1249368eea42a1afb01dd44110582f997115b50e742François Gaffie bool renameDomain(const std::string &strName, const std::string &strNewName, 1259368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1269368eea42a1afb01dd44110582f997115b50e742François Gaffie bool deleteAllDomains(std::string &strError); 1279368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setSequenceAwareness(const std::string &strName, bool bSequenceAware, 1289368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 1299368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getSequenceAwareness(const std::string &strName, bool &bSequenceAware, 1309368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 1319368eea42a1afb01dd44110582f997115b50e742François Gaffie bool createConfiguration(const std::string &strDomain, const std::string &strConfiguration, 1329368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1339368eea42a1afb01dd44110582f997115b50e742François Gaffie bool deleteConfiguration(const std::string &strDomain, const std::string &strConfiguration, 1349368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1359368eea42a1afb01dd44110582f997115b50e742François Gaffie bool renameConfiguration(const std::string &strDomain, const std::string &strConfiguration, 1369368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strNewConfiguration, std::string &strError); 1379368eea42a1afb01dd44110582f997115b50e742François Gaffie 1389368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Restore a configuration 1399368eea42a1afb01dd44110582f997115b50e742François Gaffie * 1409368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] strDomain the domain name 1419368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] strConfiguration the configuration name 1429368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] errors, errors encountered during restoration 1439368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true if success false otherwise 1449368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 1459368eea42a1afb01dd44110582f997115b50e742François Gaffie bool restoreConfiguration(const std::string &strDomain, const std::string &strConfiguration, 1469368eea42a1afb01dd44110582f997115b50e742François Gaffie Results &errors); 14736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 1489368eea42a1afb01dd44110582f997115b50e742François Gaffie bool saveConfiguration(const std::string &strDomain, const std::string &strConfiguration, 1499368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 15036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 15136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // Configurable element - domain association 1529368eea42a1afb01dd44110582f997115b50e742François Gaffie bool addConfigurableElementToDomain(const std::string &strDomain, 1539368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strConfigurableElementPath, 1549368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1559368eea42a1afb01dd44110582f997115b50e742François Gaffie bool removeConfigurableElementFromDomain(const std::string &strDomain, 1569368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strConfigurableElementPath, 1579368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1589368eea42a1afb01dd44110582f997115b50e742François Gaffie bool split(const std::string &strDomain, const std::string &strConfigurableElementPath, 1599368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1609368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setElementSequence(const std::string &strDomain, const std::string &strConfiguration, 1619368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::vector<std::string> &astrNewElementSequence, 1629368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 1639368eea42a1afb01dd44110582f997115b50e742François Gaffie 1649368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setApplicationRule(const std::string &strDomain, const std::string &strConfiguration, 1659368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strApplicationRule, std::string &strError); 1669368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getApplicationRule(const std::string &strDomain, const std::string &strConfiguration, 1679368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 1689368eea42a1afb01dd44110582f997115b50e742François Gaffie bool clearApplicationRule(const std::string &strDomain, const std::string &strConfiguration, 1699368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 17036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 17136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner /** 17236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Method that imports Configurable Domains from an Xml source. 17336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 17436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] strXmlSource a string containing an xml description or a path to an xml file 17536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] bWithSettings a boolean that determines if the settings should be used in the 17636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * xml description 17736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] bFromFile a boolean that determines if the source is an xml description in 17836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * strXmlSource or contained in a file. In that case strXmlSource is just the file path. 17936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[out] strError is used as the error output 18036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 18136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @return false if any error occures 18236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 1839368eea42a1afb01dd44110582f997115b50e742François Gaffie bool importDomainsXml(const std::string &strXmlSource, bool bWithSettings, bool bFromFile, 1849368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 18536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner /** 18636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Method that imports a single Configurable Domain from an Xml source. 18736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 188a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] xmlSource a string containing an xml description or a path to an xml file 189a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] overwrite when importing an existing domain, allow overwriting or return an 190a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * error 191a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings a boolean that determines if the settings should be used in the 19236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * xml description 193a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] fromFile a boolean that determines if the source is an xml description in 19436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * strXmlSource or contained in a file. In that case strXmlSource is just the file path. 195a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg is used as the error output 196a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 197a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @return false if any error occurs 198a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 1999368eea42a1afb01dd44110582f997115b50e742François Gaffie bool importSingleDomainXml(const std::string &xmlSource, bool overwrite, bool withSettings, 2009368eea42a1afb01dd44110582f997115b50e742François Gaffie bool fromFile, std::string &errorMsg); 201a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** 202a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Method that imports a single Configurable Domain from an string 203a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * describing an Xml source. 204a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 205a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @deprecated use the other versions of importSingleDomainXml instead 206a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 207a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] strXmlSource a string containing an xml description 208a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] bOverwrite when importing an existing domain, allow overwriting or return an 209a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * error 21036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[out] strError is used as the error output 21136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 21236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @return false if any error occurs 21336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 2149368eea42a1afb01dd44110582f997115b50e742François Gaffie bool importSingleDomainXml(const std::string &strXmlSource, bool bOverwrite, 2159368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 21636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 21736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner /** 21836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Method that exports Configurable Domains to an Xml destination. 21936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 22036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in,out] strXmlDest a string containing an xml description or a path to an xml file 22136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] bWithSettings a boolean that determines if the settings should be used in the 22236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * xml description 22336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] bToFile a boolean that determines if the destination is an xml description in 22436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * strXmlDest or contained in a file. In that case strXmlDest is just the file path. 22536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[out] strError is used as the error output 22636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 22736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @return false if any error occures, true otherwise. 22836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 2299368eea42a1afb01dd44110582f997115b50e742François Gaffie bool exportDomainsXml(std::string &strXmlDest, bool bWithSettings, bool bToFile, 2309368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError) const; 23136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 23236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner /** 23336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * Method that exports a given Configurable Domain to an Xml destination. 23436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 23536f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in,out] strXmlDest a string containing an xml description or a path to an xml file 23636f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] strDomainName the name of the domain to be exported 23736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] bWithSettings a boolean that determines if the settings should be used in the 23836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * xml description 23936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[in] bToFile a boolean that determines if the destination is an xml description in 24036f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * strXmlDest or contained in a file. In that case strXmlDest is just the file path. 24136f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @param[out] strError is used as the error output 24236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * 24336f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner * @return false if any error occurs, true otherwise. 24436f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner */ 2459368eea42a1afb01dd44110582f997115b50e742François Gaffie bool exportSingleDomainXml(std::string &strXmlDest, const std::string &strDomainName, 2469368eea42a1afb01dd44110582f997115b50e742François Gaffie bool bWithSettings, bool bToFile, std::string &strError) const; 24736f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner 24836f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagnerprivate: 24936f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner // disallow copying because this class manages raw pointers' lifecycle 2509368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgrFullConnector(const CParameterMgrFullConnector &); 2519368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgrFullConnector &operator=(const CParameterMgrFullConnector &); 25236f40a0b7eee0a6d8b6ca54fdfb1b9043845a555David Wagner}; 253