summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ParameterMgr: add a method to forcefully disable the remote interfaceDavid Wagner2015-01-287-0/+82
| | | | | | | | | | | | | | | In some setup, users might not want to start the remote interface even if the toplevel configuration file allows it. The parameter-framework client can now override the remote interface starting policy. This was, until now, only dictated by the 'TuningAllowed' attribute in the toplevel configuration file and the presence of the libremote-processor library. This method is forwarded to the connectors and the bindings. Change-Id: Ib6dc272dfc7114125fdafd1a58642cde88847752 Signed-off-by: David Wagner <david.wagner@intel.com>
* domainGenerator.py: pass a logger to the parameter-frameworkDavid Wagner2015-01-281-0/+12
| | | | | | | | Take advantage of the setLogger() method that was newly added to the bindings to allow the parameter-framework to log during XML generation. Change-Id: I71a43fae915756a7986a48a840306d454d071f17 Signed-off-by: David Wagner <david.wagner@intel.com>
* bindings: bind ILogger and setLogger()David Wagner2015-01-284-5/+68
| | | | | | | | | | | | | | | This will allow users of the parameter-framework bindings to set a logger; without it, the parameter-framework wasn't able to log anything. Some SWIG features and workarounds must be activated in order to: - Support nested classes; - Derive bound classes and allow C++ to call back the user-created objects; - Properly handle exceptions that may be raised upon errors happening on the user side. Change-Id: I955152a4658eff3307ad595f175f2624a3acfa8c Signed-off-by: David Wagner <david.wagner@intel.com>
* xmlGenerator: new generator using the python bindingsDavid Wagner2015-01-282-0/+326
| | | | | | | | | | | | | | | | | | | | | | | This new script (domainGenerator.py) uses both the newly-refactored EddParser.py module as well as the new python bindings to generate XML Settings through the parameter-framework interface. This script can take the following data as input: - the toplevel config file (mandatory) - the 'criteria' file (mandatory) - an initial settings file to be amended (optional) - zero, one, or several 'domain' files (each containing a single domain) - zero, one, or several files in the EDD syntax (aka ".pfw" files) Call the script with the "--help" argument for detailed help. It implements its own derived class of PfwBaseTranslator, calling the parameter-framework python bindings. Any error happening within the binding or below (e.g. the pfw core) is collected and forwarded to the user. Change-Id: Id11123e083ed2a487800e737007a99541949a4bb Signed-off-by: David Wagner <david.wagner@intel.com>
* xmlGenerator: modularize hostConfig.py for easier reuseDavid Wagner2015-01-281-11/+11
| | | | | | | | Instead of calling this script from command line, we will need to use it from another python script/module. Change-Id: Ic3b1f55c0a73c4edff005687327cd19570ab7743 Signed-off-by: David Wagner <david.wagner@intel.com>
* xmlGenerator: Refactor PFWScriptGeneratorDavid Wagner2015-01-288-1174/+1190
| | | | | | | | | | | | | | | | | | The existing code is split in two parts: - "EDD"-files parsing; - parameter-framework remote commands generation The first part is mostly kept as-is but the file is renamed to "EddParser.py"; the second part is refactored and an object presenting a "Translator" intreface is passed to the parsed objects in order to generate the remote parameter-framework commands. Later, another class implementing the Translator interface will be implemented using the python bindings. Some dead code is removed in the process. Change-Id: I9725600ce34f36742c7e27ea7aee53892dd799b0 Signed-off-by: David Wagner <david.wagner@intel.com>
* PFWScriptGenerator: remove incomplete and unused XML output supportDavid Wagner2015-01-281-48/+4
| | | | | | | | | | | | This script is used to generate XML files through the parameter-framework's remote interface. A "direct xml output" support was partially implemented to generate the XML output without the involvement of the parameter-framework. It has never been comletely implemented nor used by anyone, so we'd better remove it. Change-Id: I6ad166306585c55884482ed03934da9f3efc70df Signed-off-by: David Wagner <david.wagner@intel.com>
* Introduce Python bindingsDavid Wagner2015-01-287-0/+409
| | | | | | | | | | | | | | | | | | These bindings for the parameter-framework generic connector use "SWIG" to generate: - a C++ file providing a basic bridge between C++ and Python (must be compiled to a shared library named "_PyPfw.so" - the name is important) - a Python module wrapping it inside a Proxy class, re-creating the same classes as the parameter-framework generic connector. See http://www.swig.org for the full SWIG documentation. They are generated and compiled on-the-fly as part of the build process. Change-Id: If7c67f1178dcc9f438cf037246eb77bbd74b689a Signed-off-by: David Wagner <david.wagner@intel.com> Signed-off-by: Sebastien Gonzalve<sebastien.gonzalve@intel.com>
* Add {get,set}SchemaFolderLocation() to the public Pfw APIDavid Wagner2015-01-286-0/+66
| | | | | | | | | | It will allow users to tell the parameter-framework where the Schemas are instead of letting it guess. These methods are also added to both "Platform" and "Full" connectors. Change-Id: I7fe3b2fd2c6dba1d90d36de97e6db7d71b2c686f Signed-off-by: David Wagner <david.wagner@intel.com>
* Merge pull request #37 from dawagner/full-connectorDavid Wagner2015-01-2210-282/+886
|\ | | | | New "ParameterMgr" Connector, as alternative to the ParameterMgrPlatformConnector. This "Full" connector offers all the capabilities of the ParameterMgr.
| * New ParamegerMgr "Full" connectorDavid Wagner2015-01-224-0/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a new connector that implements (almost) all of the parameter-framework capabilities, in contrast to CParameterMgrPlatformConnector which only implements criteria creation, modification, and application and dynamic parameter handling capabilities. It will allow user to programatically do whatever the PFW can do, e.g. create domains and configurations. Change-Id: Ide118aaaae4f84fa7280d2cae470de0c024c0f00 Signed-off-by: David Wagner <david.wagner@intel.com>
| * parameter: sort C++ filenames and remove duplicatesDavid Wagner2015-01-222-185/+112
| | | | | | | | | | | | | | | | | | | | There were duplicates in the CMakeLists.txt; this patch removes them and sorts the filenames so that they are identical in Android.mk and CMakeLists.txt. Please keep the names sorted, using the shell's "sort -u" command. Change-Id: I027676beb4ee19de2341cd65e0e5c077cddb5627 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Make ParameterMgrLogger templateDavid Wagner2015-01-226-29/+24
| | | | | | | | | | | | | | | | This will make it possible to have different kind of ParameterMgr connectors instead of hardcoding ParameterMgrPlatformConnector in ParameterMgrLogger. Change-Id: Ia78d9f56c8cc73321e1956856755a56a3569b517 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: make serializeElement and importDomainFromFile private methodsDavid Wagner2015-01-221-27/+28
| | | | | | | | | | | | | | | | There is no need for these method to be public as they are only used internaly. Change-Id: I172257211f35de26c11aaef499f7c847d55ced0b Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: enforce Tuning Mode on write access of parametersDavid Wagner2015-01-222-6/+7
| | | | | | | | | | | | | | | | | | | | This applies only to setParameter: this commands should only be available in Tuning Mode. This is enforced by moving the tuning mode check from the remote interface to the internal CParameterMgr::accessParameterValue() method. Additionaly, CParameterMgr::accessValue is made private. Change-Id: I189362a768ce1cd9709b6e5d48cd833f7ca56479 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: remove some dead codeDavid Wagner2015-01-222-13/+0
| | | | | | | | | | | | | | logStructureContent() wasn't called by anybody. Change-Id: I152b6f1790a545ab302ca90389c78c43a0bb6056 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: fix some return values typesDavid Wagner2015-01-221-2/+2
| | | | | | | | | | | | | | | | | | Some public methods returned a "CCommandHandler" enum value type, which is intended to be used in the remote tuning methods only. Primitive bools must be used instead. Change-Id: Iac7a565f701c65875b3f1dd0896bf31d7d843d72 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: Add more tuning methods to the C++ public APIDavid Wagner2015-01-222-20/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These methods are: - renameDomain - setSequenceAwareness - getSequenceAwareness - renameConfiguration - setElementSequence - setApplicationRule - getApplicationRule - clearApplicationRule The "remote tuning" methods are also modified to use them instead of directly accessing inner objects and the tuning mode checking is moved to the public C++ method when applicable. Change-Id: I9cdd0abbacb76232cd746878dca9ab619e8b6b58 Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #36 from dawagner/single-domainDavid Wagner2015-01-2219-336/+721
|\ \ | |/ | | Single domain import/export remote commands
| * New command for importing a single domain from a fileDavid Wagner2015-01-226-16/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command is used as follows: importDomainWithSettingsXML <file path> [overwrite] It reads the file given as first argument (path must be absolute) and imports the domain found in it. It does not check whether it overlaps with another domain (same elements in two domains). It does, however, check if there is an existing domain with the same name as the one being imported. If so and if the (optional) second argument is "overwrite", it will first delete the existing domain; if not it will refuse to import the new domain. Change-Id: I7aaa225f2f1a296f52dc8a97f55e1ff70c06d567 Signed-off-by: David Wagner <david.wagner@intel.com>
| * New remote command for exporting a single domainDavid Wagner2015-01-223-23/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command is used as follows: getDomainWithSettingsXML <domain> and outputs the requested domain to the standard output. In that end, the const version of CConfigurableDomains::findConfigurableDomain is made public. This somewhat breaks encapsulation but since the returned domain is const, this has limited impact. Change-Id: I9b854040a5d59913b9b405c8e38d29a3018a6079 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Pass the SystemClass as deserialization context for DomainsDavid Wagner2015-01-223-12/+19
| | | | | | | | | | | | | | | | | | | | This allows diminishing the dependency on the parent element when creating a Domain element from an XML document: the parent was used to get a handle to the system class in order to check the existence of ConfigurableElements included in the Domain. Change-Id: Icba7c3c4db2b9728c0fb7c6840a254de9775f6a4 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Extract and specialize domain import- and export-specific contextsDavid Wagner2015-01-2211-161/+242
| | | | | | | | | | | | | | | | | | | | | | | | Import and Export of ConfigurableDomains have different context needs: e.g. the value representation is only used for export; auto-validation is only meaningful for import whereas the "with settings" context is common to both. We create two new classes, derived from XmlDomainSerializingContext and move most of its content to each class it belongs to. Change-Id: I56589cdb3a8ea417e11d2ed98ccd055d7cdead67 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Schemas: Split ConfigurableDomain from ConfigurableDomainsDavid Wagner2015-01-223-114/+130
| | | | | | | | | | | | | | | | This is done in preparation for future work making it possible to export/import domains in standalone and separate files. Change-Id: I35ae66361d18e2de603cedee6b1701defcc9d357 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Remove const/non-const code duplication in CConfigurableDomainsDavid Wagner2015-01-221-11/+4
| | | | | | | | | | | | | | | | Implement the non-const method of findConfigurableDomain by calling the const version, as described in Effective C++ Item 3. Change-Id: Ib7b58100dc817d02092299923edf2e6c7ce2f117 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Allow more flexibility in overriding CElement::toXmlDavid Wagner2015-01-225-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The toXml method has a default implementation that recursively calls toXml on the children and set their "Name" attribute. With this approach, the toplevel element's name isn't set unless its overrided implementation explicitly does so. A first approach for fixing that is to set the XmlElement's name and recursively call toXml on children (without setting their name because it will be done by their toXml method). However, the "CXmlElement" being created may or may not be the object on which the toXml method is called, in which case the name will be set on the wrong XmlElement. Instead, in CElement::toXml, we set the XmlElement's name and call a new virtual method, childrenToXml which only recursively call toXml on children. This gives full flexibility to elements to choose how they want to serialize themselves and how they want to serialize their children. CConfigurableDomain::toXml is modified to take that change into account. Change-Id: Id12a1023e91cb000e55c242c13643b1db7d46871 Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #28 from krocard/ctest_configDavid Wagner2015-01-223-0/+43
|\ \ | | | | | | Integrate fix point parameter test in cmake
| * | Integrate fix point parameter test in cmakeKevin Rocard2014-12-103-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cmake can manage test with ctest. Running them when make test is run. Unfortunately the only automatic tests the pfw has (fix point parameter test) are not declared in cmake. Add a test target and declare the fix point parameter test in cmake. Thus a simple make test after the make install will run all tests. Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
* | | Merge pull request #30 from krocard/explicit_dependency_on_dlDavid Wagner2015-01-221-1/+2
|\ \ \ | | | | | | | | Link parameter-framework.so with dl
| * | | Link parameter-framework.so with dlKevin Rocard2014-12-051-1/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | The parameter-framework was using dl{open,close,error} but was not requesting to link with dl. This leaded to compilation failure on non implicit dl distributions. Add explict dependency to dl. Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
* | | Merge pull request #35 from 01org/fix-test-platform-boolean-gettersDavid Wagner2015-01-221-2/+1
|\ \ \ | |_|/ |/| | test-platform: fix boolean remote getter commands output
| * | test-platform: fix boolean remote getter commands outputDavid Wagner2015-01-021-2/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Getter commands return a boolean value ("true" or "false") were implemented by a generic method. However, this method returned a "Done" result, which suppresses the normal output and prints "Done" instead. This is fixed by making this method return a "Success" result, which is interpreted as "give the output to the user". In the same time, we remove a useless "cast to void" which is usually a workaround for unused variables. Change-Id: I49115d3b29967fd455ffc0b703dfb4f4d438280e Signed-off-by: David Wagner <david.wagner@intel.com>
* | Release v2.3.0David Wagner2014-12-121-1/+1
|/ | | | | | | It's been a long time we haven't changed this version number. We will start making releases and this one is the first of a series. Signed-off-by: David Wagner <david.wagner@intel.com>
* Merge pull request #26 from 01org/schemas-readme-fixesDavid Wagner2014-11-261-8/+48
|\ | | | | Schemas readme fixes
| * Schemas/Readme: more details for each type of configuration fileDavid Wagner2014-11-251-7/+47
| | | | | | | | | | | | | | The scope of this readme is widened to document the hierarchy of configuration files and details on the content of each of them. Signed-off-by: David Wagner <david.wagner@intel.com>
| * Schemas/Readme: replace 'TuningMode' with 'TuningAllowed'David Wagner2014-11-251-2/+2
|/ | | | | | | There is no such "TuningMode" attribute; it was a mistake and the attribute described in this documentation corresponds to "TuningAllowed". Signed-off-by: David Wagner <david.wagner@intel.com>
* Merge pull request #25 from 01org/fix-fixed-point-testDavid Wagner2014-11-032-708/+715
|\ | | | | Fix fixed point test
| * fixed-point-tests: strip the '_host' suffix on executablesDavid Wagner2014-11-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This only makes sense on the Android build system. However, these tests are broken on Android because libremote-processor is compiled as "libremote-processor_host.so" on Android whereas libparameter will only try to load "libremote-processor.so" anyway. For now, let's ignore the Android build system and only care about how we do it with CMake: CMake builds libremote-processor.so, test-platform and remote-process so let's remove the "_host" suffixes that were added for compatibility with the output of the Android makefiles. Signed-off-by: David Wagner <david.wagner@intel.com>
| * fixed-point-tests: Run the tests for each possible parameter sizeDavid Wagner2014-11-032-706/+713
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot of parameters were duplicated because we had one parameter for each size (8, 16 and 32) and for each integral/fractional combination. However, they were all at the root of the subsystem and a lot overlapped, e.g., q1.2 for 32bits and q1.2 for 16 bits. We fix this by: - Adding a ParameterBlock for each size - Modifying the tests to account for the change in the parameter paths - Run the tests for 8, 16 and 32 bits Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #24 from 01org/fix-android-l-buildDavid Wagner2014-11-032-68/+2
|\ \ | | | | | | Remove libxml2-schemas target since it is now covered by the aosp
| * | Audio: Remove the hack to buid a libxml2 with schemaspafonsoX2014-11-032-68/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | BZ: 218524 The "Schemas" feature is enabled in Android-L, so there is no need for this out-of-tree compilation anymore. So this patch deletes its compilation in parameter-framework project. Change-Id: I111afa3e12fa80c2871bae475d550bc49c4440cc Signed-off-by: pafonsoX <philippex.afonso@intel.com> Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #22 from krocard/Update_.pfw_syntaxDavid Wagner2014-11-031-1/+4
|\ \ | | | | | | Update .pfw gedit syntax grammar
| * | Update .pfw gedit syntax grammarKevin Rocard2014-10-301-1/+4
| | | | | | | | | | | | | | | | | | | | | Add the new Extended Domain Description keywords to gedit syntax grammar. Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
* | | Merge pull request #23 from 01org/clarify-non-accesibble-errorDavid Wagner2014-10-311-1/+1
|\ \ \ | |_|/ |/| | Clarify the "Non accessible element" error
| * | Clarify the "Non accessible element" errorDavid Wagner2014-10-311-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | This error happens, among others, when trying to set an element as if it was a parameter. The error message was not very helpful. Previous error message: Non accessible element New error message: Can't set /A/b/c because it is not a parameter Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #19 from krocard/Remove_useless_log_on_xml_generation_failureDavid Wagner2014-10-241-9/+0
|\ \ | | | | | | Remove flood debug trace on xml generation error
| * | Remove flood debug trace on xml generation errorKevin Rocard2014-10-241-9/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch 0b3ff88 "Add log in case of failure" added system process and network log on failure. It was planed to be used to debug a tricky socket error bug. The bug was since fixed and the traces now only flood build log, making xml generation error root cause spotting a lot harder. Remove extra debug message (netstat and ps invocation) on error. Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
* | Merge pull request #18 from Makohoek/tmp_dir_name_fixDavid Wagner2014-10-241-1/+1
|\ \ | | | | | | hostDomainGenerator: Fix the stripping of the temporary directory name
| * | hostDomainGenerator: Fix the stripping of the temporary directory nameDavid Wagner2014-10-031-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | We didn't properly remove the name of the temporary directory in the generated files which caused two generation from identical sources result in different generated files. We know the full name of the temporary directory so we can simply completly remove it from the generated file. Issue: GMINL-1953 Change-Id: I1f360cea249328d30318a24643b524c87424475e Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #17 from Makohoek/static_analysis_fixDavid Wagner2014-10-241-2/+2
|\ \ | | | | | | Fix a use-after-free issue