Ermöglicht die persistente Speicherung und Verwaltung von Anwendungsdaten über Schlüssel-Wert- und Dateispeicher.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9cb072b2740aHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht die persistente Speicherung und Verwaltung von Anwendungsdaten über Schlüssel-Wert- und Dateispeicher.
Der Namespace ara::per stellt Schnittstellen für die persistente Datenspeicherung bereit, indem er Adaptive Anwendungen über Instanzbezeichner den Zugriff auf dateibasierte und schlüsselwertbasierte Speicherbereiche ermöglicht ([SWS_PER_00052], [SWS_PER_00116]). Anwendungen verwalten geöffnete Speicher über geteilte Handles, führen bei Manifeständerungen koordinierte Updates durch und können inkonsistente Daten über Wiederherstellungsmechanismen reparieren ([SWS_PER_00333], [SWS_PER_00357]). Während Speicherzugriffe nebenläufig über Handles erfolgen, bedingen administrative Vorgänge wie Updates oder Speicher-Resets die Abwesenheit konkurrierender Zugriffe ([SWS_PER_00311]).
Kontext
Der Namespace ara::per stellt die Schnittstellen der Persistenz-Funktionsgruppe für die AUTOSAR Adaptive Platform bereit. Seine primäre Verantwortung ist die dauerhafte, speicherüberdauernde Speicherung von Anwendungsdaten über Systemstarts und Prozesslebenszyklen hinweg. Das Modul unterscheidet zwei grundlegende Speicherparadigmen: KeyValueStorage für strukturierte Schlüssel-Wert-Paare und FileStorage für dateibasierten Speicherzugriff. Adaptive Anwendungen greifen auf diese Ressourcen über konfigurierte Port-Prototypen mittels ara::core::InstanceSpecifier zu ([SWS_PER_00052], [SWS_PER_00116]).
Wichtige Interaktionspartner des Namespace sind das Update and Configuration Management (UCM), das während der Laufzeit aktualisierte Zielkonfigurationen (Target Configuration) bereitstellen kann ([SWS_PER_00576], [SWS_PER_00577]), sowie das physische Speichermedium, auf dem ara::per Konsistenz, Redundanz und Datensicherheit gewährleistet ([SWS_PER_00311]).
Der Zugriff auf Speicherobjekte wird über Handle-Abstraktionen geregelt. Das Öffnen eines Speichers über OpenKeyValueStorage oder OpenFileStorage erzeugt ein SharedHandle ([SWS_PER_00052], [SWS_PER_00116]). Da mehrere Threads nebenläufig auf denselben Speicher zugreifen können, wird die physische Ressource nicht zwangsläufig geschlossen, wenn ein einzelnes SharedHandle seinen Gültigkeitsbereich verlässt; das Schließen erfolgt erst, wenn sämtliche referenzierenden SharedHandle-Instanzen abgebaut sind ([SWS_PER_00052], [SWS_PER_00116]).
Für Dateien innerhalb eines FileStorage werden Erzeugungs- und Modifikationszustände detailliert nachverfolgt. Die Enumeration FileCreationState bildet ab, ob eine Datei bei der Installation (kCreatedDuringInstallation), während eines Updates (kCreatedDuringUpdate), durch einen Reset (kCreatedDuringReset), infolge einer Wiederherstellung (kCreatedDuringRecovery) oder durch die Anwendung selbst (kCreatedByApplication) angelegt wurde ([SWS_PER_00435]). Analog spiegelt FileModificationState wider, wann und durch welchen Vorgang eine Datei zuletzt geändert wurde ([SWS_PER_00436]).
Zur Verwaltung von Ausgangszuständen stellt der Namespace Reset-Funktionen bereit: ResetKeyValueStorage ([SWS_PER_00334]) und ResetAllFiles ([SWS_PER_00336]) setzen einzelne Speicher auf die Werte zurück, die im Manifest initial definiert wurden. Demgegenüber leert die globale Operation ResetPersistency ([SWS_PER_00358]) sämtliche Schlüssel-Wert- und Dateispeicher vollständig; deren Wiedererzeugung geschieht beim nächsten Aufruf von OpenFileStorage oder OpenKeyValueStorage.
Ein typischer Anwendungsablauf umfasst die Prüfung auf Konfigurationsaktualisierungen, das Einspielen von Datenmigrationen und den nachfolgenden Speicherzugriff:
Vor oder während des Regelbetriebs prüft die Anwendung mittels CheckForManifestUpdate, ob UCM eine neue Zielkonfiguration installiert hat ([SWS_PER_00576]). Ist dies der Fall, wird das neue Manifest über ReloadPersistencyManifest eingelesen ([SWS_PER_00577]). Während der anschließenden Verifikationsphase stößt die Anwendung UpdatePersistency an ([SWS_PER_00357]). Um versionsspezifische Datenmigrationen zu steuern, registriert die Anwendung vorab über RegisterApplicationDataUpdateCallback eine Rückruffunktion, die über ältere Vertragsversionen informiert wird und anwendungseigene Migrationsschritte ausführt ([SWS_PER_00356]). Zusätzlich können Elementänderungen mittels RegisterDataUpdateIndication überwacht werden ([SWS_PER_00578]). Nach Abschluss des Updates entfernt CleanUpPersistency veraltete Sicherungen und redundante Altbestände ([SWS_PER_00567]).
Für den regulären Zugriff öffnet die Anwendung die Zielressource über OpenKeyValueStorage ([SWS_PER_00052]) oder OpenFileStorage ([SWS_PER_00116]). Dateizugriffe im FileStorage werden über Bitmasken der Enumeration OpenMode gesteuert (z. B. kAtTheBeginning, kAtTheEnd, kTruncate, kAppend), die über die Operatoren operator| ([SWS_PER_00144]) und operator|= ([SWS_PER_00434]) kombiniert werden ([SWS_PER_00147]). Positionierungen erfolgen relativ zu Origin (kBeginning, kCurrent, kEnd) ([SWS_PER_00146]). Die aktuell belegte Speichergröße kann zur Laufzeit über GetCurrentKeyValueStorageSize ([SWS_PER_00405]) und GetCurrentFileStorageSize ([SWS_PER_00406]) ermittelt werden.
Fehler werden im Namespace standardisiert über die Enumeration PerErrc ([SWS_PER_00311]) in Verbindung mit PerErrorDomain ([SWS_PER_00352]) und MakeErrorCode ([SWS_PER_00351]) signalisiert. Die deklarierte Klasse PerException dürfte als C++-Ausnahmetyp für Umgebungen dienen, in denen Fehler nicht über ara::core::Result, sondern über Exceptions behandelt werden (Interpretation). Frage Q-263982a4a4dae284 (offen)
Zentrale Fehlerszenarien umfassen:
Konfigurations- und Adressierungsfehler: Entspricht der übergebene InstanceSpecifier keinem im Modell konfigurierten Port-Interface, schlägt das Öffnen mit PerErrc::kStorageNotFound fehl ([SWS_PER_00052], [SWS_PER_00116], [SWS_PER_00311]). Dateizugriffe auf nicht vorhandene Dateien erzeugen PerErrc::kFileNotFound ([SWS_PER_00311]).
Integritätsverlust und Wiederherstellung: Bei strukturellen Beschädigungen (PerErrc::kIntegrityCorrupted) oder fehlgeschlagenen Redundanzprüfungen (PerErrc::kValidationFailed) ermöglicht ara::per eine Best-Effort-Wiederherstellung über RecoverKeyValueStorage ([SWS_PER_00333]) bzw. RecoverAllFiles ([SWS_PER_00335]). Über RegisterRecoveryReportCallback ([SWS_PER_00433]) können sicherheitsrelevante Anwendungen Korrekturmaßnahmen anhand von RecoveryReportKind (z. B. kKeyValueStorageRecovered, kFileRecovered) automatisiert protokollieren ([SWS_PER_00432]).
Speichergrenzen und physische Fehler: Werden Kontingente oder physische Kapazitäten überschritten, werden PerErrc::kOutOfStorageSpace, PerErrc::kQuotaExceeded oder PerErrc::kTooManyFiles gemeldet ([SWS_PER_00311]). Hardware- oder Dateisystemfehler resultieren in PerErrc::kPhysicalStorageFailure ([SWS_PER_00311]).
Sicherheit und Zugriffsmodi: Schlagen kryptografische Verifikationen oder Berechnungen fehl, gibt das Modul PerErrc::kEncryptionFailed oder PerErrc::kAuthenticationFailed zurück ([SWS_PER_00311]). Schreibversuche auf schreibgeschützte Speicherbereiche werden mit PerErrc::kIllegalWriteAccess abgewiesen ([SWS_PER_00311]).
Dieser Leitfaden basiert ausschließlich auf der Spezifikation von AUTOSAR Adaptive R25-11.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Klassendiagramm
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b1f49db8b33dHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Funktion CheckForManifestUpdate aus dem Header ara/per/update.h prüft im Namensraum ara::per, ob Aktualisierungen der Persistency Target Configuration vorliegen [SWS_PER_00576]. Sie dient dazu, Konfigurationsänderungen zu erkennen, die vom Update and Configuration Management (UCM) eingespielt wurden, während die Persistenz nutzende adaptive Anwendung bereits läuft [SWS_PER_00576]. Die Funktion nimmt keine Parameter entgegen und liefert ein ara::core::Result<bool> zurück: true, wenn die Konfiguration seit dem letzten Auslesen aktualisiert wurde, oder false, wenn sie unverändert geblieben ist [SWS_PER_00576].
Fehlerbehandlung und Nebenläufigkeit
Die Funktion ist als noexcept deklariert und ausnahmesicher (exception safe), jedoch nicht threadsicher (not thread-safe) [SWS_PER_00576]. Im Fehlerfall enthält das Ergebnis entweder herstellerspezifische Fehler oder einen der folgenden Fehlercodes [SWS_PER_00576]:
kPhysicalStorageFailure: Tritt auf, wenn der Zugriff auf den physikalischen Speicher während der Überprüfung fehlschlägt [SWS_PER_00576].
kIntegrityCorrupted: Tritt auf, wenn hinterlegte Daten aufgrund beschädigter struktureller Integrität nicht gelesen werden können [SWS_PER_00576].
Zusammenspiel
Wird eine Aktualisierung festgestellt (Rückgabewert true), muss die Anwendung anschließend ara::per::ReloadPersistencyManifest aufrufen, um die geänderte Target Configuration tatsächlich neu einzulesen [SWS_PER_00576].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe anhand der Spezifikation.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ce1bea3039deHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Funktion CleanUpPersistency aus ara/per/update.h dient dem Entfernen von Sicherungsdaten (Backup Data) und weiteren ungenutzten Daten über sämtliche Key-Value- und File-Storages einer Instanz hinweg [SWS_PER_00567]. Sie nimmt keine Parameter entgegen und gibt das Ergebnis über den Rückgabetyp ara::core::Result<void> zurück [SWS_PER_00567].
Nebenläufigkeit und Einschränkungen
Die Funktion ist nicht threadsicher (not thread-safe) und verlangt exklusiven Zugriff auf alle Speicherressourcen [SWS_PER_00567]. Ist noch ein ara::per::SharedHandle eines Key-Value- oder File-Storage geöffnet, schlägt der Aufruf mit kResourceBusy fehl [SWS_PER_00567]. Ebenso führen parallel laufende Operationen wie UpdatePersistency, ResetPersistency, RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles oder ResetAllFiles zum Fehlercode 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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 14078ca86bfbHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Funktion ara::per::OpenFileStorage öffnet einen Dateispeicher für persistente Daten und stellt diesen über ein geteiltes Zugriffshandle bereit [SWS_PER_00116]. Als Parameter erwartet sie eine Referenz auf einen ara::core::InstanceSpecifier, welcher den shortName-Pfad eines durch ein PersistencyFileStorageInterface typisierten Port-Prototyps angibt. Der Rückgabewert ist ein ara::core::Result<ara::core::SharedHandle<FileStorage>>[SWS_PER_00116].
Hinsichtlich der Nebenläufigkeit ist die Funktion thread-safe und exception-safe spezifiziert [SWS_PER_00116]. Da mehrere Threads parallel auf dieselbe Dateispeicher-Instanz zugreifen können, wird der physische Speicher nicht zwingend geschlossen, wenn ein einzelnes SharedHandle den Gültigkeitsbereich verlässt. Die Schließung erfolgt erst dann, wenn alle referenzierenden Handles out-of-scope gegangen sind [SWS_PER_00116].
Im Fehlerfall enthält das Result Fehlercodes der Enumeration PerErrc oder herstellerspezifische Fehler [SWS_PER_00116]:
PerErrc::kResourceBusy: Wird zurückgegeben, wenn zeitgleich administrative Operationen wie CleanUpPersistency, ResetPersistency, RecoverAllFiles oder ResetAllFiles ausgeführt werden. Während UpdatePersistency aktiv ist, tritt dieser Fehler auf, falls der Aufruf außerhalb des über RegisterApplicationDataUpdateCallback registrierten Callbacks oder mit einem abweichenden Bezeichner erfolgt [SWS_PER_00116], [SWS_PER_00356].
Konfigurations- und Zugriffsfehler: kStorageNotFound bei nicht konfigurierter Instanz, kPhysicalStorageFailure bei Fehlern des physischen Speichers sowie kIntegrityCorrupted, kValidationFailed, kEncryptionFailed und kAuthenticationFailed bei Integritäts-, Prüf- oder Entschlüsselungsproblemen [SWS_PER_00116].
Kapazitätsgrenzen bei impliziten Updates: kOutOfStorageSpace, kTooManyFiles oder kQuotaExceeded[SWS_PER_00116].
Im Zusammenspiel mit dem Modul bewirkt ein vorheriges Zurücksetzen mittels ResetPersistency, dass gelöschte Dateispeicher beim nächsten Aufruf von OpenFileStorage neu angelegt werden [SWS_PER_00358]. Werden während des Öffnens Daten aktualisiert, wird ein über RegisterDataUpdateIndication registrierter Indication-Callback direkt im Kontext von OpenFileStorage aufgerufen [SWS_PER_00578].
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR Adaptive R25-11 generiert.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d24427922381Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung und Lebenszyklus
Die synchrone Funktion OpenKeyValueStorage öffnet einen Key-Value-Speicher und ist als thread-safe sowie noexcept spezifiziert [SWS_PER_00052]. Als Parameter kvs wird ein ara::core::InstanceSpecifier übergeben, der den Pfad eines durch ein PersistencyKeyValueStorageInterface typisierten PortPrototype referenziert. Die Rückgabe erfolgt als ara::core::Result<SharedHandle<KeyValueStorage>>. Da mehrere Threads denselben Speicher nebenläufig öffnen können, schließt Persistency den physischen Speicher erst, wenn alle referenzierenden SharedHandle-Instanzen ihren Gültigkeitsbereich verlassen haben [SWS_PER_00052].
Fehlerbehandlung und Nebenläufigkeit
Im Fehlerfall liefert das Result spezifische Fehlercodes der Persistency-Fehlerdomäne [SWS_PER_00052]:
PerErrc::kStorageNotFound: Der Bezeichner passt zu keinem konfigurierten Interface der Executable.
PerErrc::kResourceBusy: Tritt auf, wenn konkurrierend CleanUpPersistency, ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage oder ResetKeyValueStorage für diesen Speicher ausgeführt werden. Während UpdatePersistency ist der Aufruf nur innerhalb des über RegisterApplicationDataUpdateCallback registrierten Callbacks mit dem dort übergebenen Instanzbezeichner zulässig [SWS_PER_00356].
PerErrc::kPhysicalStorageFailure, PerErrc::kIntegrityCorrupted, PerErrc::kValidationFailed, PerErrc::kEncryptionFailed und PerErrc::kAuthenticationFailed bei Defekten, Validierungs- oder Krypto-Fehlern.
PerErrc::kOutOfStorageSpace und PerErrc::kQuotaExceeded bei unzureichendem Speicherplatz oder Quotenüberschreitung während eines impliziten Updates.
Zusammenspiel
Wurden alle Daten zuvor mittels ResetPersistency gelöscht, wird der Speicher beim nächsten Aufruf von OpenKeyValueStorage automatisch neu erzeugt [SWS_PER_00358]. Nach dem Öffnen können ungespeicherte Modifikationen über DiscardPendingChanges auf den Zustand des Öffnens zurückgesetzt werden [SWS_PER_00365]. Zudem kann das Öffnen die Ausführung von Callbacks auslösen, die über RegisterDataUpdateIndication registriert wurden [SWS_PER_00578].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ca84cc440ba3Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion RecoverAllFiles führt eine Wiederherstellung eines dateibasierten Speichers (File Storage) einschließlich aller darin abgelegten Dateien durch, wenn Redundanzprüfungen fehlschlagen [SWS_PER_00335]. Der Aufruf erfolgt synchron unter Angabe des InstanceSpecifier für den konfigurierten Port-Prototyp und liefert ein ara::core::Result<void> zurück [SWS_PER_00335].
Die Wiederherstellung arbeitet nach dem Best-Effort-Prinzip: Nach Abschluss können Dateien veraltete Inhalte aufweisen, auf ihren Initialzustand zurückgesetzt sein oder ganz verloren gehen [SWS_PER_00335]. Schlägt der Zugriff auf das Speichermedium fehl (PerErrc::kPhysicalStorageFailure) oder reicht der Speicherplatz nicht aus (PerErrc::kOutOfStorageSpace), existiert keine Rollback-Garantie [SWS_PER_00335]. Tritt ein Fehler bei Verschlüsselung (PerErrc::kEncryptionFailed), Integritätsprüfung (PerErrc::kAuthenticationFailed) oder Speichergrößenbegrenzung (PerErrc::kQuotaExceeded) auf, greift die Rollback-Semantik [SWS_PER_00335]. Passt der Bezeichner zu keiner konfigurierten Schnittstelle, resultiert dies in PerErrc::kStorageNotFound[SWS_PER_00335].
Obwohl die Funktion threadsicher ist, schlägt die Ausführung mit PerErrc::kResourceBusy fehl, solange der Speicher geöffnet ist oder ein aktiver Shared-Handle vorliegt [SWS_PER_00335], [SWS_PER_00116]. Ebenso blockieren parallele Ausführungen von ResetAllFiles[SWS_PER_00336] für denselben Speicher sowie die globalen Aktualisierungsoperationen UpdatePersistency[SWS_PER_00357], ResetPersistency[SWS_PER_00358] und CleanUpPersistency[SWS_PER_00567] den Aufruf [SWS_PER_00335].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikationen erstellt.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ba269bfce693Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Funktion RecoverKeyValueStorage im Namensraum ara::per dient der Wiederherstellung eines Key-Value-Speichers nach fehlgeschlagenen Redundanzprüfungen ([SWS_PER_00333]). Als Parameter kvs wird ein ara::core::InstanceSpecifier übergeben, der den ShortName-Pfad eines entsprechenden PortPrototype referenziert ([SWS_PER_00333]). Die Wiederherstellung erfolgt nach dem Best-Effort-Prinzip; nach dem Vorgang können Schlüssel veraltete oder initiale Werte aufweisen oder gänzlich verloren sein ([SWS_PER_00333]).
Obwohl die Funktion als threadsicher spezifiziert ist, schlägt die Ausführung mit dem Fehlercode PerErrc::kResourceBusy fehl, falls der betreffende Key-Value-Speicher geöffnet ist – also mindestens ein aktives SharedHandle existiert ([SWS_PER_00052], [SWS_PER_00333]). Der gleiche Fehler tritt auf, wenn andere Threads gleichzeitig modifizierende Funktionen aufrufen: UpdatePersistency ([SWS_PER_00357]), CleanUpPersistency ([SWS_PER_00567]), ResetPersistency ([SWS_PER_00358]) oder ResetKeyValueStorage ([SWS_PER_00334]). Während der Wiederherstellung scheitert auch ein Aufruf von OpenKeyValueStorage mit kResourceBusy ([SWS_PER_00052]).
Das Ergebnis wird synchron als ara::core::Result<void> zurückgegeben. Neben PerErrc::kResourceBusy sind folgende spezifische Fehler definiert ([SWS_PER_00333]):
PerErrc::kStorageNotFound: Der übergebene Bezeichner passt zu keiner konfigurierten Schnittstelle.
PerErrc::kPhysicalStorageFailure: Zugriff auf den physischen Speicher schlägt fehl (keine Rollback-Semantik).
PerErrc::kOutOfStorageSpace: Unzureichender physischer Speicherplatz für die wiederhergestellten Daten (keine Rollback-Semantik).
PerErrc::kQuotaExceeded: Überschreitung der konfigurierten Maximallänge (maximumAllowedSize).
PerErrc::kEncryptionFailed und PerErrc::kAuthenticationFailed: Fehler bei Verschlüsselung oder MAC-Berechnung.
Dieser Text wurde von einer KI basierend auf der AUTOSAR-Spezifikation erstellt.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5828fc3d3f00HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion RegisterRecoveryReportCallback im Namensraum ara::per ([SWS_PER_00433]) dient der Registrierung einer Callback-Routine bei der Persistency-Komponente. Sie wird in sicherheitsgerichteten Adaptive Applications genutzt, um Korrekturmaßnahmen der Persistency bezüglich der Korrektheit persistierter Daten sowie der Zuverlässigkeit des Speichers zu erkennen [SWS_PER_00433].
Parameter und Aufrufsemantik
Als Parameter wird recoveryReportCallback übergeben, eine std::function, die von der Persistency aufgerufen wird, wenn Fehler in den gespeicherten Daten unter Nutzung verfügbarer Redundanz erfolgreich korrigiert wurden [SWS_PER_00433]. Dem Callback werden dabei folgende Kontextinformationen übergeben [SWS_PER_00433]:
storage: Der Pfad (shortName) des betroffenen Key-Value Storage oder File Storage als ara::core::InstanceSpecifier.
recoveryReportKind: Die Art des Wiederherstellungsberichts (ara::per::RecoveryReportKind).
reportedElements: Ein Vektor von Bezeichnern der betroffenen Elemente (ara::core::Vector<ara::core::String>).
reportedInstances: Ein Vektor der betroffenen Instanzen (ara::core::Vector<std::uint8_t>).
Fehlerbehandlung und Nebenläufigkeit
Die Funktion liefert keinen Rückgabewert und ist als noexcept deklariert; sie gilt als ausnahmesicher (exception safe) [SWS_PER_00433]. Eigene Fehlercodes existieren nicht [SWS_PER_00433]. Hinsichtlich der Thread-Sicherheit ist die Schnittstelle als not thread-safe eingestuft [SWS_PER_00433]. Der Aufruf dürfte daher typischerweise in der Initialisierungsphase der Anwendung vor dem Start nebenläufiger Speicherzugriffe erfolgen. Frage Q-e5b93ea58fb56a1c (offen)
Dieser Verwendungshinweis wurde von einer KI erstellt und basiert auf den Spezifikationen der AUTOSAR-Plattform.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 19920ccb9cf9HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Funktion ReloadPersistencyManifest aus dem Namespace ara::per (deklariert in #include "ara/per/update.h") liest die Zielkonfiguration (Target Configuration) der Persistenz neu ein [SWS_PER_00577]. Sie dient dazu, Aktualisierungen der Key-Value Storages und File Storages vorzubereiten, nachdem durch das Update and Config Management (UCM) während der Laufzeit der Adaptive Application eine neue Zielkonfiguration installiert wurde [SWS_PER_00577].
Typischerweise prüft die Anwendung vorab mit CheckForManifestUpdate[SWS_PER_00576], ob eine Konfigurationsaktualisierung vorliegt, und ruft anschließend ReloadPersistencyManifest auf [SWS_PER_00576]. Das erneute Einlesen aktualisiert die persistenten Speicher jedoch noch nicht sofort: Storages werden erst nach ihrem Schließen aktualisiert – entweder beim erneuten Öffnen oder über einen expliziten Aufruf von ara::per::UpdatePersistency[SWS_PER_00577]. Interpretation: Bereits geöffnete Speicherbereiche werden durch den Aufruf vermutlich nicht automatisch geschlossen, sodass die Anwendung diese selbst schließen oder explizit aktualisieren muss. Frage Q-16f9dae418feb3fa (offen)
Die Funktion nimmt keine Parameter entgegen und gibt ein ara::core::Result<void> zurück [SWS_PER_00577]. Im Fehlerfall enthält das Ergebnis herstellerspezifische Fehler oder einen der folgenden Fehlercodes mit Rollback-Semantik [SWS_PER_00577]:
kPhysicalStorageFailure: Tritt auf, wenn der Zugriff auf den physischen Speicher während des Lesevorgangs fehlschlägt [SWS_PER_00577].
kIntegrityCorrupted: Tritt auf, wenn gespeicherte Daten wegen beschädigter struktureller Integrität nicht gelesen werden können [SWS_PER_00577].
Hinsichtlich der Nebenläufigkeit ist die Funktion als nicht threadsicher (not thread-safe) spezifiziert, jedoch als ausnahmesicher (exception safe) und noexcept deklariert [SWS_PER_00577]. Parallele Aufrufe müssen daher anwendungsseitig synchronisiert werden.
Dieser Verwendungshinweis wurde von einer KI auf Basis der Spezifikation erstellt.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f645139d391cHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion ResetAllFiles setzt einen File Storage synchron auf seinen initialen Auslieferungszustand gemäß der aktuellen Target Configuration zurück [SWS_PER_00336]. Nach erfolgreicher Ausführung enthält der Speicher ausschließlich die dort definierten Dateien mit ihren ursprünglichen Inhalten, als wäre er neu installiert worden [SWS_PER_00336].
Verwendung und Nebenläufigkeit: Über den Parameter fs wird der Instanzbezeichner eines über PersistencyFileStorageInterface typisierten PortPrototype übergeben [SWS_PER_00336]. Obwohl die Funktion als thread-safe und exception safe spezifiziert ist, setzt sie exklusiven Speicherzugriff voraus: Ist der Speicher aktuell geöffnet (beispielsweise über ein aktives SharedHandle aus OpenFileStorage[SWS_PER_00116]) oder wird er parallel durch UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverAllFiles[SWS_PER_00335] oder einen weiteren Aufruf von ResetAllFiles modifiziert, schlägt die Ausführung fehl [SWS_PER_00336].
Fehlerbehandlung: Die Funktion gibt ein ara::core::Result<void> zurück [SWS_PER_00336]. Mögliche Fehlercodes aus PerErrc sind:
kResourceBusy: Der Dateispeicher ist geöffnet oder wird parallel modifiziert (Rollback-Semantik) [SWS_PER_00336].
kStorageNotFound: Der Bezeichner passt zu keinem für das Executable konfigurierten Interface [SWS_PER_00336].
kPhysicalStorageFailure oder kOutOfStorageSpace: Physikalischer Speicherfehler bzw. unzureichender Speicherplatz (keine Rollback-Semantik) [SWS_PER_00336].
kEncryptionFailed oder kAuthenticationFailed: Fehler bei Verschlüsselung oder MAC-Berechnung (Rollback-Semantik) [SWS_PER_00336].
Zusammenspiel: Nach dem Zurücksetzen besitzen wiederhergestellte Dateien bei Zustandsabfragen den Status FileCreationState::kCreatedDuringReset[SWS_PER_00435] sowie FileModificationState::kModifiedDuringReset[SWS_PER_00436].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 48697319880fHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Funktion ResetKeyValueStorage setzt einen spezifischen Key-Value-Storage auf seinen Initialzustand zurück [SWS_PER_00334]. Nach erfolgreicher Ausführung enthält der Speicher ausschließlich diejenigen Schlüssel-Wert-Paare mit ihren Initialwerten, die über die Target Configuration bereitgestellt wurden; der Speicher verhält sich danach so, als wäre er aus der aktuellen Konfiguration frisch installiert worden [SWS_PER_00334]. Als Parameter wird der kvs-Pfad als ara::core::InstanceSpecifier übergeben, der den PortPrototype einer konfigurierten PersistencyKeyValueStorageInterface referenziert [SWS_PER_00334].
Die Funktion ist als thread-safe und exception safe spezifiziert, unterliegt jedoch strengen Nebenläufigkeitsbedingungen bezüglich geöffneter Speicher und globaler Persistenzoperationen [SWS_PER_00334]:
Der Aufruf schlägt mit PerErrc::kResourceBusy fehl, falls der betreffende Key-Value-Storage aktuell geöffnet ist (also noch ein SharedHandle existiert, siehe [SWS_PER_00052]) oder zeitgleich eine Wiederherstellung mittels RecoverKeyValueStorage[SWS_PER_00333] auf demselben Speicher ausgeführt wird [SWS_PER_00334].
Ebenfalls zu kResourceBusy führt eine parallele Ausführung der globalen Operationen UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358] oder ein nebenläufiger Aufruf von ResetKeyValueStorage in einem anderen Thread [SWS_PER_00334].
Als Ergebnis liefert die Funktion ein ara::core::Result<void>[SWS_PER_00334]. Im Fehlerfall treten neben kResourceBusy folgende spezifische Fehlercodes auf: PerErrc::kStorageNotFound (ungültiger InstanceSpecifier), PerErrc::kPhysicalStorageFailure (Zugriffsfehler auf das Speichermedium, keine Rollback-Semantik), PerErrc::kOutOfStorageSpace (unzureichender Speicherplatz für Initialwerte, keine Rollback-Semantik), PerErrc::kEncryptionFailed (Verschlüsselungsfehler) sowie PerErrc::kAuthenticationFailed (Fehler bei der MAC-Berechnung) [SWS_PER_00334].
Dieser Verwendungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d1720067a24eHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Funktion ResetPersistency ([SWS_PER_00358]) aus dem Header ara/per/update.h dient dem vollständigen Zurücksetzen aller Key-Value- und File-Storages einer Anwendung. Beim Aufruf werden sämtliche persistenten Inhalte restlos gelöscht. Die Speicher selbst werden dabei nicht unmittelbar neu erzeugt, sondern erst beim jeweils nächsten Aufruf von ara::per::OpenKeyValueStorage ([SWS_PER_00052]) oder ara::per::OpenFileStorage ([SWS_PER_00116]) wieder angelegt. Dateien, die nach dem Reset neu bereitgestellt werden, erhalten dabei den Erstellungsstatus FileCreationState::kCreatedDuringInstallation ([SWS_PER_00435]).
Fehlerbehandlung
Als Rückgabewert liefert die Funktion ein ara::core::Result<void> ([SWS_PER_00358]). Schlägt der Zugriff auf das physische Speichermedium während der Operation fehl, gibt die Funktion kPhysicalStorageFailure ohne Rollback-Semantik zurück. Falls persistente Ressourcen belegt sind oder parallel modifiziert werden, wird der Aufruf mit kResourceBusy und aktiver Rollback-Semantik abgebrochen ([SWS_PER_00358]). Darüber hinaus können herstellerspezifische Fehler auftreten.
Nebenläufigkeit und Einschränkungen
Die Schnittstelle ist als exception safe deklariert, aber explizit als not thread-safe eingestuft ([SWS_PER_00358]). Sie schlägt mit kResourceBusy fehl, sobald:
bereits globale Operationen wie UpdatePersistency ([SWS_PER_00357]) oder CleanUpPersistency ([SWS_PER_00567]) ausgeführt werden,
ein einzelner Speicher parallel über RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles ([SWS_PER_00335]) oder ResetAllFiles ([SWS_PER_00336]) bearbeitet wird,
oder noch mindestens ein aktiver SharedHandle eines Key-Value- oder File-Storage existiert ([SWS_PER_00358]).
Solange ResetPersistency läuft, führen zeitgleiche Öffnungsversuche über OpenKeyValueStorage ([SWS_PER_00052]) oder OpenFileStorage ([SWS_PER_00116]) in anderen Threads ebenfalls zu kResourceBusy.
Dieser Text wurde von einer KI erstellt. AUTOSAR-Spezifikationen sind maßgeblich.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a05074f12eedHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Funktion ara::per::UpdatePersistency ([SWS_PER_00357], Header ara/per/update.h) aktualisiert nach der Installation einer neuen Zielkonfiguration sämtliche Key-Value- und File-Storages einer Anwendung. Sie dient dazu, die persistenten Daten einer Adaptive Application während der Verifikationsphase zu aktualisieren [SWS_PER_00357]. Die Funktion nimmt keine Übergabeparameter entgegen und liefert ein ara::core::Result<void> zurück [SWS_PER_00357].
Fehlerbehandlung
Im Fehlerfall enthält das zurückgegebene Result einen spezifischen Fehlercode oder einen herstellerspezifischen Fehler [SWS_PER_00357]. Dabei wird zwischen Operationen mit und ohne Rollback-Semantik unterschieden:
Rollback-Semantik: Bei kIntegrityCorrupted, kValidationFailed, kEncryptionFailed, kAuthenticationFailed, kTooManyFiles (Überschreitung von maxNumberOfFiles), kQuotaExceeded (Überschreitung von MaximumAllowedSize) sowie kResourceBusy werden vorgenommene Änderungen zurückgesetzt [SWS_PER_00357].
Keine Rollback-Semantik: Bei physischen Speicherfehlern (kPhysicalStorageFailure) sowie unzureichendem physischem Speicherplatz (kOutOfStorageSpace) ist kein Rollback garantiert [SWS_PER_00357].
Nebenläufigkeit und Einschränkungen
Die Funktion ist als ausnahmesicher (exception safe), aber ausdrücklich als nicht threadsicher (not thread-safe) spezifiziert [SWS_PER_00357]. Ein Aufruf scheitert mit kResourceBusy, sobald ein SharedHandle eines Key-Value- oder File-Storages noch in Verwendung ist oder parallel Wartungsfunktionen wie CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage[SWS_PER_00333], ResetKeyValueStorage[SWS_PER_00334], RecoverAllFiles[SWS_PER_00335] oder ResetAllFiles[SWS_PER_00336] ausgeführt werden [SWS_PER_00357]. Umgekehrt schlagen gleichzeitige Aufrufe von OpenKeyValueStorage[SWS_PER_00052] und OpenFileStorage[SWS_PER_00116] aus anderen Threads während der Aktualisierung ebenfalls mit kResourceBusy fehl.
Zusammenspiel
Wurde durch UCM im laufenden Betrieb eine neue Zielkonfiguration installiert und diese über ReloadPersistencyManifest[SWS_PER_00577] neu eingelesen, werden geschlossene Speicher über UpdatePersistency aktualisiert. Wurden zuvor Callbacks über RegisterDataUpdateIndication[SWS_PER_00578] oder RegisterApplicationDataUpdateCallback[SWS_PER_00356] hinterlegt, erfolgt deren Aufruf synchron im Kontext von UpdatePersistency[SWS_PER_00578].
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
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-medium· 2026-10-13