Permet le stockage persistant et la gestion des données applicatives via un stockage clé-valeur et de fichiers.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9cb072b2740aProvenanceQuestions ouvertes (1)
traduit du guide allemandGénéré par l'IAgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet le stockage persistant et la gestion des données applicatives via un stockage clé-valeur et de fichiers.
L'espace de noms ara::per fournit des interfaces pour le stockage persistant des données en permettant aux applications adaptatives d'accéder à des zones de stockage basées sur des fichiers et sur des clés-valeurs par le biais d'identifiants d'instance ([SWS_PER_00052], [SWS_PER_00116]). Les applications gèrent les stockages ouverts via des handles partagés, exécutent des mises à jour coordonnées lors de modifications de manifeste et peuvent réparer des données incohérentes via des mécanismes de récupération ([SWS_PER_00333], [SWS_PER_00357]). Alors que les accès au stockage ont lieu de manière concurrente via des handles, les opérations administratives telles que les mises à jour ou les réinitialisations de stockage nécessitent l'absence d'accès concurrents ([SWS_PER_00311]).
Contexte
L'espace de noms ara::per fournit les interfaces du groupe fonctionnel Persistance pour l'AUTOSAR Adaptive Platform. Sa responsabilité première est le stockage durable des données applicatives, persistant en mémoire au-delà des redémarrages système et des cycles de vie des processus. Le module distingue deux paradigmes de stockage fondamentaux : KeyValueStorage pour les paires clé-valeur structurées et FileStorage pour l'accès au stockage basé sur des fichiers. Les applications adaptatives accèdent à ces ressources via des prototypes de ports configurés au moyen de ara::core::InstanceSpecifier ([SWS_PER_00052], [SWS_PER_00116]).
Les partenaires d'interaction majeurs de l'espace de noms sont l'Update and Configuration Management (UCM), qui peut mettre à disposition des configurations cibles (Target Configuration) actualisées pendant l'exécution ([SWS_PER_00576], [SWS_PER_00577]), ainsi que le support de stockage physique sur lequel ara::per garantit la cohérence, la redondance et la sécurité des données ([SWS_PER_00311]).
L'accès aux objets de stockage est régi par des abstractions de handle. L'ouverture d'un stockage via OpenKeyValueStorage ou OpenFileStorage génère un SharedHandle ([SWS_PER_00052], [SWS_PER_00116]). Étant donné que plusieurs threads peuvent accéder simultanément au même stockage, la ressource physique n'est pas obligatoirement fermée lorsqu'un SharedHandle individuel quitte sa portée ; la fermeture n'a lieu que lorsque l'ensemble des instances de SharedHandle qui la référencent sont détruites ([SWS_PER_00052], [SWS_PER_00116]).
Pour les fichiers au sein d'un FileStorage, les états de création et de modification sont suivis en détail. L'énumération FileCreationState indique si un fichier a été créé lors de l'installation (kCreatedDuringInstallation), pendant une mise à jour (kCreatedDuringUpdate), par une réinitialisation (kCreatedDuringReset), à la suite d'une récupération (kCreatedDuringRecovery) ou par l'application elle-même (kCreatedByApplication) ([SWS_PER_00435]). De manière analogue, FileModificationState reflète le moment et l'opération par laquelle un fichier a été modifié pour la dernière fois ([SWS_PER_00436]).
Pour la gestion des états initiaux, l'espace de noms met à disposition des fonctions de réinitialisation : ResetKeyValueStorage ([SWS_PER_00334]) et ResetAllFiles ([SWS_PER_00336]) réinitialisent des stockages individuels aux valeurs initialement définies dans le manifeste. À l'opposé, l'opération globale ResetPersistency ([SWS_PER_00358]) vide intégralement l'ensemble des stockages clé-valeur et de fichiers ; leur recréation s'effectue lors du prochain appel de OpenFileStorage ou OpenKeyValueStorage.
Un flux applicatif typique comprend la vérification des mises à jour de configuration, l'application de migrations de données et l'accès consécutif au stockage :
Avant ou pendant le fonctionnement normal, l'application vérifie au moyen de CheckForManifestUpdate si UCM a installé une nouvelle configuration cible ([SWS_PER_00576]). Si tel est le cas, le nouveau manifeste est lu via ReloadPersistencyManifest ([SWS_PER_00577]). Pendant la phase de vérification consécutive, l'application déclenche UpdatePersistency ([SWS_PER_00357]). Pour piloter des migrations de données spécifiques aux versions, l'application enregistre au préalable via RegisterApplicationDataUpdateCallback une fonction de rappel qui est informée des versions de contrat plus anciennes et exécute les étapes de migration propres à l'application ([SWS_PER_00356]). De plus, les modifications d'éléments peuvent être surveillées au moyen de RegisterDataUpdateIndication ([SWS_PER_00578]). Après l'achèvement de la mise à jour, CleanUpPersistency supprime les sauvegardes obsolètes et les reliquats redondants ([SWS_PER_00567]).
Pour l'accès régulier, l'application ouvre la ressource cible via OpenKeyValueStorage ([SWS_PER_00052]) ou OpenFileStorage ([SWS_PER_00116]). Les accès aux fichiers dans le FileStorage sont régis par des masques de bits de l'énumération OpenMode (par ex. kAtTheBeginning, kAtTheEnd, kTruncate, kAppend), combinés via les opérateurs operator| ([SWS_PER_00144]) et operator|= ([SWS_PER_00434]) ([SWS_PER_00147]). Les positionnements s'effectuent par rapport à Origin (kBeginning, kCurrent, kEnd) ([SWS_PER_00146]). La taille de mémoire actuellement occupée peut être déterminée à l'exécution via GetCurrentKeyValueStorageSize ([SWS_PER_00405]) et GetCurrentFileStorageSize ([SWS_PER_00406]).
Dans l'espace de noms, les erreurs sont signalées de façon standardisée par l'énumération PerErrc ([SWS_PER_00311]) conjointement avec PerErrorDomain ([SWS_PER_00352]) et MakeErrorCode ([SWS_PER_00351]). La classe déclarée PerException devrait servir de type d'exception C++ pour les environnements dans lesquels les erreurs ne sont pas traitées via ara::core::Result, mais par des exceptions (Interprétation). Question Q-263982a4a4dae284 (ouverte)
Les scénarios d'erreur centraux comprennent :
Erreurs de configuration et d'adressage : si le InstanceSpecifier transmis ne correspond à aucune interface de port configurée dans le modèle, l'ouverture échoue avec PerErrc::kStorageNotFound ([SWS_PER_00052], [SWS_PER_00116], [SWS_PER_00311]). Les accès à des fichiers inexistants génèrent PerErrc::kFileNotFound ([SWS_PER_00311]).
Perte d'intégrité et récupération : en cas de détériorations structurelles (PerErrc::kIntegrityCorrupted) ou d'échecs des contrôles de redondance (PerErrc::kValidationFailed), ara::per permet une récupération au mieux (best-effort) via RecoverKeyValueStorage ([SWS_PER_00333]) ou RecoverAllFiles ([SWS_PER_00335]). Grâce à RegisterRecoveryReportCallback ([SWS_PER_00433]), les applications critiques pour la sécurité peuvent consigner automatiquement des mesures correctives sur la base de RecoveryReportKind (par ex. kKeyValueStorageRecovered, kFileRecovered) ([SWS_PER_00432]).
Limites de mémoire et erreurs physiques : si des quotas ou des capacités physiques sont dépassés, PerErrc::kOutOfStorageSpace, PerErrc::kQuotaExceeded ou PerErrc::kTooManyFiles sont signalés ([SWS_PER_00311]). Des erreurs matérielles ou du système de fichiers se traduisent par PerErrc::kPhysicalStorageFailure ([SWS_PER_00311]).
Sécurité et modes d'accès : si des vérifications ou des calculs cryptographiques échouent, le module renvoie PerErrc::kEncryptionFailed ou PerErrc::kAuthenticationFailed ([SWS_PER_00311]). Les tentatives d'écriture sur des zones de stockage protégées en écriture sont rejetées avec PerErrc::kIllegalWriteAccess ([SWS_PER_00311]).
Ce guide repose exclusivement sur la spécification d'AUTOSAR Adaptive R25-11.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b1d1be6225cfProvenanceQuestions ouvertes (1)
traduit du guide allemandGénéré par l'IAgemini-3.8-flash-medium · 2026-10-14
Fournit des mécanismes de persistance clé-valeur et fichiers pour les applications de l'Adaptive Platform.
Le namespace ara::per fournit aux applications adaptatives des mécanismes d'accès persistant structurés sous forme de paires clé-valeur ou de fichiers bruts. Il assure l'ouverture et la gestion du cycle de vie des stockages par le biais de descripteurs partagés conformément à [SWS_PER_00052] et [SWS_PER_00116]. Les applications doivent veiller à libérer tous les descripteurs actifs lors des opérations de maintenance globale et de mise à jour afin d'éviter les erreurs de ressource occupée. Des fonctions de récupération permettent en outre de rétablir les données altérées en cas d'échec des contrôles de redondance.
Contexte
Le namespace ara::per constitue l'interface centrale de la plateforme Adaptive AUTOSAR pour la gestion de la persistance des données. Il met à disposition des applications adaptatives deux modèles de stockage distincts : le stockage par paires clé-valeur via KeyValueStorage et le stockage de fichiers bruts via FileStorage. L'accès à ces deux types de stockage est initié par des fonctions globales d'ouverture, respectivement [SWS_PER_00052] et [SWS_PER_00116], qui retournent des descripteurs partagés SharedHandle. En complément, ara::per interagit étroitement avec le système de mise à jour et de gestion de configuration (UCM) au moyen de routines dédiées à la détection de changements de configuration cible et à la synchronisation des données persistées, telles que [SWS_PER_00576], [SWS_PER_00577] et [SWS_PER_00357].
Diagramme de contexte : Interactions architecturales du namespace ara::per avec les applications, les types de stockage et la gestion de configuration. Sources : [SWS_PER_00052], [SWS_PER_00116], [SWS_PER_00576].
Cycle de vie
L'accès aux espaces de persistance repose sur un modèle de cycle de vie contrôlé par des pointeurs partagés SharedHandle. L'ouverture d'un stockage clé-valeur via [SWS_PER_00052] ou d'un stockage de fichiers via [SWS_PER_00116] instancie ou rattache un descripteur à la ressource physique configurée par son identifiant d'instance. Plusieurs threads peuvent accéder simultanément à un même stockage ; celui-ci demeure actif et ouvert tant qu'au moins un SharedHandle associé reste valide, sa fermeture n'intervenant que lorsque le dernier descripteur sort du champ de visibilité [SWS_PER_00052], [SWS_PER_00116].
Les opérations d'administration globale régissent quant à elles les phases de transition majeures. La fonction [SWS_PER_00357] applique les évolutions de configuration après déploiement, tandis que [SWS_PER_00567] purge les sauvegardes et données obsolètes de l'ensemble des stockages. En cas de réinitialisation complète, [SWS_PER_00358] supprime l'intégralité des contenus pour forcer leur réinstallation lors de la réouverture suivante. Au niveau individuel, [SWS_PER_00334] et [SWS_PER_00336] restaurent un stockage donné dans sa configuration d'origine avec ses données initiales. Concernant la concurrence, alors que les méthodes d'accès aux stockages sont thread-safe, ces opérations de maintenance globale ne sont pas thread-safe et imposent une exclusion mutuelle stricte. Interprétation : La coordination d'accès concurrents entre opérations globales et descripteurs ouverts repose vraisemblablement sur un mécanisme de verrouillage interne propre à l'implémentation. Question Q-263982a4a4dae284 (ouverte)
Chemin d'utilisation
Un chemin d'utilisation typique débute par l'enregistrement de fonctions de rappel destinées à surveiller les évolutions de configuration et de fiabilité. L'application peut configurer [SWS_PER_00356] pour gérer les migrations de schéma basées sur les versions de contrat, [SWS_PER_00578] pour réagir aux modifications effectives d'éléments, ou [SWS_PER_00433] afin de tracer les interventions de redondance rapportées selon [SWS_PER_00432].
L'application ouvre ensuite le stockage ciblé au moyen de [SWS_PER_00052] ou [SWS_PER_00116]. Pour les fichiers, les modes d'ouverture [SWS_PER_00147] (kAtTheBeginning, kAtTheEnd, kTruncate, kAppend) peuvent être combinés à l'aide des opérateurs surchargés operator|[SWS_PER_00144] et operator|=[SWS_PER_00434], le positionnement s'appuyant sur l'énumération [SWS_PER_00146]. L'application peut évaluer l'espace physique consommé via [SWS_PER_00405] ou [SWS_PER_00406]. Si une corruption est constatée, une tentative de réparation au mieux est menée en appelant [SWS_PER_00333] pour les clés ou [SWS_PER_00335] pour les fichiers, permettant également d'analyser l'historique de création [SWS_PER_00435] ou de modification [SWS_PER_00436].
Diagramme de séquence : Séquence d'ouverture, de consultation de taille et de déclenchement de récupération d'un stockage persistant. Sources : [SWS_PER_00052], [SWS_PER_00405], [SWS_PER_00333].
Scénarios d'erreur
Le traitement des erreurs est standardisé par le domaine d'erreur [SWS_PER_00352] et les codes d'erreur de l'énumération PerErrc[SWS_PER_00311], instanciables avec [SWS_PER_00351].
Parmi les défaillances fréquentes, le code kResourceBusy se produit lorsqu'une opération globale de mise à jour ([SWS_PER_00357]), de nettoyage ([SWS_PER_00567]) ou de réinitialisation ([SWS_PER_00358]) est sollicitée alors qu'un descripteur SharedHandle est encore en cours d'utilisation dans un autre thread, ou inversement lorsqu'une ouverture est tentée pendant une opération exclusive [SWS_PER_00052], [SWS_PER_00116]. La non-conformité de l'identifiant de configuration se traduit par kStorageNotFound[SWS_PER_00052]. Enfin, les atteintes à la fiabilité des données déclenchent kIntegrityCorrupted, kValidationFailed, kAuthenticationFailed ou kEncryptionFailed, signalant un échec des mécanismes de protection cryptographique ou de redondance [SWS_PER_00311]. Les contraintes matérielles se manifestent quant à elles par kPhysicalStorageFailure, kOutOfStorageSpace et kQuotaExceeded[SWS_PER_00311].
Ce texte a été généré automatiquement par une intelligence artificielle et vérifié formellement par rapport aux exigences AUTOSAR.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Diagramme de classes
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
Returns the space in bytes currently occupied by a File Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the File Storage is not opened and no other operation on the File Storage takes place at the same time.
Returns the space in bytes currently occupied by a Key-Value Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the Key-Value Storage is not opened and no other operation on the Key-Value Storage takes place at the same time.
Opens a File Storage. OpenFileStorage will fail with kResourceBusy when the File Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. Because multiple threads can access the same File Storage concurrently, the File Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same File Storage went out of scope.
Opens a Key-Value Storage. OpenKeyValueStorage will fail with kResourceBusy when the Key-Value Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. Because multiple threads can access the same Key-Value Storage concurrently, the Key-Value Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same Key-Value Storage went out of scope.
Defines the errors for Persistency. The enumeration values 0 - 255 are reserved for AUTOSAR assigned errors, the stack provider is free to define additional errors starting from 256.
Recovers a File Storage, including all files. RecoverAllFiles recovers a File Storage when the redundancy checks fail. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. This method does a best-effort recovery of all files. After recovery, files might show outdated or initial content, or might be lost.
Recovers a Key-ValueStorage. RecoverKeyValueStorage allows to recover a Key-Value Storage when the redundancy checks fail. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. This method does a best-effort recovery of all key-value pairs. After recovery, keys might show outdated or initial value, or might be lost.
Register a recovery reporting callback with Persistency. This callback can be used in safety-aware Adaptive Applications to detect actions of the Persistency that are related to the correctness of the persisted data and the reliability of the storage.
Checks for updates of the Persistency Target Configuration. This method can be used to detect configuration updates that are installed by UCM while the Adaptive Application that uses Persistency is running. To re-read the updated Target Configuration, the Adaptive Application needs to call ara::per:: ReloadPersistencyManifest.
Registers an application data update callback with Persistency. The provided callback function will be called by Persistency if an update of stored application data might be necessary. This decision is based on the contract versions. The contract version that last accessed Persistency is provided as an argument to the callback, as well as the ara::core::InstanceSpecifier referring to the updated Key- Value Storage or File Storage. Based on this information, the Adaptive Application can decide which updates are actually necessary, e.g. a migration from any older contract version could be supported, with different steps required for each of these. The provided function will be called from the context of ara::per::UpdatePersistency, ara::per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
Registers a data update indication callback with Persistency. The provided callback function will be called by Persistency when an update of stored data happened. It will be called from the context of ara::per::UpdatePersistency, ara:: per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
Re-reads the Target Configuration. This method can be used to prepare for updates of the Key-Value Storages and File Storages of Persistency after a new Target Configuration was installed by UCM while the Adaptive Application that uses Persistency is running. Storages are only updated after closing them, either when they are opened again or by an explicit call to ara:: per::UpdatePersistency.
Resets a File Storage, including all files. ResetAllFiles resets a File Storage to the initial state, containing only the files which were deployed from the Target Configuration, with their initial content. Afterwards, the File Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles.
Resets a Key-Value Storage to the initial state. ResetKeyValueStorage allows to reset a Key-Value Storage to the initial state, containing only key-value pairs which were deployed from the Target Configuration, with their initial values. Afterwards, the Key-Value Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage.
Resets all Key-Value Storages and File Storages by entirely removing their content. The Key-Value Storages and File Storages will be re-created when ara::per:: OpenFileStorage or ara::per::OpenKeyValueStorage is called next time.
Updates all Persistency Key-Value Storages and File Storages after a new Target Configuration was installed. This method can be used to update the persistent data of the Adaptive Application during verification phase.
Defines the errors for Persistency. The enumeration values 0 - 255 are reserved for AUTOSAR assigned errors, the stack provider is free to define additional errors starting from 256.
=1 The requested Key-Value Storage or File Storage is not configured in the AUTOSAR model.
kKeyNotFound
=2 The provided key cannot be not found in the Key-Value Storage.
kIllegalWriteAccess
=3 The operation could not be performed because the accessed Key-Value Storage or File Storage is configured as read-only or write-only-once.
kPhysicalStorageFailure
=4 An error occurred when accessing the physical storage, e.g. because of a corrupted file system or corrupted hardware, or because of insufficient access rights.
kIntegrityCorrupted
=5 The structural integrity of the Key-Value Storage or File Storage could not be established. This can happen when the internal structure of a Key-Value Storage or the metadata of a File Storage is corrupted.
kValidationFailed
=6 The validation of redundancy measures failed for a single key-value pair, for the whole Key-Value Storage, for a single file, or for the whole File Storage.
kEncryptionFailed
=7 The encryption or decryption failed for a single key-value pair, for the whole Key-Value Storage, for a single file, or for the whole File Storage.
kDataTypeMismatch
=8 The provided data type does not match the stored data type.
kInitValueNotAvailable
=9 The operation could not be performed because no initial value is available.
kResourceBusy
= 10 The operation could not be performed because the resource is currently busy.
kOutOfStorageSpace
= 12 The physical storage space was exceeded.
kFileNotFound
= 13 The requested file name cannot be not found in the File Storage.
kInvalidPosition
= 15 SetPosition tried to move to a position that is not reachable (i.e. which is smaller than zero or greater than the current size of the file).
kEof
= 16 The Persistency user tried to read from the end of the file or from an empty file.
kInvalidOpenMode
= 17 Opening a file failed because the requested combination of Open Modes is invalid.
kInvalidSize
= 18 SetFileSize tried to set a new size that is bigger than the current file size.
kTooManyFiles
= 19 The maximum number of files was exceeded.
kQuotaExceeded
= 20 The allocated storage quota was exceeded.
kAuthenticationFailed
= 21 Calculating or checking of the MAC failed for a single key-value pair, for the whole Key-Value Storage, for a single file, or for the whole File Storage.
Request a governed re-review of this record. The record is not changed immediately.
=1 A Key-Value Storage was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements is empty, reportedInstances contains the indices of the affected Key-Value Storage copies.
kKeyValueStorageRecovered
=2 A Key-Value Storage was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements is empty, reportedInstances contains the indices of the affected Key-Value Storage copies.
kKeyRecoveryFailed
=3 A set of key-value pairs was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements contains the list of affected keys, reportedInstances contains the indices of the affected Key-Value Storage or key-value pair copies. In general, the nth key in reportedElements corresponds to the nth index in reported Instances, i.e. a key may be reported several times if several copies are broken. In case only one key-value pair is affected, reported Elements may be provided containing just this key.
kKeyRecovered
=4 A set of key-value pairs was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements contains the list of affected keys, reportedInstances contains the indices of the affected Key-Value Storage or key-value pair copies. In general, the nth key in reportedElements corresponds to the nth index in reported Instances, i.e. a key may be reported several times if several copies are broken. In case only one key-value pair is affected, reported Elements may be provided containing just this key.
kFileStorageRecoveryFailed
=5 A File Storage was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements is empty, reportedInstances contains the indices of the affected File Storage copies.
kFileStorageRecovered
=6 A File Storage was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements is empty, reportedInstances contains the indices of the affected File Storage copies.
kFileRecoveryFailed
=7 A set of files was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements contains the list of affected file names, reported Instances contains the indices of the affected File Storage or file copies. In general, the nth file name in reportedElements corresponds to the nth index in reportedInstances, i.e. a file name may be reported several times if several copies are broken. In case only one file is affected, reportedElements may be provided containing just this file name.
kFileRecovered
=8 A set of files was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements contains the list of affected file names, reported Instances contains the indices of the affected File Storage or file copies. In general, the nth file name in reportedElements corresponds to the nth index in reportedInstances, i.e. a file name may be reported several times if several copies are broken. In case only one file is affected, reportedElements may be provided containing just this file name.
Request a governed re-review of this record. The record is not changed immediately.
Checks for updates of the Persistency Target Configuration. This method can be used to detect configuration updates that are installed by UCM while the Adaptive Application that uses Persistency is running. To re-read the updated Target Configuration, the Adaptive Application needs to call ara::per:: ReloadPersistencyManifest.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b1f49db8b33dProvenance
traduit du guide allemandGénéré par l'IAgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction synchrone CheckForManifestUpdate issue de l’en-tête ara/per/update.h vérifie dans l’espace de noms ara::per si des mises à jour de la Persistency Target Configuration sont disponibles [SWS_PER_00576]. Elle sert à détecter des modifications de configuration qui ont été appliquées par l’Update and Configuration Management (UCM) pendant que l’application adaptative utilisant Persistency est déjà en cours d’exécution [SWS_PER_00576]. La fonction ne prend aucun paramètre et renvoie un ara::core::Result<bool> : true si la configuration a été mise à jour depuis la dernière lecture, ou false si elle est restée inchangée [SWS_PER_00576].
Gestion des erreurs et concurrence
La fonction est déclarée comme noexcept et est sûre vis-à-vis des exceptions (exception safe), mais non thread-safe (not thread-safe) [SWS_PER_00576]. En cas d’erreur, le résultat contient soit des erreurs spécifiques au constructeur, soit l’un des codes d’erreur suivants [SWS_PER_00576] :
kPhysicalStorageFailure : survient lorsque l’accès au stockage physique échoue pendant la vérification [SWS_PER_00576].
kIntegrityCorrupted : survient lorsque des données enregistrées ne peuvent pas être lues en raison d’une intégrité structurelle corrompue [SWS_PER_00576].
Interaction
Si une mise à jour est constatée (valeur de retour true), l’application doit ensuite appeler ara::per::ReloadPersistencyManifest pour relire effectivement la Target Configuration modifiée [SWS_PER_00576].
Ce texte a été généré par une IA et sert de guide d’orientation basé sur la spécification.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 91cf74692196Provenance
traduit du guide allemandGénéré par l'IAgemini-3.8-flash-medium · 2026-10-14
La fonction synchrone CheckForManifestUpdate, déclarée dans l'en-tête #include "ara/per/update.h" au sein de l'espace de noms ara::per, permet à une Adaptive Application de vérifier si la configuration cible (Target Configuration) de persistance a été mise à jour par l'UCM pendant son exécution [SWS_PER_00576].
L'appel ne prend aucun argument et renvoie un résultat de type ara::core::Result<bool>[SWS_PER_00576] :
En cas de succès, la valeur booléenne vaut true si la Target Configuration a été mise à jour, ou false si elle est demeurée inchangée depuis sa dernière lecture [SWS_PER_00576]. Lorsqu'une mise à jour est signalée, l'Adaptive Application doit appeler ara::per::ReloadPersistencyManifest pour relire la configuration cible actualisée [SWS_PER_00576].
En cas d'échec de la vérification, le résultat contient une erreur spécifique au fournisseur ou une erreur standard avec sémantique de retour arrière (rollback) : kPhysicalStorageFailure si l'accès physique au support de stockage échoue, ou kIntegrityCorrupted si les données ne peuvent pas être lues en raison d'une intégrité structurelle corrompue [SWS_PER_00576].
Concernant l'exécution et la concurrence, la méthode est qualifiée noexcept et offre une garantie de sécurité contre les exceptions (exception safe), mais elle n'est pas sûre pour les threads (not thread-safe) [SWS_PER_00576]. Toute utilisation concurrente nécessite une synchronisation externe.
Ce texte d'utilisation a été généré automatiquement sur la base de la spécification AUTOSAR Adaptive R25-11.
A Result containing true if the Target Configuration was updated or false if it is unchanged since the last time the Target Configuration was read. In case of an error, it contains any of the errors defined below, or a vendor specific error.
Fehler
Fehlercode
Beschreibung
kPhysicalStorage-Failure
rollback_semantics Returned if access to the physical storage fails during the checking operation.
kIntegrityCor-rupted
rollback_semantics Returned if stored data cannot be read because the structural integrity is corrupted.
Request a governed re-review of this record. The record is not changed immediately.
Removes backup data and other unused data of all Persistency Key-Value Storages and File Storages.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ce1bea3039deProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction synchrone CleanUpPersistency issue de ara/per/update.h sert à supprimer les données de sauvegarde (Backup Data) et d'autres données inutilisées sur l'ensemble des stockages clé-valeur et fichiers d'une instance [SWS_PER_00567]. Elle ne prend aucun paramètre et renvoie le résultat via le type de retour ara::core::Result<void>[SWS_PER_00567].
Concurrence et restrictions
La fonction n'est pas sûre pour les threads (not thread-safe) et exige un accès exclusif à toutes les ressources de stockage [SWS_PER_00567]. Si un ara::per::SharedHandle d'un stockage clé-valeur ou d'un stockage de fichiers est encore ouvert, l'appel échoue avec kResourceBusy[SWS_PER_00567]. De même, des opérations s'exécutant en parallèle telles que UpdatePersistency, ResetPersistency, RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles ou ResetAllFiles conduisent au code d'erreur kResourceBusy[SWS_PER_00567].
Une sémantique de rollback relative au stockage s'applique aux erreurs survenues [SWS_PER_00567]. Parmi les erreurs possibles figurent, outre kResourceBusy :
kPhysicalStorageFailure en cas d'erreurs lors de l'accès au support de stockage physique [SWS_PER_00567],
kIntegrityCorrupted en cas d'endommagement structurel des données stockées [SWS_PER_00567],
kValidationFailed en cas d'échec de la vérification de la validité des données [SWS_PER_00567],
kEncryptionFailed en cas d'erreurs pendant le chiffrement ou le déchiffrement [SWS_PER_00567],
kAuthenticationFailed en cas d'échec du calcul ou de la vérification du MAC [SWS_PER_00567],
ainsi que des codes d'erreur spécifiques au constructeur [SWS_PER_00567].
Ce texte a été généré par une IA sur la base de la spécification.
Returns the space in bytes currently occupied by a File Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the File Storage is not opened and no other operation on the File Storage takes place at the same time.
Returns the space in bytes currently occupied by a Key-Value Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the Key-Value Storage is not opened and no other operation on the Key-Value Storage takes place at the same time.
Opens a File Storage. OpenFileStorage will fail with kResourceBusy when the File Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. Because multiple threads can access the same File Storage concurrently, the File Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same File Storage went out of scope.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 14078ca86bfbProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction synchrone ara::per::OpenFileStorage ouvre un espace de stockage de fichiers pour des données persistantes et le met à disposition via un descripteur d’accès partagé [SWS_PER_00116]. Elle attend en paramètre une référence à un ara::core::InstanceSpecifier, qui indique le chemin shortName d’un prototype de port typé par un PersistencyFileStorageInterface. La valeur de retour est un ara::core::Result<ara::core::SharedHandle<FileStorage>>[SWS_PER_00116].
En matière de concurrence, la fonction est spécifiée comme étant sûre pour les threads (thread-safe) et sûre vis-à-vis des exceptions (exception-safe) [SWS_PER_00116]. Dans la mesure où plusieurs threads peuvent accéder en parallèle à la même instance de stockage de fichiers, la mémoire physique n’est pas obligatoirement fermée lorsqu’un SharedHandle individuel quitte sa portée. La fermeture n’intervient que lorsque tous les descripteurs de référence sont passés hors de portée [SWS_PER_00116].
En cas d’erreur, le Result contient des codes d’erreur de l’énumération PerErrc ou des erreurs spécifiques au constructeur [SWS_PER_00116] :
PerErrc::kResourceBusy : renvoyé lorsque des opérations administratives telles que CleanUpPersistency, ResetPersistency, RecoverAllFiles ou ResetAllFiles sont exécutées simultanément. Pendant que UpdatePersistency est actif, cette erreur se produit si l’appel intervient en dehors du rappel enregistré via RegisterApplicationDataUpdateCallback ou avec un identifiant divergent [SWS_PER_00116], [SWS_PER_00356].
Erreurs de configuration et d’accès : kStorageNotFound en cas d’instance non configurée, kPhysicalStorageFailure en cas d’erreurs de la mémoire physique ainsi que kIntegrityCorrupted, kValidationFailed, kEncryptionFailed et kAuthenticationFailed en cas de problèmes d’intégrité, de vérification ou de déchiffrement [SWS_PER_00116].
Limites de capacité lors de mises à jour implicites : kOutOfStorageSpace, kTooManyFiles ou kQuotaExceeded[SWS_PER_00116].
En interaction avec le module, une réinitialisation préalable au moyen de ResetPersistency a pour effet que les espaces de stockage de fichiers supprimés sont recréés lors du prochain appel de OpenFileStorage[SWS_PER_00358]. Si des données sont mises à jour pendant l’ouverture, un rappel d’indication enregistré via RegisterDataUpdateIndication est appelé directement dans le contexte de OpenFileStorage[SWS_PER_00578].
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR Adaptive R25-11.
rollback_semantics Returned if CleanUpPersistency, or ResetPersistency is currently being executed, or if RecoverAllFiles or ResetAllFiles is currently being executed for the same File Storage. Also, while Update Persistency is currently being executed, this error is returned when OpenFileStorage is called outside of the callback registered via RegisterApplicationDataUpdateCallback, or if the used Instance Specifier differs from the one provided by the callback.
no_rollback_semantics Returned if the available physical storage space is insufficient for the files that are added/updated during an implicit update of the File Storage.
rollback_semantics Returned if the files that are added/updated during an implicit update of the File Storage would exceed the configured maximum AllowedSize.
Opens a Key-Value Storage. OpenKeyValueStorage will fail with kResourceBusy when the Key-Value Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. Because multiple threads can access the same Key-Value Storage concurrently, the Key-Value Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same Key-Value Storage went out of scope.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d24427922381Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation et cycle de vie
La fonction synchrone OpenKeyValueStorage ouvre un stockage clé-valeur et est spécifiée comme thread-safe ainsi que noexcept[SWS_PER_00052]. Un ara::core::InstanceSpecifier référençant le chemin d'un PortPrototype typé par un PersistencyKeyValueStorageInterface est transmis comme paramètre kvs. La valeur est renvoyée sous la forme d'un ara::core::Result<SharedHandle<KeyValueStorage>>. Comme plusieurs threads peuvent ouvrir le même stockage de manière concurrente, Persistency ne ferme le stockage physique que lorsque toutes les instances de SharedHandle qui le référencent ont quitté leur portée [SWS_PER_00052].
Gestion des erreurs et concurrence
En cas d'erreur, le Result fournit des codes d'erreur spécifiques du domaine d'erreur de Persistency [SWS_PER_00052] :
PerErrc::kStorageNotFound : L'identifiant ne correspond à aucune interface configurée de l'Executable.
PerErrc::kResourceBusy : Survient lorsque CleanUpPersistency, ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage ou ResetKeyValueStorage sont exécutées de manière concurrente pour ce stockage. Pendant UpdatePersistency, l'appel n'est autorisé qu'au sein du callback enregistré via RegisterApplicationDataUpdateCallback avec l'identifiant d'instance qui y est transmis [SWS_PER_00356].
PerErrc::kPhysicalStorageFailure, PerErrc::kIntegrityCorrupted, PerErrc::kValidationFailed, PerErrc::kEncryptionFailed et PerErrc::kAuthenticationFailed en cas d'anomalies, d'erreurs de validation ou d'erreurs cryptographiques.
PerErrc::kOutOfStorageSpace et PerErrc::kQuotaExceeded en cas d'espace mémoire insuffisant ou de dépassement de quota pendant une mise à jour implicite.
Interaction
Si toutes les données ont été préalablement supprimées au moyen de ResetPersistency, la mémoire est automatiquement recréée lors du prochain appel de OpenKeyValueStorage[SWS_PER_00358]. Après l’ouverture, les modifications non enregistrées peuvent être réinitialisées à l’état de l’ouverture via DiscardPendingChanges[SWS_PER_00365]. De plus, l’ouverture peut déclencher l’exécution de rappels enregistrés via RegisterDataUpdateIndication[SWS_PER_00578].
Cette note d’utilisation a été générée de manière automatisée sur la base des exigences de la spécification.
A Result containing a SharedHandle for the KeyValueStorage. In case of an error, it contains any of the errors defined below, or a vendor specific error.
Fehler
Fehlercode
Beschreibung
Found
Returned if the passed InstanceSpecifier does not match any PersistencyKeyValueStorageInterface configured for this Executable.
rollback_semantics Returned if CleanUpPersistency, or ResetPersistency is currently being executed, or if RecoverKeyValueStorage or ResetKeyValue Storage is currently being executed for the same Key-Value Storage. Also, while UpdatePersistency is currently being executed, this error is returned when OpenKeyValueStorage is called outside of the callback registered via RegisterApplicationDataUpdate Callback, or if the used InstanceSpecifier differs from the one provided by the callback.
no_rollback_semantics Returned if the available physical storage space is insufficient for the values that are added/updated during an implicit update of the Key-Value Storage.
rollback_semantics Returned if the values that are added/updated during an implicit update of the Key-Value Storage would exceed the configured maximumAllowedSize.
Recovers a File Storage, including all files. RecoverAllFiles recovers a File Storage when the redundancy checks fail. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. This method does a best-effort recovery of all files. After recovery, files might show outdated or initial content, or might be lost.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ca84cc440ba3Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction RecoverAllFiles procède à une restauration d'un stockage basé sur des fichiers (File Storage), y compris tous les fichiers qui y sont déposés, lorsque des vérifications de redondance échouent [SWS_PER_00335]. L'appel s'effectue de manière synchrone en spécifiant le InstanceSpecifier pour le PortPrototype configuré et renvoie un ara::core::Result<void>[SWS_PER_00335].
La restauration fonctionne selon le principe du « best effort » : une fois terminée, les fichiers peuvent présenter des contenus obsolètes, être réinitialisés à leur état initial ou être entièrement perdus [SWS_PER_00335]. Si l'accès au support de stockage échoue (PerErrc::kPhysicalStorageFailure) ou si l'espace mémoire est insuffisant (PerErrc::kOutOfStorageSpace), il n'existe aucune garantie de rollback [SWS_PER_00335]. Si une erreur survient lors du chiffrement (PerErrc::kEncryptionFailed), de la vérification d'intégrité (PerErrc::kAuthenticationFailed) ou de la limitation de taille de stockage (PerErrc::kQuotaExceeded), la sémantique de rollback s'applique [SWS_PER_00335]. Si l'identifiant ne correspond à aucune interface configurée, cela se traduit par PerErrc::kStorageNotFound[SWS_PER_00335].
Bien que la fonction soit thread-safe, son exécution échoue avec PerErrc::kResourceBusy tant que le stockage est ouvert ou qu'un handle partagé actif est présent [SWS_PER_00335], [SWS_PER_00116]. De même, les exécutions parallèles de ResetAllFiles[SWS_PER_00336] pour le même stockage ainsi que les opérations de mise à jour globales UpdatePersistency[SWS_PER_00357], ResetPersistency[SWS_PER_00358] et CleanUpPersistency[SWS_PER_00567] bloquent l'appel [SWS_PER_00335].
Cette note d'utilisation a été générée par une IA sur la base des spécifications.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if ResetAllFiles is currently being executed for the same File Storage, or a Shared Handle of the same File Storage is currently in use.
Recovers a Key-ValueStorage. RecoverKeyValueStorage allows to recover a Key-Value Storage when the redundancy checks fail. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. This method does a best-effort recovery of all key-value pairs. After recovery, keys might show outdated or initial value, or might be lost.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ba269bfce693Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction synchrone RecoverKeyValueStorage dans l'espace de noms ara::per sert à restaurer un stockage clé-valeur après des échecs de contrôles de redondance ([SWS_PER_00333]). Un ara::core::InstanceSpecifier est transmis comme paramètre kvs, référençant le chemin ShortName d'un PortPrototype correspondant ([SWS_PER_00333]). La restauration s'effectue selon le principe du meilleur effort (best-effort) ; après l'opération, les clés peuvent présenter des valeurs obsolètes ou initiales, ou être entièrement perdues ([SWS_PER_00333]).
Bien que la fonction soit spécifiée comme étant thread-safe, l'exécution échoue avec le code d'erreur PerErrc::kResourceBusy si le stockage clé-valeur concerné est ouvert – c'est-à-dire s'il existe au moins un SharedHandle actif ([SWS_PER_00052], [SWS_PER_00333]). La même erreur survient si d'autres threads appellent simultanément des fonctions modificatrices : UpdatePersistency ([SWS_PER_00357]), CleanUpPersistency ([SWS_PER_00567]), ResetPersistency ([SWS_PER_00358]) ou ResetKeyValueStorage ([SWS_PER_00334]). Durant la restauration, un appel de OpenKeyValueStorage échoue également avec kResourceBusy ([SWS_PER_00052]).
Le résultat est retourné de manière synchrone sous forme de ara::core::Result<void>. En plus de PerErrc::kResourceBusy, les erreurs spécifiques suivantes sont définies ([SWS_PER_00333]) :
PerErrc::kStorageNotFound : l'identifiant transmis ne correspond à aucune interface configurée.
PerErrc::kPhysicalStorageFailure : l'accès à la mémoire physique échoue (pas de sémantique de rollback).
PerErrc::kOutOfStorageSpace : espace de stockage physique insuffisant pour les données restaurées (pas de sémantique de rollback).
PerErrc::kQuotaExceeded : dépassement de la longueur maximale configurée (maximumAllowedSize).
PerErrc::kEncryptionFailed et PerErrc::kAuthenticationFailed : erreur lors du chiffrement ou du calcul du MAC.
Ce texte a été rédigé par une IA en se basant sur la spécification AUTOSAR.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if ResetKeyValue Storage is currently being executed for the same Key-Value Storage, or a SharedHandle of the same Key-Value Storage is currently in use.
Registers an application data update callback with Persistency. The provided callback function will be called by Persistency if an update of stored application data might be necessary. This decision is based on the contract versions. The contract version that last accessed Persistency is provided as an argument to the callback, as well as the ara::core::InstanceSpecifier referring to the updated Key- Value Storage or File Storage. Based on this information, the Adaptive Application can decide which updates are actually necessary, e.g. a migration from any older contract version could be supported, with different steps required for each of these. The provided function will be called from the context of ara::per::UpdatePersistency, ara::per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
The callback function to be called by Persistency after an update of persistent data took place. The function will be called with the shortName path of an updated Key-Value Storage or File Storage, and with the contract version with which the Persistency was last accessed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Registers a data update indication callback with Persistency. The provided callback function will be called by Persistency when an update of stored data happened. It will be called from the context of ara::per::UpdatePersistency, ara:: per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
The callback function to be called by Persistency after an update of persistent data took place. The function will be called with the shortName path of an updated Key-Value Storage or File Storage, and with the the updated elements of the storage.
monitoredStorage
A Key-Value Storage or File Storage for which updates shall be reported.
monitoredElements
A set of elements for which updates shall be reported.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Register a recovery reporting callback with Persistency. This callback can be used in safety-aware Adaptive Applications to detect actions of the Persistency that are related to the correctness of the persisted data and the reliability of the storage.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5828fc3d3f00ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction RegisterRecoveryReportCallback dans l'espace de nommage ara::per ([SWS_PER_00433]) sert à enregistrer une routine de rappel auprès du composant Persistency. Elle est utilisée dans les Adaptive Applications orientées sécurité afin de détecter les mesures correctives de la Persistency concernant la justesse des données persistées ainsi que la fiabilité de la mémoire [SWS_PER_00433].
Paramètres et sémantique d'appel
En guise de paramètre, recoveryReportCallback est transmis, une std::function appelée par la Persistency lorsque des erreurs dans les données stockées ont été corrigées avec succès à l'aide de la redondance disponible [SWS_PER_00433]. Les informations contextuelles suivantes sont alors transmises au rappel [SWS_PER_00433] :
storage : le chemin (shortName) du Key-Value Storage ou File Storage concerné en tant que ara::core::InstanceSpecifier.
recoveryReportKind : le type de rapport de récupération (ara::per::RecoveryReportKind).
reportedElements : un vecteur d'identifiants des éléments concernés (ara::core::Vector<ara::core::String>).
reportedInstances : un vecteur des instances concernées (ara::core::Vector<std::uint8_t>).
Gestion des erreurs et concurrence
La fonction ne renvoie aucune valeur de retour et est déclarée comme noexcept ; elle est considérée comme sûre face aux exceptions (exception safe) [SWS_PER_00433]. Aucun code d'erreur propre n'existe [SWS_PER_00433]. En ce qui concerne la sécurité des threads, l'interface est classifiée comme not thread-safe[SWS_PER_00433]. L'appel devrait donc généralement avoir lieu lors de la phase d'initialisation de l'application, avant le démarrage des accès mémoire concurrents. Question Q-e5b93ea58fb56a1c (ouverte)
Cette note d'utilisation a été créée par une IA et est basée sur les spécifications de la plateforme AUTOSAR.
The callback function to be called by Persistency to report errors in the stored data that were corrected using the available redundancy. The function will be called with the shortName path of the affected Key-Value Storage or File Storage in storage and information on what has been corrected, placed in the parameters recoveryReport Kind, reportedElements, and reportedInstances.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Re-reads the Target Configuration. This method can be used to prepare for updates of the Key-Value Storages and File Storages of Persistency after a new Target Configuration was installed by UCM while the Adaptive Application that uses Persistency is running. Storages are only updated after closing them, either when they are opened again or by an explicit call to ara:: per::UpdatePersistency.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 19920ccb9cf9ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction synchrone ReloadPersistencyManifest issue de l’espace de noms ara::per (déclarée dans #include "ara/per/update.h") relit la configuration cible (Target Configuration) de la persistance [SWS_PER_00577]. Elle sert à préparer les mises à jour des Key-Value Storages et des File Storages après qu’une nouvelle configuration cible a été installée par l’Update and Configuration Management (UCM) pendant l’exécution de l’Adaptive Application [SWS_PER_00577].
Généralement, l’application vérifie préalablement avec CheckForManifestUpdate[SWS_PER_00576] si une mise à jour de configuration est présente, puis appelle ReloadPersistencyManifest[SWS_PER_00576]. Cependant, la relecture ne met pas encore à jour immédiatement les stockages persistants : les stockages ne sont mis à jour qu’après leur fermeture – soit lors d’une nouvelle ouverture, soit via un appel explicite à ara::per::UpdatePersistency[SWS_PER_00577]. Interprétation : les zones de stockage déjà ouvertes ne sont vraisemblablement pas fermées automatiquement par l’appel, de sorte que l’application doit les fermer elle-même ou les mettre à jour explicitement. Question Q-16f9dae418feb3fa (ouverte)
La fonction ne prend aucun paramètre et renvoie un ara::core::Result<void>[SWS_PER_00577]. En cas d’erreur, le résultat contient des erreurs spécifiques au constructeur ou l’un des codes d’erreur suivants avec sémantique de rollback [SWS_PER_00577] :
kPhysicalStorageFailure : survient lorsque l’accès au stockage physique échoue pendant l’opération de lecture [SWS_PER_00577].
kIntegrityCorrupted : survient lorsque des données stockées ne peuvent pas être lues en raison d’une intégrité structurelle corrompue [SWS_PER_00577].
En ce qui concerne la concurrence, la fonction est spécifiée comme non thread-safe (not thread-safe), mais déclarée comme sûre vis-à-vis des exceptions (exception safe) et noexcept[SWS_PER_00577]. Les appels parallèles doivent donc être synchronisés côté application.
Cette note d’utilisation a été créée par une IA sur la base de la spécification.
Resets a File Storage, including all files. ResetAllFiles resets a File Storage to the initial state, containing only the files which were deployed from the Target Configuration, with their initial content. Afterwards, the File Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f645139d391cProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction ResetAllFiles réinitialise de manière synchrone un File Storage à son état de livraison initial conformément à la Target Configuration actuelle [SWS_PER_00336]. Après une exécution réussie, le stockage contient exclusivement les fichiers qui y sont définis avec leurs contenus d'origine, comme s'il venait d'être réinstallé [SWS_PER_00336].
Utilisation et concurrence : l'identifiant d'instance d'un PortPrototype typé via PersistencyFileStorageInterface est transmis par le biais du paramètre fs[SWS_PER_00336]. Bien que la fonction soit spécifiée comme thread-safe et exception safe, elle requiert un accès exclusif au stockage : si le stockage est actuellement ouvert (par exemple via un SharedHandle actif issu de OpenFileStorage[SWS_PER_00116]) ou s'il est modifié en parallèle par UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverAllFiles[SWS_PER_00335] ou par un autre appel de ResetAllFiles, l'exécution échoue [SWS_PER_00336].
Traitement des erreurs : la fonction renvoie un ara::core::Result<void>[SWS_PER_00336]. Les codes d'erreur possibles issus de PerErrc sont :
kResourceBusy : le stockage de fichiers est ouvert ou est en cours de modification parallèle (sémantique de rollback) [SWS_PER_00336].
kStorageNotFound : l'identifiant ne correspond à aucune interface configurée pour l'exécutable [SWS_PER_00336].
kPhysicalStorageFailure ou kOutOfStorageSpace : erreur de mémoire physique ou espace mémoire insuffisant (pas de sémantique de rollback) [SWS_PER_00336].
kEncryptionFailed ou kAuthenticationFailed : erreur lors du chiffrement ou du calcul du MAC (sémantique de rollback) [SWS_PER_00336].
Interaction : après la réinitialisation, les fichiers restaurés possèdent, lors des interrogations d'état, l'état FileCreationState::kCreatedDuringReset[SWS_PER_00435] ainsi que FileModificationState::kModifiedDuringReset[SWS_PER_00436].
Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR R25-11.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if RecoverAllFiles is currently being executed for the same File Storage, or a Shared Handle of the same File Storage is currently in use.
Resets a Key-Value Storage to the initial state. ResetKeyValueStorage allows to reset a Key-Value Storage to the initial state, containing only key-value pairs which were deployed from the Target Configuration, with their initial values. Afterwards, the Key-Value Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 48697319880fProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction synchrone ResetKeyValueStorage réinitialise un stockage clé-valeur spécifique à son état initial [SWS_PER_00334]. Après une exécution réussie, la mémoire contient exclusivement les paires clé-valeur avec leurs valeurs initiales ayant été fournies via la Target Configuration ; le stockage se comporte ensuite comme s'il venait d'être fraîchement installé à partir de la configuration actuelle [SWS_PER_00334]. Le chemin kvs est transmis en tant que paramètre sous forme de ara::core::InstanceSpecifier, qui référence le PortPrototype d'une PersistencyKeyValueStorageInterface configurée [SWS_PER_00334].
La fonction est spécifiée comme étant thread-safe et exception safe, mais elle est soumise à des conditions de concurrence strictes concernant les mémoires ouvertes et les opérations de persistance globales [SWS_PER_00334] :
L'appel échoue avec PerErrc::kResourceBusy si le stockage clé-valeur concerné est actuellement ouvert (c'est-à-dire qu'un SharedHandle existe encore, voir [SWS_PER_00052]) ou si une restauration au moyen de RecoverKeyValueStorage[SWS_PER_00333] est exécutée simultanément sur la même mémoire [SWS_PER_00334].
Une exécution parallèle des opérations globales UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358] ou un appel concurrent de ResetKeyValueStorage dans un autre thread [SWS_PER_00334] conduit également à kResourceBusy.
Comme résultat, la fonction fournit un ara::core::Result<void>[SWS_PER_00334]. En cas d'erreur, outre kResourceBusy, les codes d'erreur spécifiques suivants se produisent : PerErrc::kStorageNotFound (InstanceSpecifier invalide), PerErrc::kPhysicalStorageFailure (erreur d'accès au support de mémoire, pas de sémantique de rollback), PerErrc::kOutOfStorageSpace (espace de stockage insuffisant pour les valeurs initiales, pas de sémantique de rollback), PerErrc::kEncryptionFailed (erreur de chiffrement) ainsi que PerErrc::kAuthenticationFailed (erreur lors du calcul du MAC) [SWS_PER_00334].
Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR R25-11.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if RecoverKeyValue Storage is currently being executed for the same Key-Value Storage, or a SharedHandle of the same Key-Value Storage is currently in use.
Resets all Key-Value Storages and File Storages by entirely removing their content. The Key-Value Storages and File Storages will be re-created when ara::per:: OpenFileStorage or ara::per::OpenKeyValueStorage is called next time.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d1720067a24eProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction synchrone ResetPersistency ([SWS_PER_00358]) de l'en-tête ara/per/update.h sert à réinitialiser complètement tous les Key-Value Storage et File Storage d'une application. Lors de l'appel, l'ensemble des contenus persistants est intégralement effacé. Les stockages eux-mêmes ne sont pas recréés immédiatement, mais seulement lors de l'appel suivant respectif de ara::per::OpenKeyValueStorage ([SWS_PER_00052]) ou de ara::per::OpenFileStorage ([SWS_PER_00116]). Les fichiers mis à disposition à nouveau après la réinitialisation reçoivent alors le statut de création FileCreationState::kCreatedDuringInstallation ([SWS_PER_00435]).
Gestion des erreurs
Comme valeur de retour, la fonction fournit un ara::core::Result<void> ([SWS_PER_00358]). Si l'accès au support de stockage physique échoue pendant l'opération, la fonction renvoie kPhysicalStorageFailure sans sémantique de rollback. Si des ressources persistantes sont occupées ou modifiées en parallèle, l'appel est interrompu avec kResourceBusy et une sémantique de rollback active ([SWS_PER_00358]). En outre, des erreurs spécifiques au constructeur peuvent survenir.
Concurrence et restrictions
L'interface est déclarée comme exception safe, mais explicitement classée comme not thread-safe ([SWS_PER_00358]). Elle échoue avec kResourceBusy dès que :
des opérations globales telles que UpdatePersistency ([SWS_PER_00357]) ou CleanUpPersistency ([SWS_PER_00567]) sont déjà en cours d'exécution,
un stockage individuel est manipulé en parallèle via RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles ([SWS_PER_00335]) ou ResetAllFiles ([SWS_PER_00336]),
ou qu'il existe encore au moins un SharedHandle actif d'un Key-Value Storage ou File Storage ([SWS_PER_00358]).
Tant que ResetPersistency s'exécute, des tentatives d'ouverture simultanées via OpenKeyValueStorage ([SWS_PER_00052]) ou OpenFileStorage ([SWS_PER_00116]) dans d'autres threads conduisent également à kResourceBusy.
Ce texte a été généré par une IA. Les spécifications AUTOSAR font foi.
Updates all Persistency Key-Value Storages and File Storages after a new Target Configuration was installed. This method can be used to update the persistent data of the Adaptive Application during verification phase.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a05074f12eedProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction synchrone ara::per::UpdatePersistency ([SWS_PER_00357], en-tête ara/per/update.h) met à jour l’ensemble des stockages clé-valeur et fichiers d’une application après l’installation d’une nouvelle configuration cible. Elle sert à mettre à jour les données persistantes d’une Adaptive Application pendant la phase de vérification [SWS_PER_00357]. La fonction n’accepte aucun paramètre d’entrée et renvoie un ara::core::Result<void>[SWS_PER_00357].
Gestion des erreurs
En cas d’erreur, le Result retourné contient un code d’erreur spécifique ou une erreur propre au constructeur [SWS_PER_00357]. Une distinction est alors faite entre les opérations avec et sans sémantique de rollback :
Sémantique de rollback : pour kIntegrityCorrupted, kValidationFailed, kEncryptionFailed, kAuthenticationFailed, kTooManyFiles (dépassement de maxNumberOfFiles), kQuotaExceeded (dépassement de MaximumAllowedSize) ainsi que kResourceBusy, les modifications apportées sont annulées [SWS_PER_00357].
Aucune sémantique de rollback : en cas d’erreurs de mémoire physique (kPhysicalStorageFailure) ainsi que d’espace de stockage physique insuffisant (kOutOfStorageSpace), aucun rollback n’est garanti [SWS_PER_00357].
Concurrence et restrictions
La fonction est spécifiée comme étant sûre vis-à-vis des exceptions (exception safe), mais expressément comme non sûre pour les threads (not thread-safe) [SWS_PER_00357]. Un appel échoue avec kResourceBusy dès qu’un SharedHandle d’un stockage clé-valeur ou de fichiers est encore en cours d’utilisation ou que des fonctions de maintenance telles que CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage[SWS_PER_00333], ResetKeyValueStorage[SWS_PER_00334], RecoverAllFiles[SWS_PER_00335] ou ResetAllFiles[SWS_PER_00336] sont exécutées en parallèle [SWS_PER_00357]. Inversement, les appels simultanés de OpenKeyValueStorage[SWS_PER_00052] et de OpenFileStorage[SWS_PER_00116] depuis d’autres threads pendant la mise à jour échouent également avec kResourceBusy.
Interaction
Si une nouvelle configuration cible a été installée en cours de fonctionnement par UCM et qu’elle a été relue via ReloadPersistencyManifest[SWS_PER_00577], les mémoires fermées sont mises à jour via UpdatePersistency. Si des rappels ont été préalablement déposés via RegisterDataUpdateIndication[SWS_PER_00578] ou RegisterApplicationDataUpdateCallback[SWS_PER_00356], leur appel s’effectue de manière synchrone dans le contexte de UpdatePersistency[SWS_PER_00578].
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR R25-11.
no_rollback_semantics Returned if the available physical storage space is insufficient for the update.
kTooManyFiles
rollback_semantics Returned if the files added during the update of any File Storage would exceed the configured PersistencyFileStorageInterface.maxNumberOfFiles.
kQuotaExceeded
rollback_semantics Returned if the update would exceed the configured PersistencyCommon.MaximumAllowedSize of any Key- Value Storage or File Storage.
kAuthentication-Failed
rollback_semantics Returned if calculating or checking the MAC of stored data fails.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Original allemand