<article class="markdown-body">
Link from APIs to requirements
==============================
# `ParameterMgrPlatformConnector`
This class is the main client interface.
See
<http://01org.github.io/parameter-framework/doc/classCParameterMgrPlatformConnector.html>
for the complete documentation of each API.
## `createSelectionCriterionType` and `createSelectionCriterion`
Implement the **Selection Criterion** creation requirements. See section **5.4**
of the requirements documentation.
## `getSelectionCriterion`
There is no requirement to retreive a criterion by it's name.
## `setLogger`
Implement [req-post-mortem-debug].
Implements a way for the user to provide a log backend.
This is not a requirentment currently.
Maybe it is a miss?
## `start` and `isStarted`
**???**
There is no "two-step-creation" requirement. This is an implementation detail.
## `applyConfigurations`
Deffered application requirement; see [req-multiple-criterion-change-atomicity]
See also the Selection Criterion APIs below.
## `createParameterHandle`
Introspection and direct parameter read/write access;
see [req-introspection] especialy the point about parameter properties.
See also the Parameter Handle APIs below.
## `setForceNoRemoteInterface` and `getForceNoRemoteInterface`
Tuning capability activation control; see section [req-disabling] in [req-tuning].
## `setFailureOnMissingSubsystem` and `getFailureOnMissingSubsystem`
**???**
Currently only used for XML generation. There is no requirement associated.
## `setFailureOnFailedSettingsLoad` and `getFailureOnFailedSettingsLoad`
**???**
Currently only used for XML generaton. There is no requirement associated.
## `setSchemaUri` and `getSchemaUri`; `setValidateSchemasOnStart` and `getValidateSchemasOnStart`
**???**
Currently only used for XML generation. There is no requirement associated.
# `ParameterMgrFullConnector`
This is another client interface that covers the same purposes and APIs than
`ParameterMgrPlatformConnector` and extands them. See this class' description.
Added APIs are described in this chapter.
## `setTuningMode` and `isTuningModeOn`
Tuning capability activation control; see section [req-parameter-overwriting].
It adds another level of flexibility over `setForceNoRemoteInterface`.
The semantic of these two APIs overlap but **neither one fully contains the other**.
**TODO**: fix the semantics.
## `setValueSpace` and `isValueSpaceRaw`; `setOutputRawFormat` and `isOutputRawFormatHex`
Serialization control (FIXME: what about deserialization ?). Seems **UNUSED**.
There is no requirement associated.
## `setAutoSync`, `isAutoSyncOn` and `sync`
Synchronization on client request; see section [req-explicit-sync].
## `accessParameterValue`
Parameter value direct access. **This overlaps with ParameterHandle.**
Implements the same requirement: [req-parameter-overwriting]
## `getParameterMapping`
Part of the Introspection requirements. See [req-introspection] especialy implement
intropsepction of the mapped syncer.
## Tuning APIs
All of the following APIs implement the Tuning requirement; see section [req-tuning]
- `accessConfigurationValue`
- `createDomain`
- `deleteDomain`
- `renameDomain`
- `deleteAllDomains`
- `setSequenceAwareness`
- `getSequenceAwareness`
- `setElementSequence`
- `createConfiguration`
- `deleteConfiguration`
- `renameConfiguration`
- `restoreConfiguration`
- `saveConfiguration`
- `addConfigurableElementToDomain`
- `removeConfigurableElementFromDomain`
- `split`
- `setApplicationRule`
- `getApplicationRule`
- `clearApplicationRule`
## Persistance APIs
### `exportDomainsXml`
Exports the "Domains" (aka "Settings") which is the inference engine's data.
See section [req-serializable].
### `importDomainsXml`
Imports previously-exported data into the inference engine. See [req-deserializable].
### `exportSingleDomainXml`
Exports a given part of the inference engine data. See [Serialization of individual data].
### `importSingleDomainXml`
Imports a partial inference engine data as previously exported. See section
[req-deserialization-of-individual-data].
# `ISelectionCriterionTypeInterface`
Implementation detail of the criterion requirement [req-selection-criterion].
## `addValuePair`
Implementation of [req-criterion-changes].
## `getNumericalValue`
Implementation of [req-criterion-changes].
## `getLiteralValue`
Implementation of [req-criterion-changes].
## `isTypeInclusive`
Get how the criterion possible states were specified,
see [req-state-domain-specification]
## `getFormattedState`
Pretty print criterion state [req-pretty-print]
# `ISelectionCriterionInterface`
## `setCriterionState` and `getCriterionState`
Allow Introspection of a criterion; see [req-introspection].
## `getCriterionName`
Allow Introspection of a criterion; see [req-introspection].
## `getCriterionType`
Allow Introspection of a criterion; see [req-introspection].
# `CParameterHandle`
This class implements the requirements related to direct read/write access to
parameters.
## `isRogue`
Relative to setting rogue parameters; see section [req-introspection].
## `isArray`
Allow Introspection of a parameter metadata; see [req-introspection].
## `getArrayLength`
Allow Introspection of a parameter metadata; see [req-introspection].
## `getPath` and `getKind`
Allow Introspection of a parameter identifier; see [req-introspection].
## Setters and getters
The following APIs allow reading/writing parameters.
Implements [req-introspection] and [req-parameter-overwriting]
- `setAsBoolean`
- `getAsBoolean`
- `setAsBooleanArray`
- `getAsBooleanArray`
-
- `setAsInteger`
- `getAsInteger`
- `setAsIntegerArray`
- `getAsIntegerArray`
- `setAsSignedInteger`
- `getAsSignedInteger`
- `setAsSignedIntegerArray`
- `getAsSignedIntegerArray`
-
- `setAsDouble`
- `getAsDouble`
- `setAsDoubleArray`
- `getAsDoubleArray`
-
- `setAsString`
- `getAsString`
- `setAsStringArray`
- `getAsStringArray`
</article>