fonction DiscardPendingChanges [SWS_PER_00365] Upstream: RS_PER_00002, RS_AP_00119, RS_AP_00120, RS_AP_00127, RS_AP_00128, RS_AP_00129, RS_AP_00135, RS_AP_00139, RS_AP_00159
ara::core::Result< void > DiscardPendingChanges () noexcept;
Removes all pending changes to this Key-Value Storage since the last call to SyncToStorage() or since this Key-Value Storage was opened using OpenKeyValueStorage(). DiscardPendingChanges may be delayed by an ongoing call from another thread to RemoveAll Keys, SyncToStorage, DiscardPendingChanges, SetValue, GetValue, GetCurrentValueSize, RemoveKey, RecoverKey, or ResetKey.
Utilisation et sémantique
La fonction membre synchrone DiscardPendingChanges de la classe ara::per::KeyValueStorage ([SWS_PER_00365]) est fournie via l’en-tête ara/per/key_value_storage.h. Elle ne prend aucun paramètre et renvoie un ara::core::Result<void>. Son but est d’abandonner toutes les modifications en attente sur l’instance de Key-Value-Storage survenues depuis le dernier appel de SyncToStorage ou depuis l’ouverture au moyen de OpenKeyValueStorage() [SWS_PER_00365].
Interaction et comportement transactionnel
Les opérations d’écriture telles que SetValue [SWS_PER_00046], RemoveKey [SWS_PER_00047] et RemoveAllKeys [SWS_PER_00048] sont soumises à une sémantique transactionnelle. Leurs modifications ne sont écrites de manière permanente sur le support de stockage physique qu’au moyen de l’appel de SyncToStorage [SWS_PER_00049]. Grâce à DiscardPendingChanges, ces modifications non sécurisées font l’objet d’un rollback, de sorte que les requêtes via GetCurrentValueSize reflètent elles aussi à nouveau l’état transactionnel initial précédent [SWS_PER_00554].
Gestion des erreurs et concurrence
En cas d’erreur, le résultat contient une erreur propre au constructeur ou un code d’erreur issu de PerErrc avec une sémantique de rollback définie [SWS_PER_00365] :
PerErrc::kIllegalWriteAccess: lorsque la mémoire est protégée en écriture ou que, dans le cas d’une configuration Write-Only-Once, la clé existe déjà.PerErrc::kPhysicalStorageFailure: lorsque l’accès au support de stockage physique échoue.PerErrc::kIntegrityCorrupted,PerErrc::kValidationFailed,PerErrc::kEncryptionFailedouPerErrc::kAuthenticationFailed: en cas de perte d’intégrité, d’erreurs de validation, d’erreurs de déchiffrement ou d’échec du contrôle MAC.
La méthode est déclarée comme noexcept, sûre vis-à-vis des exceptions (exception safe) et sûre pour les threads (thread-safe) [SWS_PER_00365]. Son exécution peut toutefois être retardée si des appels de SyncToStorage, SetValue, RemoveKey, RemoveAllKeys, ResetKey ou RecoverKey sont actifs en parallèle dans d’autres threads [SWS_PER_00365] [SWS_PER_00426] [SWS_PER_00427].
Ce texte a été généré par une IA et revu sur la base de la spécification AUTOSAR.
Guide de l'implémenteur à venir (complexité I2)
| Header-Datei | #include "ara/per/key_value_storage.h" |
|---|---|
| Scope | class ara::per::KeyValueStorage |
| Exception-Sicherheit | exception safe |
| Thread-Sicherheit | thread-safe |
Rückgabewert
| Typ | Beschreibung |
|---|---|
| ara::core::Result< void > | A Result of void. In case of an error, it contains any of the errors defined below, or a vendor specific error. |
Fehler
| Fehlercode | Beschreibung |
|---|---|
| PerErrc::kIllegalWriteAccess | rollback_semantics Returned if the Key-Value Storage is configured as read- only, or if it is configured as write-only-once and the key already exists. |
| PerErrc::kPhysicalStorageFailure | rollback_semantics Returned if access to the physical storage fails. |
| PerErrc::kIntegrityCorrupted | rollback_semantics Returned if stored data cannot be read because the structural integrity is corrupted. |
| PerErrc::kValidationFailed | rollback_semantics Returned if the validity of stored data cannot be ensured. |
| PerErrc::kEncryptionFailed | rollback_semantics Returned if the decryption of stored data fails. |
| PerErrc::kAuthenticationFailed | rollback_semantics Returned if checking the MAC of stored data fails. |
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/SWS_PER_00365- Status
- valid/unmigrated
- Version
AUTOSAR/AP/record/SWS_PER_00365@rel:R25-11#df44876a- Content hash
df44876a- Source
- https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00365
Status: valid/unmigrated
Version: rel:R25-11#f3496212
Versionshistorie & Revisions (1 transition, 8 revision)
- Current State
valid/unmigrated- Reason
- mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
- Campaign
2026-08-13-status-backfill- Active Version
AUTOSAR/AP/record/SWS_PER_00365@rel:R25-11#f3496212
Recorded Revisions (8):
- R25-11
rel:R25-11#0793e9a52026-09-30 - R19-11
rel:R19-11#90dcd0d22026-10-14 - R20-11
rel:R20-11#306302ca2026-10-14 - R21-11
rel:R21-11#5bb9ceb52026-10-14 - R22-11
rel:R22-11#6374aaa62026-10-14 - R23-11
rel:R23-11#7a4bc2902026-10-14 - R24-11
rel:R24-11#fd18fb832026-10-14 - R25-11
rel:R25-11#f34962122026-10-14 active
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
|---|---|---|---|---|
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
gemini-3.8-flash-low· 2026-10-13 · Original allemand