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