Maakt de persistente opslag en het beheer van applicatiedata via sleutel-waarde- en bestandsopslag mogelijk.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9cb072b2740aHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt de persistente opslag en het beheer van applicatiedata via sleutel-waarde- en bestandsopslag mogelijk.
De namespace ara::per biedt interfaces voor persistente dataopslag door adaptieve applicaties via instantie-identifiers toegang te verlenen tot bestandsgebaseerde en sleutel-waardegebaseerde opslaggebieden ([SWS_PER_00052], [SWS_PER_00116]). Applicaties beheren geopende opslaglocaties via gedeelde handles, voeren bij manifestwijzigingen gecoördineerde updates uit en kunnen inconsistente data via herstelmechanismen repareren ([SWS_PER_00333], [SWS_PER_00357]). Terwijl opslagtoegangen gelijktijdig via handles plaatsvinden, vereisen administratieve procedures zoals updates of resets van de opslag de afwezigheid van concurrerende toegangen ([SWS_PER_00311]).
Context
De namespace ara::per biedt de interfaces van de persistentie-functiegroep voor het AUTOSAR Adaptive Platform. Zijn primaire verantwoordelijkheid is de permanente, geheugenoverstijgende opslag van applicatiedata over systeemstarts en proceslevenscycli heen. De module onderscheidt twee fundamentele opslagparadigma's: KeyValueStorage voor gestructureerde sleutel-waardeparen en FileStorage voor bestandsgebaseerde opslagtoegang. Adaptieve applicaties benaderen deze bronnen via geconfigureerde port-prototypes door middel van ara::core::InstanceSpecifier ([SWS_PER_00052], [SWS_PER_00116]).
Belangrijke interactiepartners van de namespace zijn Update and Configuration Management (UCM), dat tijdens runtime bijgewerkte doelconfiguraties (target configuration) kan aanbieden ([SWS_PER_00576], [SWS_PER_00577]), evenals het fysieke opslagmedium waarop ara::per consistentie, redundantie en databeveiliging waarborgt ([SWS_PER_00311]).
De toegang tot opslagobjecten wordt geregeld via handle-abstracties. Het openen van een opslag via OpenKeyValueStorage of OpenFileStorage genereert een SharedHandle ([SWS_PER_00052], [SWS_PER_00116]). Omdat meerdere threads gelijktijdig toegang kunnen hebben tot dezelfde opslag, wordt de fysieke bron niet noodzakelijkerwijs gesloten wanneer een afzonderlijke SharedHandle zijn geldigheidsbereik verlaat; het sluiten gebeurt pas wanneer alle refererende SharedHandle-instanties zijn afgebouwd ([SWS_PER_00052], [SWS_PER_00116]).
Voor bestanden binnen een FileStorage worden aanmaak- en wijzigingstoestanden gedetailleerd bijgehouden. De enumeratie FileCreationState geeft weer of een bestand tijdens de installatie (kCreatedDuringInstallation), tijdens een update (kCreatedDuringUpdate), door een reset (kCreatedDuringReset), als gevolg van een herstel (kCreatedDuringRecovery) of door de applicatie zelf (kCreatedByApplication) is aangemaakt ([SWS_PER_00435]). Analoog weerspiegelt FileModificationState wanneer en door welke bewerking een bestand voor het laatst is gewijzigd ([SWS_PER_00436]).
Voor het beheer van begintoestanden biedt de namespace reset-functies: ResetKeyValueStorage ([SWS_PER_00334]) en ResetAllFiles ([SWS_PER_00336]) zetten afzonderlijke opslagen terug naar de waarden die initieel in het manifest zijn gedefinieerd. Daarentegen leegt de globale operatie ResetPersistency ([SWS_PER_00358]) alle sleutel-waarde- en bestandsopslagen volledig; het opnieuw aanmaken ervan vindt plaats bij de volgende aanroep van OpenFileStorage of OpenKeyValueStorage.
Een typische applicatiestroom omvat de controle op configuratie-updates, het toepassen van datamigraties en de daaropvolgende opslagtoegang:
Vóór of tijdens de reguliere werking controleert de applicatie met behulp van CheckForManifestUpdate of UCM een nieuwe doelconfiguratie heeft geïnstalleerd ([SWS_PER_00576]). Is dit het geval, dan wordt het nieuwe manifest via ReloadPersistencyManifest ingelezen ([SWS_PER_00577]). Tijdens de aansluitende verificatiefase initieert de applicatie UpdatePersistency ([SWS_PER_00357]). Om versiespecifieke datamigraties te sturen, registreert de applicatie vooraf via RegisterApplicationDataUpdateCallback een callbackfunctie, die over oudere contractversies wordt geïnformeerd en applicatiespecifieke migratiestappen uitvoert ([SWS_PER_00356]). Daarnaast kunnen elementwijzigingen met behulp van RegisterDataUpdateIndication worden bewaakt ([SWS_PER_00578]). Na afronding van de update verwijdert CleanUpPersistency verouderde back-ups en redundante oude bestanden ([SWS_PER_00567]).
Voor reguliere toegang opent de applicatie de doelbron via OpenKeyValueStorage ([SWS_PER_00052]) of OpenFileStorage ([SWS_PER_00116]). Bestandstoegangen in de FileStorage worden geregeld via bitmaskers van de enumeratie OpenMode (bijv. kAtTheBeginning, kAtTheEnd, kTruncate, kAppend), die via de operatoren operator| ([SWS_PER_00144]) en operator|= ([SWS_PER_00434]) worden gecombineerd ([SWS_PER_00147]). Positioneringen vinden plaats relatief ten opzichte van Origin (kBeginning, kCurrent, kEnd) ([SWS_PER_00146]). De momenteel gebruikte opslaggrootte kan tijdens runtime worden bepaald via GetCurrentKeyValueStorageSize ([SWS_PER_00405]) en GetCurrentFileStorageSize ([SWS_PER_00406]).
Fouten worden in de namespace gestandaardiseerd gesignaleerd via de enumeratie PerErrc ([SWS_PER_00311]) in combinatie met PerErrorDomain ([SWS_PER_00352]) en MakeErrorCode ([SWS_PER_00351]). De gedeclareerde klasse PerException dient vermoedelijk als C++-exceptietype voor omgevingen waarin fouten niet via ara::core::Result, maar via excepties worden afgehandeld (interpretatie). Vraag Q-263982a4a4dae284 (open)
Centrale foutscenario's omvatten:
Configuratie- en adresseringsfouten: Komt de meegegeven InstanceSpecifier niet overeen met een in het model geconfigureerde port-interface, dan mislukt het openen met PerErrc::kStorageNotFound ([SWS_PER_00052], [SWS_PER_00116], [SWS_PER_00311]). Bestandstoegangen tot niet-bestaande bestanden genereren PerErrc::kFileNotFound ([SWS_PER_00311]).
Integriteitsverlies en herstel: Bij structurele beschadigingen (PerErrc::kIntegrityCorrupted) of mislukte redundantiecontroles (PerErrc::kValidationFailed) maakt ara::per een best-effort-herstel mogelijk via RecoverKeyValueStorage ([SWS_PER_00333]) respectievelijk RecoverAllFiles ([SWS_PER_00335]). Via RegisterRecoveryReportCallback ([SWS_PER_00433]) kunnen veiligheidsrelevante applicaties corrigerende maatregelen aan de hand van RecoveryReportKind (bijv. kKeyValueStorageRecovered, kFileRecovered) geautomatiseerd protocolleren ([SWS_PER_00432]).
Opslaggrenzen en fysieke fouten: Worden quota of fysieke capaciteiten overschreden, dan worden PerErrc::kOutOfStorageSpace, PerErrc::kQuotaExceeded of PerErrc::kTooManyFiles gemeld ([SWS_PER_00311]). Hardware- of bestandssysteemfouten resulteren in PerErrc::kPhysicalStorageFailure ([SWS_PER_00311]).
Beveiliging en toegangsmodi: Mislukken cryptografische verificaties of berekeningen, dan retourneert de module PerErrc::kEncryptionFailed of PerErrc::kAuthenticationFailed ([SWS_PER_00311]). Schrijfpogingen naar schrijfbeveiligde opslaggebieden worden afgewezen met PerErrc::kIllegalWriteAccess ([SWS_PER_00311]).
Deze handleiding is uitsluitend gebaseerd op de specificatie van AUTOSAR Adaptive R25-11.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Klassendiagram
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: b1f49db8b33dHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone functie CheckForManifestUpdate uit de header ara/per/update.h controleert in de namespace ara::per of er updates van de Persistency Target Configuration voorhanden zijn [SWS_PER_00576]. Ze dient ertoe configuratiewijzigingen te detecteren die door Update and Configuration Management (UCM) zijn geïnstalleerd terwijl de Persistency gebruikende adaptieve applicatie al draait [SWS_PER_00576]. De functie accepteert geen parameters en levert een ara::core::Result<bool> op: true wanneer de configuratie sinds het laatste uitlezen is bijgewerkt, of false wanneer deze ongewijzigd is gebleven [SWS_PER_00576].
Foutafhandeling en gelijktijdigheid
De functie is gedeclareerd als noexcept en uitzonderingsveilig (exception safe), maar niet thread-safe (not thread-safe) [SWS_PER_00576]. In geval van een fout bevat het resultaat hetzij fabrikantspecifieke fouten, hetzij een van de volgende foutcodes [SWS_PER_00576]:
kPhysicalStorageFailure: Treedt op wanneer de toegang tot het fysieke geheugen tijdens de controle mislukt [SWS_PER_00576].
kIntegrityCorrupted: Treedt op wanneer opgeslagen gegevens wegens beschadigde structurele integriteit niet kunnen worden gelezen [SWS_PER_00576].
Samenspel
Wordt er een update vastgesteld (retourwaarde true), dan moet de applicatie vervolgens ara::per::ReloadPersistencyManifest aanroepen om de gewijzigde Target Configuration daadwerkelijk opnieuw in te lezen [SWS_PER_00576].
Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp aan de hand van de specificatie.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ce1bea3039deHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone functie CleanUpPersistency uit ara/per/update.h dient voor het verwijderen van back-upgegevens (backup data) en overige ongebruikte gegevens over alle key-value- en file-storages van een instantie heen [SWS_PER_00567]. Zij accepteert geen parameters en retourneert het resultaat via het retourtype ara::core::Result<void>[SWS_PER_00567].
Gelijktijdigheid en beperkingen
De functie is niet thread-safe (not thread-safe) en vereist exclusieve toegang tot alle opslagbronnen [SWS_PER_00567]. Als er nog een ara::per::SharedHandle van een key-value- of file-storage is geopend, mislukt de aanroep met kResourceBusy[SWS_PER_00567]. Evenzo leiden parallel lopende operaties zoals UpdatePersistency, ResetPersistency, RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles of ResetAllFiles tot de foutcode kResourceBusy[SWS_PER_00567].
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 14078ca86bfbHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De synchrone functie ara::per::OpenFileStorage opent een bestandsopslag voor persistente gegevens en stelt deze beschikbaar via een gedeelde toegangshandle [SWS_PER_00116]. Als parameter verwacht zij een referentie naar een ara::core::InstanceSpecifier, die het shortName-pad van een door een PersistencyFileStorageInterface getypeerd poortprototype aangeeft. De retourwaarde is een ara::core::Result<ara::core::SharedHandle<FileStorage>>[SWS_PER_00116].
Wat betreft gelijktijdigheid is de functie gespecificeerd als thread-safe en exception-safe [SWS_PER_00116]. Aangezien meerdere threads parallel toegang kunnen hebben tot dezelfde bestandsopslaginstantie, wordt de fysieke opslag niet noodzakelijkerwijs gesloten wanneer een afzonderlijke SharedHandle het geldigheidsbereik verlaat. De sluiting vindt pas plaats wanneer alle refererende handles out-of-scope zijn gegaan [SWS_PER_00116].
In geval van een fout bevat het Result foutcodes van de enumeratie PerErrc of fabrikantspecifieke fouten [SWS_PER_00116]:
PerErrc::kResourceBusy: Wordt geretourneerd wanneer gelijktijdig administratieve bewerkingen zoals CleanUpPersistency, ResetPersistency, RecoverAllFiles of ResetAllFiles worden uitgevoerd. Terwijl UpdatePersistency actief is, treedt deze fout op indien de aanroep buiten de via RegisterApplicationDataUpdateCallback geregistreerde callback of met een afwijkende identifier plaatsvindt [SWS_PER_00116], [SWS_PER_00356].
Configuratie- en toegangsfouten: kStorageNotFound bij een niet-geconfigureerde instantie, kPhysicalStorageFailure bij fouten van de fysieke opslag, evenals kIntegrityCorrupted, kValidationFailed, kEncryptionFailed en kAuthenticationFailed bij integriteits-, controle- of ontsleutelingsproblemen [SWS_PER_00116].
Capaciteitsgrenzen bij impliciete updates: kOutOfStorageSpace, kTooManyFiles of kQuotaExceeded[SWS_PER_00116].
In interactie met de module bewerkt een voorafgaande reset via ResetPersistency dat gewiste bestandsopslagen bij de volgende aanroep van OpenFileStorage opnieuw worden aangemaakt [SWS_PER_00358]. Worden tijdens het openen gegevens geactualiseerd, dan wordt een via RegisterDataUpdateIndication geregistreerde indication-callback direct in de context van OpenFileStorage aangeroepen [SWS_PER_00578].
Deze tekst is gegenereerd door een AI op basis van de specificatie 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d24427922381Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en levenscyclus
De synchrone functie OpenKeyValueStorage opent een key-value storage en is gespecificeerd als thread-safe en noexcept[SWS_PER_00052]. Als parameter kvs wordt een ara::core::InstanceSpecifier doorgegeven, die het pad van een door een PersistencyKeyValueStorageInterface getypeerde PortPrototype refereert. De teruggave vindt plaats als ara::core::Result<SharedHandle<KeyValueStorage>>. Aangezien meerdere threads dezelfde storage gelijktijdig kunnen openen, sluit Persistency de fysieke opslag pas wanneer alle refererende SharedHandle-instanties hun geldigheidsbereik hebben verlaten [SWS_PER_00052].
Foutafhandeling en gelijktijdigheid
In geval van een fout levert het Result specifieke foutcodes van het Persistency-foutdomein op [SWS_PER_00052]:
PerErrc::kStorageNotFound: De identifier past bij geen enkele geconfigureerde interface van de Executable.
PerErrc::kResourceBusy: Treedt op wanneer gelijktijdig CleanUpPersistency, ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage of ResetKeyValueStorage voor deze storage worden uitgevoerd. Tijdens UpdatePersistency is de aanroep alleen toegestaan binnen de via RegisterApplicationDataUpdateCallback geregistreerde callback met de daar doorgegeven instantie-identifier [SWS_PER_00356].
PerErrc::kPhysicalStorageFailure, PerErrc::kIntegrityCorrupted, PerErrc::kValidationFailed, PerErrc::kEncryptionFailed en PerErrc::kAuthenticationFailed bij defecten, validatie- of cryptofouten.
PerErrc::kOutOfStorageSpace en PerErrc::kQuotaExceeded bij onvoldoende opslagruimte of quotaoverschrijding tijdens een impliciete update.
Samenspel
Wanneer alle gegevens eerder via ResetPersistency zijn gewist, wordt de storage bij de volgende aanroep van OpenKeyValueStorage automatisch opnieuw aangemaakt [SWS_PER_00358]. Na het openen kunnen niet-opgeslagen modificaties via DiscardPendingChanges worden teruggezet naar de toestand van het openen [SWS_PER_00365]. Daarnaast kan het openen de uitvoering van callbacks triggeren die via RegisterDataUpdateIndication zijn geregistreerd [SWS_PER_00578].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie-eisen.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ca84cc440ba3Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie RecoverAllFiles voert een herstel van een bestandsgebaseerde opslag (File Storage) inclusief alle daarin opgeslagen bestanden uit wanneer redundantiecontroles mislukken [SWS_PER_00335]. De aanroep vindt synchroon plaats onder opgave van de InstanceSpecifier voor het geconfigureerde poortprototype en levert een ara::core::Result<void> op [SWS_PER_00335].
Het herstel werkt volgens het best-effort-principe: Na voltooiing kunnen bestanden verouderde inhoud vertonen, naar hun begintoestand zijn teruggezet of geheel verloren zijn gegaan [SWS_PER_00335]. Schiet de toegang tot het opslagmedium tekort (PerErrc::kPhysicalStorageFailure) of is de opslagruimte ontoereikend (PerErrc::kOutOfStorageSpace), dan bestaat er geen rollback-garantie [SWS_PER_00335]. Treedt een fout op bij versleuteling (PerErrc::kEncryptionFailed), integriteitscontrole (PerErrc::kAuthenticationFailed) of opslaggroottebeperking (PerErrc::kQuotaExceeded), dan treedt de rollback-semantiek in werking [SWS_PER_00335]. Past de identifier bij geen enkele geconfigureerde interface, dan resulteert dit in PerErrc::kStorageNotFound[SWS_PER_00335].
Hoewel de functie thread-safe is, mislukt de uitvoering met PerErrc::kResourceBusy zolang de opslag geopend is of er een actieve shared-handle aanwezig is [SWS_PER_00335], [SWS_PER_00116]. Eveneens blokkeren parallelle uitvoeringen van ResetAllFiles[SWS_PER_00336] voor dezelfde opslag evenals de globale actualiseringsbewerkingen UpdatePersistency[SWS_PER_00357], ResetPersistency[SWS_PER_00358] en CleanUpPersistency[SWS_PER_00567] de aanroep [SWS_PER_00335].
Deze gebruiksinstructie is door een AI op basis van de specificaties opgesteld.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ba269bfce693Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De synchrone functie RecoverKeyValueStorage in de namespace ara::per dient voor het herstel van een key-value-opslag na mislukte redundantiecontroles ([SWS_PER_00333]). Als parameter kvs wordt een ara::core::InstanceSpecifier doorgegeven, die refereert aan het ShortName-pad van een overeenkomstige PortPrototype ([SWS_PER_00333]). Het herstel vindt plaats volgens het best-effort-principe; na de operatie kunnen sleutels verouderde of initiële waarden bevatten of geheel verloren zijn ([SWS_PER_00333]).
Hoewel de functie als thread-veilig is gespecificeerd, mislukt de uitvoering met de foutcode PerErrc::kResourceBusy indien de betreffende key-value-opslag geopend is – er dus minimaal één actieve SharedHandle bestaat ([SWS_PER_00052], [SWS_PER_00333]). Dezelfde fout treedt op wanneer andere threads gelijktijdig wijzigende functies aanroepen: UpdatePersistency ([SWS_PER_00357]), CleanUpPersistency ([SWS_PER_00567]), ResetPersistency ([SWS_PER_00358]) of ResetKeyValueStorage ([SWS_PER_00334]). Tijdens het herstel mislukt ook een aanroep van OpenKeyValueStorage met kResourceBusy ([SWS_PER_00052]).
Het resultaat wordt synchroon als ara::core::Result<void> geretourneerd. Naast PerErrc::kResourceBusy zijn de volgende specifieke fouten gedefinieerd ([SWS_PER_00333]):
PerErrc::kStorageNotFound: de doorgegeven identifier past bij geen enkele geconfigureerde interface.
PerErrc::kPhysicalStorageFailure: toegang tot de fysieke opslag mislukt (geen rollback-semantiek).
PerErrc::kOutOfStorageSpace: onvoldoende fysieke opslagruimte voor de herstelde gegevens (geen rollback-semantiek).
PerErrc::kQuotaExceeded: overschrijding van de geconfigureerde maximale lengte (maximumAllowedSize).
PerErrc::kEncryptionFailed en PerErrc::kAuthenticationFailed: fout bij versleuteling of MAC-berekening.
Deze tekst is opgesteld door een AI op basis van de AUTOSAR-specificatie.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 5828fc3d3f00HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie RegisterRecoveryReportCallback in de namespace ara::per ([SWS_PER_00433]) dient voor de registratie van een callback-routine bij de Persistency-component. Deze wordt in veiligheidskritische Adaptive Applications gebruikt om herstelmaatregelen van de Persistency met betrekking tot de correctheid van gepersisteerde gegevens en de betrouwbaarheid van het geheugen te detecteren [SWS_PER_00433].
Parameters en aanroepsemantiek
Als parameter wordt recoveryReportCallback doorgegeven, een std::function die door de Persistency wordt aangeroepen wanneer fouten in de opgeslagen gegevens met behulp van beschikbare redundantie succesvol zijn gecorrigeerd [SWS_PER_00433]. Aan de callback wordt daarbij de volgende contextinformatie doorgegeven [SWS_PER_00433]:
storage: Het pad (shortName) van de betreffende Key-Value Storage of File Storage als ara::core::InstanceSpecifier.
recoveryReportKind: De aard van het herstelrapport (ara::per::RecoveryReportKind).
reportedElements: Een vector van identifiers van de getroffen elementen (ara::core::Vector<ara::core::String>).
reportedInstances: Een vector van de getroffen instanties (ara::core::Vector<std::uint8_t>).
Foutafhandeling en gelijktijdigheid
De functie levert geen retourwaarde op en is gedeclareerd als noexcept; deze geldt als uitzonderingsveilig (exception safe) [SWS_PER_00433]. Eigen foutcodes bestaan niet [SWS_PER_00433]. Wat betreft thread-safety is de interface geclassificeerd als not thread-safe[SWS_PER_00433]. De aanroep zal daarom doorgaans plaatsvinden in de initialisatiefase van de toepassing, voorafgaand aan de start van gelijktijdige geheugentoegangen. Vraag Q-e5b93ea58fb56a1c (open)
Deze gebruiksinstructie is gegenereerd door een AI en is gebaseerd op de specificaties van het AUTOSAR-platform.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 19920ccb9cf9HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De synchrone functie ReloadPersistencyManifest uit de namespace ara::per (gedeclareerd in #include "ara/per/update.h") leest de doelconfiguratie (Target Configuration) van de persistency opnieuw in [SWS_PER_00577]. Ze dient ertoe updates van de Key-Value Storages en File Storages voor te bereiden, nadat door het Update and Config Management (UCM) tijdens de runtime van de Adaptive Application een nieuwe doelconfiguratie is geïnstalleerd [SWS_PER_00577].
Doorgaans controleert de applicatie vooraf met CheckForManifestUpdate[SWS_PER_00576] of er een configuratie-update voorhanden is, en roept vervolgens ReloadPersistencyManifest aan [SWS_PER_00576]. Het opnieuw inlezen werkt de persistente opslagmedia echter nog niet onmiddellijk bij: storages worden pas na het sluiten ervan bijgewerkt – hetzij bij het opnieuw openen, hetzij via een expliciete aanroep van ara::per::UpdatePersistency[SWS_PER_00577]. Interpretatie: reeds geopende opslaggebieden worden door de aanroep vermoedelijk niet automatisch gesloten, zodat de applicatie deze zelf moet sluiten of expliciet moet bijwerken. Vraag Q-16f9dae418feb3fa (open)
De functie accepteert geen parameters en retourneert een ara::core::Result<void>[SWS_PER_00577]. In geval van een fout bevat het resultaat fabrikantspecifieke fouten of een van de volgende foutcodes met rollback-semantiek [SWS_PER_00577]:
kPhysicalStorageFailure: Treedt op wanneer de toegang tot het fysieke geheugen tijdens de leesbewerking mislukt [SWS_PER_00577].
kIntegrityCorrupted: Treedt op wanneer opgeslagen gegevens wegens beschadigde structurele integriteit niet kunnen worden gelezen [SWS_PER_00577].
Wat betreft gelijktijdigheid is de functie gespecificeerd als niet-thread-safe (not thread-safe), maar gedeclareerd als uitzonderingsveilig (exception safe) en noexcept[SWS_PER_00577]. Parallelle aanroepen moeten daarom aan applicatiezijde worden gesynchroniseerd.
Deze gebruiksinstructie is door een AI opgesteld op basis van de specificatie.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f645139d391cHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie ResetAllFiles zet een File Storage synchroon terug naar zijn initiële afleveringstoestand volgens de actuele Target Configuration[SWS_PER_00336]. Na succesvolle uitvoering bevat de opslag uitsluitend de aldaar gedefinieerde bestanden met hun oorspronkelijke inhoud, alsof deze nieuw geïnstalleerd is [SWS_PER_00336].
Gebruik en gelijktijdigheid: Via de parameter fs wordt de instance-identifier van een via PersistencyFileStorageInterface getypeerde PortPrototype doorgegeven [SWS_PER_00336]. Hoewel de functie als thread-safe en exception safe gespecificeerd is, vereist zij exclusieve toegang tot de opslag: Is de opslag momenteel geopend (bijvoorbeeld via een actieve SharedHandle uit OpenFileStorage[SWS_PER_00116]) of wordt deze parallel door UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverAllFiles[SWS_PER_00335] of een verdere aanroep van ResetAllFiles gemodificeerd, dan mislukt de uitvoering [SWS_PER_00336].
Foutafhandeling: De functie retourneert een ara::core::Result<void>[SWS_PER_00336]. Mogelijke foutcodes uit PerErrc zijn:
kResourceBusy: De bestandsopslag is geopend of wordt parallel gemodificeerd (rollback-semantiek) [SWS_PER_00336].
kStorageNotFound: De identifier past bij geen enkele voor de executable geconfigureerde interface [SWS_PER_00336].
kPhysicalStorageFailure of kOutOfStorageSpace: Fysieke opslagfout resp. ontoereikende opslagruimte (geen rollback-semantiek) [SWS_PER_00336].
kEncryptionFailed of kAuthenticationFailed: Fout bij versleuteling of MAC-berekening (rollback-semantiek) [SWS_PER_00336].
Samenspel: Na het terugzetten hebben herstelde bestanden bij statusopvragingen de status FileCreationState::kCreatedDuringReset[SWS_PER_00435] evenals FileModificationState::kModifiedDuringReset[SWS_PER_00436].
Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 48697319880fHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De synchrone functie ResetKeyValueStorage zet een specifieke key-value-storage terug naar zijn initiële toestand [SWS_PER_00334]. Na succesvolle uitvoering bevat de storage uitsluitend die sleutel-waardeparen met hun initiële waarden die via de Target Configuration beschikbaar zijn gesteld; de storage gedraagt zich daarna alsof deze vers vanuit de actuele configuratie is geïnstalleerd [SWS_PER_00334]. Als parameter wordt het kvs-pad als ara::core::InstanceSpecifier doorgegeven, dat de PortPrototype van een geconfigureerde PersistencyKeyValueStorageInterface refereert [SWS_PER_00334].
De functie is gespecificeerd als thread-safe en exception safe, maar is onderworpen aan strikte concurrencyvoorwaarden met betrekking tot geopende storages en globale persistentie-operaties [SWS_PER_00334]:
De aanroep mislukt met PerErrc::kResourceBusy indien de betreffende key-value-storage momenteel geopend is (er dus nog een SharedHandle bestaat, zie [SWS_PER_00052]) of er gelijktijdig een herstelbewerking met RecoverKeyValueStorage[SWS_PER_00333] op dezelfde storage wordt uitgevoerd [SWS_PER_00334].
Eveneens tot kResourceBusy leidt een parallelle uitvoering van de globale operaties UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358] of een gelijktijdige aanroep van ResetKeyValueStorage in een andere thread [SWS_PER_00334].
Als resultaat levert de functie een ara::core::Result<void>[SWS_PER_00334]. In geval van een fout treden naast kResourceBusy de volgende specifieke foutcodes op: PerErrc::kStorageNotFound (ongeldige InstanceSpecifier), PerErrc::kPhysicalStorageFailure (toegangsfout tot het opslagmedium, geen rollback-semantiek), PerErrc::kOutOfStorageSpace (onvoldoende opslagruimte voor initiële waarden, geen rollback-semantiek), PerErrc::kEncryptionFailed (versleutelingsfout) en PerErrc::kAuthenticationFailed (fout bij de MAC-berekening) [SWS_PER_00334].
Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d1720067a24eHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone functie ResetPersistency ([SWS_PER_00358]) uit de header ara/per/update.h dient voor het volledig resetten van alle key-value- en file-storages van een applicatie. Bij aanroep wordt alle persistente inhoud restloos gewist. De storages zelf worden daarbij niet onmiddellijk opnieuw aangemaakt, maar pas bij de eerstvolgende aanroep van ara::per::OpenKeyValueStorage ([SWS_PER_00052]) of ara::per::OpenFileStorage ([SWS_PER_00116]) opnieuw gecreëerd. Bestanden die na de reset opnieuw beschikbaar worden gesteld, krijgen daarbij de aanmaakstatus FileCreationState::kCreatedDuringInstallation ([SWS_PER_00435]).
Foutafhandeling
Als retourwaarde levert de functie een ara::core::Result<void> ([SWS_PER_00358]). Mislukt de toegang tot het fysieke opslagmedium tijdens de operatie, dan retourneert de functie kPhysicalStorageFailure zonder rollback-semantiek. Indien persistente resources bezet zijn of parallel worden gewijzigd, wordt de aanroep met kResourceBusy en actieve rollback-semantiek afgebroken ([SWS_PER_00358]). Daarnaast kunnen fabrikantspecifieke fouten optreden.
Gelijktijdigheid en beperkingen
De interface is gedeclareerd als exception safe, maar expliciet geclassificeerd als not thread-safe ([SWS_PER_00358]). Zij mislukt met kResourceBusy zodra:
er al globale operaties zoals UpdatePersistency ([SWS_PER_00357]) of CleanUpPersistency ([SWS_PER_00567]) worden uitgevoerd,
een individuele storage parallel via RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles ([SWS_PER_00335]) of ResetAllFiles ([SWS_PER_00336]) wordt bewerkt,
of er nog ten minste één actieve SharedHandle van een key-value- of file-storage bestaat ([SWS_PER_00358]).
Zolang ResetPersistency actief is, leiden gelijktijdige pogingen tot openen via OpenKeyValueStorage ([SWS_PER_00052]) of OpenFileStorage ([SWS_PER_00116]) in andere threads eveneens tot kResourceBusy.
Deze tekst is opgesteld door een AI. AUTOSAR-specificaties zijn leidend.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a05074f12eedHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone functie ara::per::UpdatePersistency ([SWS_PER_00357], header ara/per/update.h) actualiseert na de installatie van een nieuwe doelconfiguratie alle key-value- en file-storages van een applicatie. Zij dient ertoe de persistente gegevens van een Adaptive Application tijdens de verificatiefase te actualiseren [SWS_PER_00357]. De functie neemt geen overdrachtsparameters aan en levert een ara::core::Result<void> op [SWS_PER_00357].
Foutafhandeling
In geval van een fout bevat het geretourneerde Result een specifieke foutcode of een fabrikantspecifieke fout [SWS_PER_00357]. Daarbij wordt onderscheid gemaakt tussen bewerkingen met en zonder rollback-semantiek:
Rollback-semantiek: Bij kIntegrityCorrupted, kValidationFailed, kEncryptionFailed, kAuthenticationFailed, kTooManyFiles (overschrijding van maxNumberOfFiles), kQuotaExceeded (overschrijding van MaximumAllowedSize) en kResourceBusy worden uitgevoerde wijzigingen teruggedraaid [SWS_PER_00357].
Geen rollback-semantiek: Bij fysieke opslagfouten (kPhysicalStorageFailure) en onvoldoende fysieke opslagruimte (kOutOfStorageSpace) is geen rollback gegarandeerd [SWS_PER_00357].
Gelijktijdigheid en beperkingen
De functie is gespecificeerd als exceptieveilig (exception safe), maar uitdrukkelijk als niet-thread-veilig (not thread-safe) [SWS_PER_00357]. Een aanroep mislukt met kResourceBusy zodra een SharedHandle van een key-value- of file-storage nog in gebruik is of parallel onderhoudsfuncties zoals CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage[SWS_PER_00333], ResetKeyValueStorage[SWS_PER_00334], RecoverAllFiles[SWS_PER_00335] of ResetAllFiles[SWS_PER_00336] worden uitgevoerd [SWS_PER_00357]. Omgekeerd mislukken gelijktijdige aanroepen van OpenKeyValueStorage[SWS_PER_00052] en OpenFileStorage[SWS_PER_00116] vanuit andere threads tijdens de actualisering eveneens met kResourceBusy.
Samenspel
Wanneer door UCM tijdens runtime een nieuwe doelconfiguratie is geïnstalleerd en deze via ReloadPersistencyManifest[SWS_PER_00577] opnieuw is ingelezen, worden gesloten storages via UpdatePersistency geactualiseerd. Als er vooraf callbacks via RegisterDataUpdateIndication[SWS_PER_00578] of RegisterApplicationDataUpdateCallback[SWS_PER_00356] zijn geregistreerd, vindt de aanroep daarvan synchroon plaats in de context van UpdatePersistency[SWS_PER_00578].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie 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 · Duits origineel