1b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner/* 29368eea42a1afb01dd44110582f997115b50e742François Gaffie * Copyright (c) 2011-2016, Intel Corporation 3b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * All rights reserved. 4b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 5b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * Redistribution and use in source and binary forms, with or without modification, 6b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * are permitted provided that the following conditions are met: 7b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 8b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 1. Redistributions of source code must retain the above copyright notice, this 9b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * list of conditions and the following disclaimer. 10b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 11b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 2. Redistributions in binary form must reproduce the above copyright notice, 12b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * this list of conditions and the following disclaimer in the documentation and/or 13b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * other materials provided with the distribution. 14b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 15b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 3. Neither the name of the copyright holder nor the names of its contributors 16b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * may be used to endorse or promote products derived from this software without 17b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * specific prior written permission. 18b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * 19b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28b76c9d6de717a9a1cfd94e7a8eca7ee4a2035cd7David Wagner * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2968a912857707864bbaaff9808717813105072a6ePatrick Benavoli */ 3068a912857707864bbaaff9808717813105072a6ePatrick Benavoli#pragma once 3168a912857707864bbaaff9808717813105072a6ePatrick Benavoli 329368eea42a1afb01dd44110582f997115b50e742François Gaffie#include <mutex> 33ace81f873b910493ab884dc5a6a38ba6ec3d56d3Kevin Rocard#include <map> 34ace81f873b910493ab884dc5a6a38ba6ec3d56d3Kevin Rocard#include <vector> 3563499d4763e42d76bfd39b79871f611381d2d164Patrick Benavoli#include "RemoteCommandHandlerTemplate.h" 3668a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "PathNavigator.h" 3768a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "SelectionCriterionType.h" 3868a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "SelectionCriterion.h" 3968a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "Element.h" 40326a31df0dd401283de6170ed09bcf605f61ef7dGeorges-Henri Baron#include "XmlDocSink.h" 41326a31df0dd401283de6170ed09bcf605f61ef7dGeorges-Henri Baron#include "XmlDocSource.h" 42a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi#include "XmlDomainExportContext.h" 439368eea42a1afb01dd44110582f997115b50e742François Gaffie#include "Results.h" 449368eea42a1afb01dd44110582f997115b50e742François Gaffie#include "ElementHandle.h" 459368eea42a1afb01dd44110582f997115b50e742François Gaffie#include <log/LogWrapper.h> 469368eea42a1afb01dd44110582f997115b50e742François Gaffie#include <log/Context.h> 4768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 48a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi#include <istream> 499368eea42a1afb01dd44110582f997115b50e742François Gaffie#include <memory> 509368eea42a1afb01dd44110582f997115b50e742François Gaffie#include <ostream> 519368eea42a1afb01dd44110582f997115b50e742François Gaffie#include <string> 52592ae56e6f8bc22c57224eb0528dd80caffa70dePatrick Benavoli 5368a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CElementLibrarySet; 5468a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CSubsystemLibrary; 5568a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CSystemClass; 5668a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CSelectionCriteria; 5768a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CParameterFrameworkConfiguration; 5868a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CParameterBlackboard; 5968a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CConfigurableDomains; 6068a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass IRemoteProcessorServerInterface; 61065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoliclass CParameterHandle; 62a4ec15d5d5e84fbee3faa46a66e7b1eb90816ce2Guillaume Denneulinclass CSubsystemPlugins; 63e42dacdeaf82d63000be61c6f1583a2ab08e0a98Frédéric Boisnardclass CParameterAccessContext; 646cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnardclass CConfigurableElement; 6568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 6663499d4763e42d76bfd39b79871f611381d2d164Patrick Benavoliclass CParameterMgr : private CElement 6768a912857707864bbaaff9808717813105072a6ePatrick Benavoli{ 689368eea42a1afb01dd44110582f997115b50e742François Gaffie enum ChildElement 699368eea42a1afb01dd44110582f997115b50e742François Gaffie { 7068a912857707864bbaaff9808717813105072a6ePatrick Benavoli EFrameworkConfiguration, 7168a912857707864bbaaff9808717813105072a6ePatrick Benavoli ESelectionCriteria, 7268a912857707864bbaaff9808717813105072a6ePatrick Benavoli ESystemClass, 7368a912857707864bbaaff9808717813105072a6ePatrick Benavoli EConfigurableDomains 7468a912857707864bbaaff9808717813105072a6ePatrick Benavoli }; 759368eea42a1afb01dd44110582f997115b50e742François Gaffie enum ElementLibrary 769368eea42a1afb01dd44110582f997115b50e742François Gaffie { 7768a912857707864bbaaff9808717813105072a6ePatrick Benavoli EFrameworkConfigurationLibrary, 7868a912857707864bbaaff9808717813105072a6ePatrick Benavoli EParameterCreationLibrary, 7968a912857707864bbaaff9808717813105072a6ePatrick Benavoli EParameterConfigurationLibrary 8068a912857707864bbaaff9808717813105072a6ePatrick Benavoli }; 8168a912857707864bbaaff9808717813105072a6ePatrick Benavoli 82065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoli // Parameter handle friendship 839368eea42a1afb01dd44110582f997115b50e742François Gaffie friend class ElementHandle; 8468a912857707864bbaaff9808717813105072a6ePatrick Benavoli 859368eea42a1afb01dd44110582f997115b50e742François Gaffiepublic: 8668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Construction 879368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgr(const std::string &strConfigurationFilePath, core::log::ILogger &logger); 8868a912857707864bbaaff9808717813105072a6ePatrick Benavoli virtual ~CParameterMgr(); 8968a912857707864bbaaff9808717813105072a6ePatrick Benavoli 90ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard /** Load plugins, structures and settings from the config file given. 91ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * 92d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve * @param[out] strError is a std::string describing the error if an error occurred 93ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * undefined otherwise. 94ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * 95ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * @return true if no error occurred, false otherwise. 96ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard */ 979368eea42a1afb01dd44110582f997115b50e742François Gaffie bool load(std::string &strError); 989368eea42a1afb01dd44110582f997115b50e742François Gaffie 999368eea42a1afb01dd44110582f997115b50e742François Gaffie // Remote command parsers 1009368eea42a1afb01dd44110582f997115b50e742François Gaffie using CommandHandler = std::unique_ptr<TRemoteCommandHandlerTemplate<CParameterMgr>>; 1019368eea42a1afb01dd44110582f997115b50e742François Gaffie 1029368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Create and return a command handler for this ParameterMgr instance 1039368eea42a1afb01dd44110582f997115b50e742François Gaffie * 1049368eea42a1afb01dd44110582f997115b50e742François Gaffie * @returns a Command Handler 1059368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 1069368eea42a1afb01dd44110582f997115b50e742François Gaffie CommandHandler createCommandHandler(); 10768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 10868a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Selection Criteria 1099368eea42a1afb01dd44110582f997115b50e742François Gaffie CSelectionCriterionType *createSelectionCriterionType(bool bIsInclusive); 1109368eea42a1afb01dd44110582f997115b50e742François Gaffie CSelectionCriterion *createSelectionCriterion( 1119368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strName, const CSelectionCriterionType *pSelectionCriterionType); 112b71ccf75a1b2c718543783b277bb9c104c97e490Patrick Benavoli // Selection criterion retrieval 1139368eea42a1afb01dd44110582f997115b50e742François Gaffie CSelectionCriterion *getSelectionCriterion(const std::string &strName); 114b71ccf75a1b2c718543783b277bb9c104c97e490Patrick Benavoli 115b71ccf75a1b2c718543783b277bb9c104c97e490Patrick Benavoli // Configuration application 116ace81f873b910493ab884dc5a6a38ba6ec3d56d3Kevin Rocard void applyConfigurations(); 11768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 1189368eea42a1afb01dd44110582f997115b50e742François Gaffie /** const version of getConfigurableElement */ 1199368eea42a1afb01dd44110582f997115b50e742François Gaffie const CConfigurableElement *getConfigurableElement(const std::string &strPath, 1209368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError) const; 1219368eea42a1afb01dd44110582f997115b50e742François Gaffie 1229368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Returns the CConfigurableElement corresponding to the path given in argument. 1236cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * 124d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve * @param[in] strPath A std::string representing a path to an element. 1256cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * @param[out] strError Error message 1266cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * 1276cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * @return A const pointer to the corresponding CConfigurableElement. 1286cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * On error, NULL is returned and the error is explained in strError. 1296cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard */ 1309368eea42a1afb01dd44110582f997115b50e742François Gaffie CConfigurableElement *getConfigurableElement(const std::string &strPath, std::string &strError); 1314bed9212041d94d52e55e624bd081fcbf01ee04ePatrick Benavoli // Dynamic parameter handling 1329368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterHandle *createParameterHandle(const std::string &strPath, std::string &strError); 1339368eea42a1afb01dd44110582f997115b50e742François Gaffie 1349368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Creates a handle to a configurable element. 1359368eea42a1afb01dd44110582f997115b50e742François Gaffie * 1369368eea42a1afb01dd44110582f997115b50e742François Gaffie * The returned object is owned by the client who is responsible to delete it. 1379368eea42a1afb01dd44110582f997115b50e742François Gaffie * 1389368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] path A string representing a path to a configurable element. 1399368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] error On error: an human readable error message 1409368eea42a1afb01dd44110582f997115b50e742François Gaffie * On success: undefined 1419368eea42a1afb01dd44110582f997115b50e742François Gaffie * 1429368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return An element handle on success 1439368eea42a1afb01dd44110582f997115b50e742François Gaffie * nullptr on error 1449368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 1459368eea42a1afb01dd44110582f997115b50e742François Gaffie ElementHandle *createElementHandle(const std::string &path, std::string &error); 1464bed9212041d94d52e55e624bd081fcbf01ee04ePatrick Benavoli 147962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner /** Is the remote interface forcefully disabled ? 148962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner */ 149962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner bool getForceNoRemoteInterface() const; 150962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner 151962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner /** 152962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * Forcefully disable the remote interface or cancel this policy 153962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * 154962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * @param[in] bForceNoRemoteInterface disable the remote interface if true. 155962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner */ 156962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner void setForceNoRemoteInterface(bool bForceNoRemoteInterface); 157962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner 158ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard /** Should start fail in case of missing subsystems. 159ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * 160d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * @param[in] bFail: If set to true, parameterMgr start will fail on missing subsystems. 161d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * If set to false, missing subsystems will fallback on virtual subsystem. 162ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard */ 163ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard void setFailureOnMissingSubsystem(bool bFail); 164ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard 165ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard /** Would start fail in case of missing subsystems. 166ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * 167ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * @return true if the subsystem will fail on missing subsystem, false otherwise. 168ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard */ 169ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard bool getFailureOnMissingSubsystem() const; 170ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard 171d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard /** Should start fail in failed settings load. 172d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * 173d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * @param[in] bFail: If set to true, parameterMgr start will fail on failed settings load. 174d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * If set to false, failed settings load will be ignored. 175d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard */ 176d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard void setFailureOnFailedSettingsLoad(bool bFail); 177d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard /** Would start fail in case of failed settings load. 178d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * 179d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * @return failure on failed settings load policy state. 180d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard */ 1819368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getFailureOnFailedSettingsLoad() const; 182d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard 1839368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Get the XML Schemas URI 184faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner * 1859368eea42a1afb01dd44110582f997115b50e742François Gaffie * @returns the XML Schemas URI 186faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner */ 1879368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &getSchemaUri() const; 188faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner 1899368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Override the XML Schemas URI 190faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner * 1919368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] schemaUri XML Schemas URI 192faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner */ 1939368eea42a1afb01dd44110582f997115b50e742François Gaffie void setSchemaUri(const std::string &schemaUri); 194faa623c40bcfba17f222b738c036cd8fdcdd3a4dDavid Wagner 195cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek /** Should .xml files be validated on start ? 196cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * 197cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * @param[in] bValidate: 198cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * If set to true, parameterMgr will report an error 199cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * when being unable to validate .xml files 200cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * If set to false, no .xml/xsd validation will happen 201cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * (default behaviour) 202cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * 203cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * @return false if unable to set, true otherwise. 204cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek */ 205cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek void setValidateSchemasOnStart(bool bValidate); 206cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek 207cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek /** Would .xml files be validated on start? 208cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * 209cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * @return areSchemasValidated 210cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek */ 211cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek bool getValidateSchemasOnStart() const; 212cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek 21368a912857707864bbaaff9808717813105072a6ePatrick Benavoli //////////// Tuning ///////////// 2149368eea42a1afb01dd44110582f997115b50e742François Gaffie /** 2159368eea42a1afb01dd44110582f997115b50e742François Gaffie * Activate / deactivate the tuning mode. 2169368eea42a1afb01dd44110582f997115b50e742François Gaffie * 2179368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] bOn true if tuning mode activation is requested, false for desactivation 2189368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] strError human readable error 2199368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true if request is successful, false if the Parameter Manager is already in the mode 2209368eea42a1afb01dd44110582f997115b50e742François Gaffie * requested or in case of error. 2219368eea42a1afb01dd44110582f997115b50e742François Gaffie * If false, strError is set with the associated human readable error. 2229368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 2239368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setTuningMode(bool bOn, std::string &strError); 22468a912857707864bbaaff9808717813105072a6ePatrick Benavoli bool tuningModeOn() const; 22568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 22668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Current value space for user set/get value interpretation 22768a912857707864bbaaff9808717813105072a6ePatrick Benavoli void setValueSpace(bool bIsRaw); 22868a912857707864bbaaff9808717813105072a6ePatrick Benavoli bool valueSpaceIsRaw(); 22968a912857707864bbaaff9808717813105072a6ePatrick Benavoli 2306ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli // Current Output Raw Format for user get value interpretation 2316ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli void setOutputRawFormat(bool bIsHex); 2326ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli bool outputRawFormatIsHex(); 2336ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli 23468a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Automatic hardware synchronization control (during tuning session) 2359368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setAutoSync(bool bAutoSyncOn, std::string &strError); 23668a912857707864bbaaff9808717813105072a6ePatrick Benavoli bool autoSyncOn() const; 2379368eea42a1afb01dd44110582f997115b50e742François Gaffie bool sync(std::string &strError); 23868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 23968a912857707864bbaaff9808717813105072a6ePatrick Benavoli // User set/get parameters 2409368eea42a1afb01dd44110582f997115b50e742François Gaffie bool accessParameterValue(const std::string &strPath, std::string &strValue, bool bSet, 2419368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2426cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard /** 2436cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * Returns the element mapping corresponding to the path given in parameter. 2446cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * 2456cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * @param[in] strPath Path of an element 2466cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * @param[out] strValue A sting containing the mapping 2476cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * 2486cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard * @return true if a mapping was found for this element 2496cae0ecf49ec7815aa59a4f4a0ec99976ca38032Frederic Boisnard */ 2509368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getParameterMapping(const std::string &strPath, std::string &strValue) const; 2519368eea42a1afb01dd44110582f997115b50e742François Gaffie bool accessConfigurationValue(const std::string &strDomain, const std::string &stConfiguration, 2529368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strPath, std::string &strValue, bool bSet, 2539368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 25468a912857707864bbaaff9808717813105072a6ePatrick Benavoli 25568a912857707864bbaaff9808717813105072a6ePatrick Benavoli ////////// Configuration/Domains handling ////////////// 25668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Creation/Deletion 2579368eea42a1afb01dd44110582f997115b50e742François Gaffie bool createDomain(const std::string &strName, std::string &strError); 2589368eea42a1afb01dd44110582f997115b50e742François Gaffie bool renameDomain(const std::string &strName, const std::string &strNewName, 2599368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2609368eea42a1afb01dd44110582f997115b50e742François Gaffie bool deleteDomain(const std::string &strName, std::string &strError); 2619368eea42a1afb01dd44110582f997115b50e742François Gaffie bool deleteAllDomains(std::string &strError); 2629368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setSequenceAwareness(const std::string &strName, bool bSequenceAware, 2639368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 2649368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getSequenceAwareness(const std::string &strName, bool &bSequenceAware, 2659368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 2669368eea42a1afb01dd44110582f997115b50e742François Gaffie bool createConfiguration(const std::string &strDomain, const std::string &strConfiguration, 2679368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2689368eea42a1afb01dd44110582f997115b50e742François Gaffie bool deleteConfiguration(const std::string &strDomain, const std::string &strConfiguration, 2699368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2709368eea42a1afb01dd44110582f997115b50e742François Gaffie bool renameConfiguration(const std::string &strDomain, const std::string &strConfiguration, 2719368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strNewConfiguration, std::string &strError); 2729368eea42a1afb01dd44110582f997115b50e742François Gaffie 2739368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Restore a configuration 2749368eea42a1afb01dd44110582f997115b50e742François Gaffie * 2759368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] strDomain the domain name 2769368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] strConfiguration the configuration name 2779368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] errors errors encountered during restoration 2789368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true if success false otherwise 2799368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 2809368eea42a1afb01dd44110582f997115b50e742François Gaffie bool restoreConfiguration(const std::string &strDomain, const std::string &strConfiguration, 2819368eea42a1afb01dd44110582f997115b50e742François Gaffie core::Results &errors); 2829368eea42a1afb01dd44110582f997115b50e742François Gaffie 2839368eea42a1afb01dd44110582f997115b50e742François Gaffie bool saveConfiguration(const std::string &strDomain, const std::string &strConfiguration, 2849368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 28568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 28668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Configurable element - domain association 2879368eea42a1afb01dd44110582f997115b50e742François Gaffie bool addConfigurableElementToDomain(const std::string &strDomain, 2889368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strConfigurableElementPath, 2899368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2909368eea42a1afb01dd44110582f997115b50e742François Gaffie bool removeConfigurableElementFromDomain(const std::string &strDomain, 2919368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strConfigurableElementPath, 2929368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2939368eea42a1afb01dd44110582f997115b50e742François Gaffie bool split(const std::string &strDomain, const std::string &strConfigurableElementPath, 2949368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2959368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setElementSequence(const std::string &strDomain, const std::string &strConfiguration, 2969368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::vector<std::string> &astrNewElementSequence, 2979368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 2989368eea42a1afb01dd44110582f997115b50e742François Gaffie 2999368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getApplicationRule(const std::string &strDomain, const std::string &strConfiguration, 3009368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 3019368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setApplicationRule(const std::string &strDomain, const std::string &strConfiguration, 3029368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strApplicationRule, std::string &strError); 3039368eea42a1afb01dd44110582f997115b50e742François Gaffie bool clearApplicationRule(const std::string &strDomain, const std::string &strConfiguration, 3049368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strError); 30568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 306cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron /** 307cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * Method that imports Configurable Domains from an Xml source. 308cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 309a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] xmlSource a std::string containing an xml description or a path to an xml file 310a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings a boolean that determines if the settings should be used in the 311cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * xml description 312a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] fromFile a boolean that determines if the source is an xml description in 313a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * xmlSource or contained in a file. In that case xmlSource is just the file path. 314a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg is used as the error output 315cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 316cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @return false if any error occures 317cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron */ 3189368eea42a1afb01dd44110582f997115b50e742François Gaffie bool importDomainsXml(const std::string &xmlSource, bool withSettings, bool fromFile, 3199368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &errorMsg); 320cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron 321fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner /** 322fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner * Method that imports a single Configurable Domain from an Xml source. 323fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner * 324a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] xmlSource a string containing an xml description or a path to an xml file 325a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] overwrite when importing an existing domain, allow 326a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * overwriting or return an error 327a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings a boolean that determines if the settings should be used in the 328fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner * xml description 329a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] fromFile a boolean that determines if the source is an xml description in 330a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * xmlSource or contained in a file. In that case xmlSource is just the file path. 331a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg is used as the error output 332fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner * 333fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner * @return false if any error occurs 334fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner */ 3359368eea42a1afb01dd44110582f997115b50e742François Gaffie bool importSingleDomainXml(const std::string &xmlSource, bool overwrite, bool withSettings, 3369368eea42a1afb01dd44110582f997115b50e742François Gaffie bool fromFile, std::string &errorMsg); 337fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner 338fd21197b84f46ba53ace3a1b9d0c05596815dd51David Wagner /** 339cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * Method that exports Configurable Domains to an Xml destination. 340cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 341a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in,out] xmlDest a string containing an xml description or a path to an xml file 342a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings a boolean that determines if the settings should be used in the 343cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * xml description 344a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] toFile a boolean that determines if the destination is an xml description in 345a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * xmlDest or contained in a file. In that case xmlDest is just the file path. 346a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg is used as the error output 347cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 348ed744eb61b3fced13193fb59f728f26847748179David Wagner * @return false if any error occurs, true otherwise. 349cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron */ 3509368eea42a1afb01dd44110582f997115b50e742François Gaffie bool exportDomainsXml(std::string &xmlDest, bool withSettings, bool toFile, 3519368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &errorMsg) const; 35268a912857707864bbaaff9808717813105072a6ePatrick Benavoli 353ed744eb61b3fced13193fb59f728f26847748179David Wagner /** 354ed744eb61b3fced13193fb59f728f26847748179David Wagner * Method that exports a given Configurable Domain to an Xml destination. 355ed744eb61b3fced13193fb59f728f26847748179David Wagner * 356a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in,out] xmlDest a string containing an xml description or a path to an xml file 357a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] domainName the name of the domain to be exported 358a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings a boolean that determines if the settings should be used in the 359ed744eb61b3fced13193fb59f728f26847748179David Wagner * xml description 360a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] toFile a boolean that determines if the destination is an xml description in 361a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * xmlDest or contained in a file. In that case xmlDest is just the file path. 362a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg is used as the error output 363ed744eb61b3fced13193fb59f728f26847748179David Wagner * 364ed744eb61b3fced13193fb59f728f26847748179David Wagner * @return false if any error occurs, true otherwise. 365ed744eb61b3fced13193fb59f728f26847748179David Wagner */ 3669368eea42a1afb01dd44110582f997115b50e742François Gaffie bool exportSingleDomainXml(std::string &xmlDest, const std::string &domainName, 3679368eea42a1afb01dd44110582f997115b50e742François Gaffie bool withSettings, bool toFile, std::string &errorMsg) const; 36868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 369cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron /** 3700548523ab6bbca766dcce4be97a0c50efd529d90Patrick Benavoli * Method that exports an Xml description of the passed element into a string 371cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 3720548523ab6bbca766dcce4be97a0c50efd529d90Patrick Benavoli * @param[in] pXmlSource The source element to export 3730548523ab6bbca766dcce4be97a0c50efd529d90Patrick Benavoli * @param[in] strRootElementType The XML root element name of the exported instance document 3749368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] xmlSerializingContext the context to use for serialization 3759368eea42a1afb01dd44110582f997115b50e742François Gaffie * Is an rvalue as it must be destructed after this function 3769368eea42a1afb01dd44110582f997115b50e742François Gaffie * call to set the error. 3779368eea42a1afb01dd44110582f997115b50e742François Gaffie * Additionally, using it for an other serialization would 3789368eea42a1afb01dd44110582f997115b50e742François Gaffie * override the error. 3799368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] strResult contains the xml description or the error description in case false is 3809368eea42a1afb01dd44110582f997115b50e742François Gaffie * returned 381cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 3829368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true for success, false if any error occurs during the creation of the xml 3839368eea42a1afb01dd44110582f997115b50e742François Gaffie * description (validation or encoding) 384cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron */ 3859368eea42a1afb01dd44110582f997115b50e742François Gaffie bool exportElementToXMLString(const IXmlSource *pXmlSource, 3869368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::string &strRootElementType, 3879368eea42a1afb01dd44110582f997115b50e742François Gaffie CXmlSerializingContext &&xmlSerializingContext, 3889368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult) const; 389326a31df0dd401283de6170ed09bcf605f61ef7dGeorges-Henri Baron 39068a912857707864bbaaff9808717813105072a6ePatrick Benavoli // CElement 391d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve virtual std::string getKind() const; 392ace81f873b910493ab884dc5a6a38ba6ec3d56d3Kevin Rocard 39368a912857707864bbaaff9808717813105072a6ePatrick Benavoliprivate: 3949368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgr(const CParameterMgr &); 3959368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgr &operator=(const CParameterMgr &); 3964ebc0984c7afe9a6f0168169d5141421b4adcc67JhinX Lee 397ff3a60aaaeaa5bf316e0f498306d287710edd98bFrederic Boisnard // Init 3989368eea42a1afb01dd44110582f997115b50e742François Gaffie virtual bool init(std::string &strError); 39968a912857707864bbaaff9808717813105072a6ePatrick Benavoli 40063499d4763e42d76bfd39b79871f611381d2d164Patrick Benavoli // Version 401d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve std::string getVersion() const; 40268a912857707864bbaaff9808717813105072a6ePatrick Benavoli 4039368eea42a1afb01dd44110582f997115b50e742François Gaffie // This using is here for internal reasons: CommandHandler is public and is 4049368eea42a1afb01dd44110582f997115b50e742François Gaffie // a unique_ptr but we want the type that's inside. And for legacy reason 4059368eea42a1afb01dd44110582f997115b50e742François Gaffie // because that's the original name before a rework; this directive avoids 4069368eea42a1afb01dd44110582f997115b50e742François Gaffie // renaming a lot of stuff. 4079368eea42a1afb01dd44110582f997115b50e742François Gaffie using CCommandHandler = CommandHandler::element_type; 4089368eea42a1afb01dd44110582f997115b50e742François Gaffie using RemoteCommandParser = CCommandHandler::CommandStatus (CParameterMgr::*)( 4099368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4109368eea42a1afb01dd44110582f997115b50e742François Gaffie 4119368eea42a1afb01dd44110582f997115b50e742François Gaffie // Parser descriptions 4129368eea42a1afb01dd44110582f997115b50e742François Gaffie struct SRemoteCommandParserItem 4139368eea42a1afb01dd44110582f997115b50e742François Gaffie { 4149368eea42a1afb01dd44110582f997115b50e742François Gaffie const char *_pcCommandName; 4159368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterMgr::RemoteCommandParser _pfnParser; 4169368eea42a1afb01dd44110582f997115b50e742François Gaffie size_t _minArgumentCount; 4179368eea42a1afb01dd44110582f997115b50e742François Gaffie const char *_pcHelp; 4189368eea42a1afb01dd44110582f997115b50e742François Gaffie const char *_pcDescription; 4199368eea42a1afb01dd44110582f997115b50e742François Gaffie }; 4209368eea42a1afb01dd44110582f997115b50e742François Gaffie 42168a912857707864bbaaff9808717813105072a6ePatrick Benavoli ////////////////:: Remote command parsers 422592ae56e6f8bc22c57224eb0528dd80caffa70dePatrick Benavoli /// Version 4239368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus versionCommandProcess(const IRemoteCommand &remoteCommand, 4249368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 42568a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Status 4269368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus statusCommandProcess(const IRemoteCommand &remoteCommand, 4279368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 42868a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Tuning Mode 4299368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setTuningModeCommandProcess(const IRemoteCommand &remoteCommand, 4309368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4319368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getTuningModeCommandProcess(const IRemoteCommand &remoteCommand, 4329368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 43368a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Value Space 4349368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setValueSpaceCommandProcess(const IRemoteCommand &remoteCommand, 4359368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4369368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getValueSpaceCommandProcess(const IRemoteCommand &remoteCommand, 4379368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4386ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli /// Output Raw Format 4399368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setOutputRawFormatCommandProcess( 4409368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4419368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getOutputRawFormatCommandProcess( 4429368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 44368a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Sync 4449368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setAutoSyncCommandProcess(const IRemoteCommand &remoteCommand, 4459368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4469368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getAutoSyncCommandProcess(const IRemoteCommand &remoteCommand, 4479368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4489368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus syncCommandProcess(const IRemoteCommand &remoteCommand, 4499368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4506ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli /// Criteria 4519368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listCriteriaCommandProcess(const IRemoteCommand &remoteCommand, 4529368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 45368a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Domains 4549368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listDomainsCommandProcess(const IRemoteCommand &remoteCommand, 4559368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4569368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus createDomainCommandProcess(const IRemoteCommand &remoteCommand, 4579368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4589368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus deleteDomainCommandProcess(const IRemoteCommand &remoteCommand, 4599368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4609368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus deleteAllDomainsCommandProcess( 4619368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4629368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus renameDomainCommandProcess(const IRemoteCommand &remoteCommand, 4639368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4649368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setSequenceAwarenessCommandProcess( 4659368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4669368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getSequenceAwarenessCommandProcess( 4679368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4689368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listDomainElementsCommandProcess( 4699368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4709368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus addElementCommandProcess(const IRemoteCommand &remoteCommand, 4719368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4729368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus removeElementCommandProcess(const IRemoteCommand &remoteCommand, 4739368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4749368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus splitDomainCommandProcess(const IRemoteCommand &remoteCommand, 4759368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 47668a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Configurations 4779368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listConfigurationsCommandProcess( 4789368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4799368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus dumpDomainsCommandProcess(const IRemoteCommand &remoteCommand, 4809368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4819368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus createConfigurationCommandProcess( 4829368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4839368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus deleteConfigurationCommandProcess( 4849368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4859368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus renameConfigurationCommandProcess( 4869368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4879368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus saveConfigurationCommandProcess( 4889368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4899368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus restoreConfigurationCommandProcess( 4909368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4919368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setElementSequenceCommandProcess( 4929368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4939368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getElementSequenceCommandProcess( 4949368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 4959368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setRuleCommandProcess(const IRemoteCommand &remoteCommand, 4969368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4979368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus clearRuleCommandProcess(const IRemoteCommand &remoteCommand, 4989368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 4999368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getRuleCommandProcess(const IRemoteCommand &remoteCommand, 5009368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 50168a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Elements/Parameters 5029368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listElementsCommandProcess(const IRemoteCommand &remoteCommand, 5039368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5049368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listParametersCommandProcess(const IRemoteCommand &remoteCommand, 5059368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5069368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getElementStructureXMLCommandProcess( 5079368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5089368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getElementBytesCommandProcess( 5099368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5109368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setElementBytesCommandProcess( 5119368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5129368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getElementXMLCommandProcess(const IRemoteCommand &remoteCommand, 5139368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5149368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setElementXMLCommandProcess(const IRemoteCommand &remoteCommand, 5159368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5169368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus dumpElementCommandProcess(const IRemoteCommand &remoteCommand, 5179368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5189368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getElementSizeCommandProcess(const IRemoteCommand &remoteCommand, 5199368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5209368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus showPropertiesCommandProcess(const IRemoteCommand &remoteCommand, 5219368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5229368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getParameterCommandProcess(const IRemoteCommand &remoteCommand, 5239368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5249368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setParameterCommandProcess(const IRemoteCommand &remoteCommand, 5259368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 5269368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus getConfigurationParameterCommandProcess( 5279368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5289368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus setConfigurationParameterCommandProcess( 5299368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5309368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listBelongingDomainsCommandProcess( 5319368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5329368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listAssociatedDomainsCommandProcess( 5339368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5349368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus showMappingCommandProcess(const IRemoteCommand &remoteCommand, 5359368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strResult); 53668a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Browse 5379368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listAssociatedElementsCommandProcess( 5389368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5399368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listConflictingElementsCommandProcess( 5409368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5419368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus listRogueElementsCommandProcess( 5429368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 54368a912857707864bbaaff9808717813105072a6ePatrick Benavoli /// Settings Import/Export 5449368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus exportDomainsXMLCommandProcess( 5459368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5469368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus importDomainsXMLCommandProcess( 5479368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5489368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus exportDomainsWithSettingsXMLCommandProcess( 5499368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 5509368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus importDomainsWithSettingsXMLCommandProcess( 5519368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 552a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** 553a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Command handler method for exportDomainWithSettingsXML command. 554a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 555a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] remoteCommand contains the arguments of the received command. 556a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] result a std::string containing the result of the command 557a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 558a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @return CCommandHandler::ESucceeded if command succeeded or CCommandHandler::EFailed 559a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * in the other case 560a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 5619368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus exportDomainWithSettingsXMLCommandProcess( 5629368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &result); 5639368eea42a1afb01dd44110582f997115b50e742François Gaffie CCommandHandler::CommandStatus importDomainWithSettingsXMLCommandProcess( 5649368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 565cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron 566cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron /** 567a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Command handler method for getDomainsWithSettings command. 568cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 569cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @param[in] remoteCommand contains the arguments of the received command. 570d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve * @param[out] strResult a std::string containing the result of the command 571cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 572cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @return CCommandHandler::ESucceeded if command succeeded or CCommandHandler::EFailed 573cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * in the other case 574cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron */ 575a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CCommandHandler::CommandStatus getDomainsWithSettingsXMLCommandProcess( 5769368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 577cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron 578cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron /** 579a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Command handler method for getDomainWithSettings command. 580ed744eb61b3fced13193fb59f728f26847748179David Wagner * 581ed744eb61b3fced13193fb59f728f26847748179David Wagner * @param[in] remoteCommand contains the arguments of the received command. 582ed744eb61b3fced13193fb59f728f26847748179David Wagner * @param[out] strResult a string containing the result of the command 583ed744eb61b3fced13193fb59f728f26847748179David Wagner * 584ed744eb61b3fced13193fb59f728f26847748179David Wagner * @return CCommandHandler::ESucceeded if command succeeded or CCommandHandler::EFailed 585ed744eb61b3fced13193fb59f728f26847748179David Wagner * in the other case 586ed744eb61b3fced13193fb59f728f26847748179David Wagner */ 587a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CCommandHandler::CommandStatus getDomainWithSettingsXMLCommandProcess( 5889368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 589ed744eb61b3fced13193fb59f728f26847748179David Wagner 590ed744eb61b3fced13193fb59f728f26847748179David Wagner /** 591a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Command handler method for setDomainsWithSettings command. 592cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 593cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @param[in] remoteCommand contains the arguments of the received command. 594d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve * @param[out] strResult a std::string containing the result of the command 595cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 596cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @return CCommandHandler::ESucceeded if command succeeded or CCommandHandler::EFailed 597cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * in the other case 598cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron */ 599a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CCommandHandler::CommandStatus setDomainsWithSettingsXMLCommandProcess( 6009368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 601cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron 602cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron /** 603a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Command handler method for setDomainWithSettings command. 604a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 605a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] remoteCommand contains the arguments of the received command. 606a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] result a std::string containing the result of the command 607a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 608a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @return CCommandHandler::ESucceeded if command succeeded or CCommandHandler::EFailed 609a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * in the other case 610a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 611a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CCommandHandler::CommandStatus setDomainWithSettingsXMLCommandProcess( 6129368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &result); 613a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi 614a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** 615cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * Command handler method for getSystemClass command. 616cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 617cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @param[in] remoteCommand contains the arguments of the received command. 618d9526499d6ab53b7d13d1434f748f6f2161c2e0aSebastien Gonzalve * @param[out] strResult a std::string containing the result of the command 619cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * 620cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * @return CCommandHandler::ESucceeded if command succeeded or CCommandHandler::EFailed 621cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron * in the other case 622cec86c1904a45a7027218adb3d34c8764bdfcc38Georges-Henri Baron */ 623a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CCommandHandler::CommandStatus getSystemClassXMLCommandProcess( 6249368eea42a1afb01dd44110582f997115b50e742François Gaffie const IRemoteCommand &remoteCommand, std::string &strResult); 62568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 62668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Max command usage length, use for formatting 62768a912857707864bbaaff9808717813105072a6ePatrick Benavoli void setMaxCommandUsageLength(); 62868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 62968a912857707864bbaaff9808717813105072a6ePatrick Benavoli // For tuning, check we're in tuning mode 6309368eea42a1afb01dd44110582f997115b50e742François Gaffie bool checkTuningModeOn(std::string &strError) const; 63168a912857707864bbaaff9808717813105072a6ePatrick Benavoli 632065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoli // Blackboard (dynamic parameter handling) 6339368eea42a1afb01dd44110582f997115b50e742François Gaffie std::mutex &getBlackboardMutex(); 634065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoli 635065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoli // Blackboard reference (dynamic parameter handling) 6369368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterBlackboard *getParameterBlackboard(); 637065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoli 6384bed9212041d94d52e55e624bd081fcbf01ee04ePatrick Benavoli // Parameter access 6399368eea42a1afb01dd44110582f997115b50e742François Gaffie bool accessValue(CParameterAccessContext ¶meterAccessContext, const std::string &strPath, 6409368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &strValue, bool bSet, std::string &strError); 6419368eea42a1afb01dd44110582f997115b50e742François Gaffie bool doSetValue(const std::string &strPath, const std::string &strValue, bool bRawValueSpace, 6429368eea42a1afb01dd44110582f997115b50e742François Gaffie bool bDynamicAccess, std::string &strError) const; 6439368eea42a1afb01dd44110582f997115b50e742François Gaffie bool doGetValue(const std::string &strPath, std::string &strValue, bool bRawValueSpace, 6449368eea42a1afb01dd44110582f997115b50e742François Gaffie bool bHexOutputRawFormat, bool bDynamicAccess, std::string &strError) const; 6454bed9212041d94d52e55e624bd081fcbf01ee04ePatrick Benavoli 64668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Framework global configuration loading 6479368eea42a1afb01dd44110582f997115b50e742François Gaffie bool loadFrameworkConfiguration(std::string &strError); 6489368eea42a1afb01dd44110582f997115b50e742François Gaffie 6499368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Load required subsystems 6509368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6519368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] error error description if there is one 6529368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true if succeed false otherwise 6539368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 6549368eea42a1afb01dd44110582f997115b50e742François Gaffie bool loadSubsystems(std::string &error); 65568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 65668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // System class Structure loading 6579368eea42a1afb01dd44110582f997115b50e742François Gaffie bool loadStructure(std::string &strError); 65868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 65968a912857707864bbaaff9808717813105072a6ePatrick Benavoli // System class Structure loading 6609368eea42a1afb01dd44110582f997115b50e742François Gaffie bool loadSettings(std::string &strError); 6619368eea42a1afb01dd44110582f997115b50e742François Gaffie bool loadSettingsFromConfigFile(std::string &strError); 6629368eea42a1afb01dd44110582f997115b50e742François Gaffie 6639368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Get settings from a configurable element in binary format. 6649368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6659368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] element configurable element. 6669368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] settings current element settings (in mainblackboard) in binary format 6679368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6689368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true on success, false on error 6699368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 6709368eea42a1afb01dd44110582f997115b50e742François Gaffie void getSettingsAsBytes(const CConfigurableElement &element, 6719368eea42a1afb01dd44110582f997115b50e742François Gaffie std::vector<uint8_t> &settings) const; 6729368eea42a1afb01dd44110582f997115b50e742François Gaffie 6739368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Assign settings to a configurable element in binary format. 6749368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6759368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] element configurable element. 6769368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] settings the settings as byte array (binary). 6779368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] error error message filled in case of error 6789368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6799368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true in case of success, false oherwise, in which case error is filled with error 6809368eea42a1afb01dd44110582f997115b50e742François Gaffie * message. 6819368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 6829368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setSettingsAsBytes(const CConfigurableElement &element, 6839368eea42a1afb01dd44110582f997115b50e742François Gaffie const std::vector<uint8_t> &settings, std::string &error); 6849368eea42a1afb01dd44110582f997115b50e742François Gaffie 6859368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Assign settings to a configurable element in XML format. 6869368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6879368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] configurableElement The element to set. 6889368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] settings The settings to set. 6899368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] error human readable error message filled in case of error, 6909368eea42a1afb01dd44110582f997115b50e742François Gaffie * undefined in case of success. 6919368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true in case of success, false otherwise 6929368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 6939368eea42a1afb01dd44110582f997115b50e742François Gaffie bool setSettingsAsXML(CConfigurableElement *configurableElement, const std::string &settings, 6949368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &error); 6959368eea42a1afb01dd44110582f997115b50e742François Gaffie 6969368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Get settings from a configurable element in XML format. 6979368eea42a1afb01dd44110582f997115b50e742François Gaffie * 6989368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] configurableElement The element to get settings from. 6999368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[out] result on success: the exported setttings in XML 7009368eea42a1afb01dd44110582f997115b50e742François Gaffie * on error: human readable error message 7019368eea42a1afb01dd44110582f997115b50e742François Gaffie * 7029368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return true in case of success, false otherwise. 7039368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 7049368eea42a1afb01dd44110582f997115b50e742François Gaffie bool getSettingsAsXML(const CConfigurableElement *configurableElement, 7059368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &result) const; 70668a912857707864bbaaff9808717813105072a6ePatrick Benavoli 707a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** Parse an XML stream into an element 708a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 709a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] elementSerializingContext serializing context 710a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] pRootElement the receiving element 711a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] input the input XML stream 7129368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] baseUri the XML input file URI or "" 713a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] eElementLibrary which element library to be used 7149368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] replace Should the element be overridden or modified in place 715a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] strNameAttributeName the name of the element's XML "name" attribute 716a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 717a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @returns true if parsing succeeded, false otherwise 718a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 7199368eea42a1afb01dd44110582f997115b50e742François Gaffie bool xmlParse(CXmlElementSerializingContext &elementSerializingContext, CElement *pRootElement, 7209368eea42a1afb01dd44110582f997115b50e742François Gaffie _xmlDoc *doc, const std::string &baseUri, ElementLibrary eElementLibrary, 7219368eea42a1afb01dd44110582f997115b50e742François Gaffie bool replace = true, const std::string &strNameAttributeName = "Name"); 722a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi 723a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** Wrapper for converting public APIs semantics to internal API 724a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 725a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Public APIs have a string argument that can either contain: 726a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * - a path to an XML file or; 727a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * - an actual XML document. 728a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * They also have a boolean argument specifying which of the two cases it 729a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * is. 730a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 731a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Instead, the internal APIs only take an std::istream argument. This 732a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * method opens the file as a stream if applicable or simply wrap the 733a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * string in a stream. It then passes the stream to the internal methods. 734a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 735a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] xmlSource the XML source (either a path or an actual xml 736a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * document) 737a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] fromFile specifies whether xmlSource is a path or an 738a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * actual XML document 739a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings if false, only import the configurations 740a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * applicability rules; if true, also import their settings 741a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] element the receiving element 742a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] nameAttributeName the name of the element's XML "name" 743a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * attribute 744a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg string used as output for any error message 745a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 746a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @returns true if the import succeeded, false otherwise 747a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 7489368eea42a1afb01dd44110582f997115b50e742François Gaffie bool wrapLegacyXmlImport(const std::string &xmlSource, bool fromFile, bool withSettings, 7499368eea42a1afb01dd44110582f997115b50e742François Gaffie CElement &element, const std::string &nameAttributeName, 7509368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string &errorMsg); 75168a912857707864bbaaff9808717813105072a6ePatrick Benavoli 75270e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner /** 75370e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * Export an element object to an Xml destination. 75470e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * 75570e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * 756a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] output the stream to output the XML to 75770e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * @param[in] xmlSerializingContext the serializing context 75870e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * @param[in] element object to be serialized. 75970e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * 76070e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner * @return false if any error occurs, true otherwise. 76170e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner */ 7629368eea42a1afb01dd44110582f997115b50e742François Gaffie bool serializeElement(std::ostream &output, CXmlSerializingContext &xmlSerializingContext, 7639368eea42a1afb01dd44110582f997115b50e742François Gaffie const CElement &element) const; 76470e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner 765a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** Wrapper for converting public APIs semantics to internal API 766a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 767a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Public APIs have a string argument that can either: 768a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * - contain a path to an XML file or; 769a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * - receive an actual XML document. 770a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * They also have a boolean argument specifying which of the two cases it 771a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * is. 772a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 773a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * Instead, the internal APIs only take an std::ostream argument. This 774a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * method opens the file as a stream if applicable or simply wrap the 775a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * string in a stream. It then passes the stream to the internal methods. 776a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 777a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] xmlDest the XML sink (either a path or any string that 778a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * will be filled) 779a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] toFile specifies whether xmlSource is a path or a 780a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * string that will receive an actual XML document 781a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[in] withSettings if false, only export the configurations 782a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * applicability rules; if true, also export their settings 783a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] element the element to be exported 784a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @param[out] errorMsg string used as output for any error message 785a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 786a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @returns true if the export succeeded, false otherwise 787a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 7889368eea42a1afb01dd44110582f997115b50e742François Gaffie bool wrapLegacyXmlExport(std::string &xmlDest, bool toFile, bool withSettings, 7899368eea42a1afb01dd44110582f997115b50e742François Gaffie const CElement &element, std::string &errorMsg) const; 790a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi 791a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** Wrapper for converting public APIs semantics to internal API 792a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 793a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @see wrapLegacyXmlExport 794a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 7959368eea42a1afb01dd44110582f997115b50e742François Gaffie bool wrapLegacyXmlExportToFile(std::string &xmlDest, const CElement &element, 796a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CXmlDomainExportContext &context) const; 797a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi 798a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi /** Wrapper for converting public APIs semantics to internal API 799a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * 800a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi * @see wrapLegacyXmlExport 801a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi */ 8029368eea42a1afb01dd44110582f997115b50e742François Gaffie bool wrapLegacyXmlExportToString(std::string &xmlDest, const CElement &element, 803a9be2d378b7ad84e679a48efa81f42fb54f85d9aJean-Michel Trivi CXmlDomainExportContext &context) const; 80470e458c1bb62ad39ea9c59339e74e1f7702910eeDavid Wagner 80568a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Framework Configuration 8069368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterFrameworkConfiguration *getFrameworkConfiguration(); 8079368eea42a1afb01dd44110582f997115b50e742François Gaffie const CParameterFrameworkConfiguration *getConstFrameworkConfiguration(); 80868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 80968a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Selection Criteria 8109368eea42a1afb01dd44110582f997115b50e742François Gaffie CSelectionCriteria *getSelectionCriteria(); 8119368eea42a1afb01dd44110582f997115b50e742François Gaffie const CSelectionCriteria *getConstSelectionCriteria(); 81268a912857707864bbaaff9808717813105072a6ePatrick Benavoli 81368a912857707864bbaaff9808717813105072a6ePatrick Benavoli // System Class 8149368eea42a1afb01dd44110582f997115b50e742François Gaffie CSystemClass *getSystemClass(); 8159368eea42a1afb01dd44110582f997115b50e742François Gaffie const CSystemClass *getConstSystemClass() const; 81668a912857707864bbaaff9808717813105072a6ePatrick Benavoli 81768a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Configurable Domains 8189368eea42a1afb01dd44110582f997115b50e742François Gaffie CConfigurableDomains *getConfigurableDomains(); 8199368eea42a1afb01dd44110582f997115b50e742François Gaffie const CConfigurableDomains *getConstConfigurableDomains(); 8209368eea42a1afb01dd44110582f997115b50e742François Gaffie const CConfigurableDomains *getConstConfigurableDomains() const; 82168a912857707864bbaaff9808717813105072a6ePatrick Benavoli 822f2fd15a331fd3b5b63f0dc6f492651330adcedf9Guillaume Denneulin // Apply configurations 823f2fd15a331fd3b5b63f0dc6f492651330adcedf9Guillaume Denneulin void doApplyConfigurations(bool bForce); 824f2fd15a331fd3b5b63f0dc6f492651330adcedf9Guillaume Denneulin 82568a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Dynamic object creation libraries feeding 82668a912857707864bbaaff9808717813105072a6ePatrick Benavoli void feedElementLibraries(); 82768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 82868a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Remote Processor Server connection handling 8299368eea42a1afb01dd44110582f997115b50e742François Gaffie bool isRemoteInterfaceRequired(); 8309368eea42a1afb01dd44110582f997115b50e742François Gaffie bool handleRemoteProcessingInterface(std::string &strError); 8319368eea42a1afb01dd44110582f997115b50e742François Gaffie 8329368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Log the result of a function 8339368eea42a1afb01dd44110582f997115b50e742François Gaffie * 8349368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] isSuccess indicates if the previous function has succeed 8359368eea42a1afb01dd44110582f997115b50e742François Gaffie * @param[in] result function provided result string 8369368eea42a1afb01dd44110582f997115b50e742François Gaffie * @return isSuccess parameter 8379368eea42a1afb01dd44110582f997115b50e742François Gaffie */ 8389368eea42a1afb01dd44110582f997115b50e742François Gaffie bool logResult(bool isSuccess, const std::string &result); 8399368eea42a1afb01dd44110582f997115b50e742François Gaffie 8409368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Info logger call helper */ 8419368eea42a1afb01dd44110582f997115b50e742François Gaffie inline core::log::details::Info info(); 8429368eea42a1afb01dd44110582f997115b50e742François Gaffie 8439368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Warning logger call helper */ 8449368eea42a1afb01dd44110582f997115b50e742François Gaffie inline core::log::details::Warning warning(); 84568a912857707864bbaaff9808717813105072a6ePatrick Benavoli 84668a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Tuning 8479368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bTuningModeIsOn{false}; 84868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 84968a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Value Space 8509368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bValueSpaceIsRaw{false}; 85168a912857707864bbaaff9808717813105072a6ePatrick Benavoli 8526ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli // Output Raw Format 8539368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bOutputRawFormatIsHex{false}; 8546ba361d96bc2581667b3400f87ff89fae6449e1fPatrick Benavoli 85568a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Automatic synchronization to HW during Tuning session 8569368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bAutoSyncOn{true}; 85768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 85868a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Current Parameter Settings 8599368eea42a1afb01dd44110582f997115b50e742François Gaffie CParameterBlackboard *_pMainParameterBlackboard; 86068a912857707864bbaaff9808717813105072a6ePatrick Benavoli 86168a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Dynamic object creation 8629368eea42a1afb01dd44110582f997115b50e742François Gaffie CElementLibrarySet *_pElementLibrarySet; 86368a912857707864bbaaff9808717813105072a6ePatrick Benavoli 86468a912857707864bbaaff9808717813105072a6ePatrick Benavoli // XML parsing, object creation handling 8659368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string _xmlConfigurationUri; 8669368eea42a1afb01dd44110582f997115b50e742François Gaffie std::string _schemaUri; // Place where schemas stand 86768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 86868a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Subsystem plugin location 8699368eea42a1afb01dd44110582f997115b50e742François Gaffie const CSubsystemPlugins *_pSubsystemPlugins{nullptr}; 87063499d4763e42d76bfd39b79871f611381d2d164Patrick Benavoli 87168a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Remote Processor Server 8729368eea42a1afb01dd44110582f997115b50e742François Gaffie IRemoteProcessorServerInterface *_pRemoteProcessorServer{nullptr}; 87368a912857707864bbaaff9808717813105072a6ePatrick Benavoli 87468a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Parser description array 875592ae56e6f8bc22c57224eb0528dd80caffa70dePatrick Benavoli static const SRemoteCommandParserItem gastRemoteCommandParserItems[]; 87668a912857707864bbaaff9808717813105072a6ePatrick Benavoli 87768a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Maximum command usage length 8789368eea42a1afb01dd44110582f997115b50e742François Gaffie size_t _maxCommandUsageLength{0}; 87968a912857707864bbaaff9808717813105072a6ePatrick Benavoli 880065264a93ce9c63b6a5c95e985188ee33ba587d3Patrick Benavoli // Blackboard access mutex 8819368eea42a1afb01dd44110582f997115b50e742François Gaffie std::mutex _blackboardMutex; 88268a912857707864bbaaff9808717813105072a6ePatrick Benavoli 8839368eea42a1afb01dd44110582f997115b50e742François Gaffie /** Application main logger based on the one provided by the client */ 8849368eea42a1afb01dd44110582f997115b50e742François Gaffie mutable core::log::Logger _logger; 885ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard 886962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner /** If set to false, the remote interface won't be started no matter what. 887962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * If set to true - the default - it has no impact on the policy for 888962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner * starting the remote interface. 889962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner */ 8909368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bForceNoRemoteInterface{false}; 891962ff7b523d81249dfc1eb6870b7a6249893e2eaDavid Wagner 892ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard /** If set to true, missing subsystem will abort parameterMgr start. 893ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard * If set to false, missing subsystem will fallback on virtual subsystem. 894ecf9310061f47da0fd9f3d604e8b20f4fcb5749cKevin Rocard */ 8959368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bFailOnMissingSubsystem{true}; 896d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard /** If set to true, unparsable or discording domains will abort parameterMgr start. 897d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * If set to false, unparsable or discording domains 898d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard * will continue the parameterMgr start with no domains. 899d6909ebe19bf6e2817dadea32e06dda9d22bf073Kevin Rocard */ 9009368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bFailOnFailedSettingsLoad{true}; 901cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek 902cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek /** 903cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * If set to true, parameterMgr will report an error 904cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * when being unable to validate .xml files 905cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek * If set to false, no .xml/xsd validation will happen (default behaviour) 906cce85f6b6691e4b1ddb81171e3ca5b5aeb71e6b9Mattijs Korpershoek */ 9079368eea42a1afb01dd44110582f997115b50e742François Gaffie bool _bValidateSchemasOnStart{false}; 90868a912857707864bbaaff9808717813105072a6ePatrick Benavoli}; 909