DEENESPTFRRUARHIKOZHNL

klasse ara::per::ReadWriteAccessor

[SWS_PER_00343] Upstream: RS_PER_00004, RS_AP_00122, RS_AP_00146

class ReadWriteAccessor final :               public ReadAccessor, public WriteAccessor {...};

ReadWriteAccessor is used to read and write file data. It combines the capabilities of the ReadAccessor with the WriteAccessor.

Header-Datei#include "ara/per/read_write_accessor.h"
Forwarding-Header#include "ara/per/per_fwd.h"
Scopenamespace ara::per
Basisklasse(n)ReadAccessor, WriteAccessor

User GuideAI-GEGENEREERD

Maakt het gecombineerd lezen en schrijven van bestandsgegevens via een gemeenschappelijke toegangsinterface mogelijk.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 6c41c48fc5a7 Herkomst Open vragen (3)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Maakt het gecombineerd lezen en schrijven van bestandsgegevens via een gemeenschappelijke toegangsinterface mogelijk.

De klasse ara::per::ReadWriteAccessor combineert de interfaces van ReadAccessor en WriteAccessor om het lezen en schrijven van bestandsgegevens in het AUTOSAR Adaptive Platform via een gemeenschappelijk object mogelijk te maken. Een directe instantiëring via de standaardconstructor is niet toegestaan, aangezien deze expliciet is verwijderd [SWS_PER_00462]. Bij het vernietigen van de instantie garandeert de als noexcept gedeclareerde destructor volledige uitzonderingsveiligheid, maar is uitdrukkelijk niet als thread-safe gespecificeerd en vereist daarom gesynchroniseerde toegang [SWS_PER_00598].

Context

De klasse ara::per::ReadWriteAccessor vormt in de module per (Persistency) van het AUTOSAR Adaptive Platform de centrale interface om bestandsgegevens zowel te lezen als te schrijven. Deze bundelt de functionaliteiten van de gescheiden lees- en schrijftoegang door de mogelijkheden van de basisklassen ReadAccessor en WriteAccessor samen te brengen. De klassedeclaratie vindt plaats via het headerbestand ara/per/read_write_accessor.h [SWS_PER_00462].

In de typearchitectuur is ReadWriteAccessor via meervoudige overerving gedefinieerd als subklasse van ReadAccessor en WriteAccessor en gemarkeerd met de identificator final. Dit voorkomt verdere afleiding door applicatieontwikkelaars en waarborgt dat de gecombineerde toegangssemantiek ongewijzigd blijft. Als interactiepartners fungeren derhalve de twee gespecialiseerde basisklassen, waarvan de gezamenlijke interfacecontracten op een uniforme toegangslaag voor bestanden worden geprojecteerd.

diag_kontext ReadWriteAccessor ReadWriteAccessor ReadAccessor ReadAccessor ReadWriteAccessor->ReadAccessor erbt von WriteAccessor WriteAccessor ReadWriteAccessor->WriteAccessor erbt von

Contextdiagram: overervingshiërarchie en rolrelatie tussen ReadWriteAccessor, ReadAccessor en WriteAccessor. Bronnen: [SWS_PER_00462], [SWS_PER_00598]

Levenscyclus

De levenscyclus van een instantie van ara::per::ReadWriteAccessor is onderworpen aan strikte structurele voorschriften. Conform [SWS_PER_00462] is de parameterloze standaardconstructor expliciet verwijderd (ReadWriteAccessor() = delete;). Een directe creatie zonder context of parameters is daarom niet toegestaan. Uit architecturaal oogpunt (interpretatie) worden instanties van deze klasse vermoedelijk typisch beschikbaar gesteld door bovengeschikte beheerfuncties of creatiemechanismen van het persistentiesubsysteem, zodra een bestand voor gecombineerd lees- en schrijfbedrijf wordt geopend. Vraag Q-9b390ab33102d524 (open)

Het vrijgeven van de instantie vindt plaats via de destructor ~ReadWriteAccessor(), die als final en noexcept is gedeclareerd [SWS_PER_00598]. Het beëindigen van de objectlevenscyclus vereist bijzondere aandacht met betrekking tot gelijktijdigheid: de destructor is in de specificatie expliciet als niet thread-safe („not thread-safe”) geclassificeerd [SWS_PER_00598]. De aanroepende software moet zodoende garanderen dat tijdens de vernietiging van het object geen parallelle lees- of schrijfbewerkingen op dezelfde instantie plaatsvinden. Volgens de interpretatie is de destructor bij het ordentelijk verlaten van de scope vermoedelijk verantwoordelijk voor het sluiten van geopende bestandsdescriptors en het opschonen van resterende interne toestanden. Vraag Q-49e2fdfd53789afd (open)

Wat betreft de eigendomsverhouding bevindt het object zich typisch in de lokale scope van de gebruikende component of wordt het beheerd via pointerstructuren. Aangezien gelijktijdige modificatie en vernietiging niet zijn beveiligd, mag een instantie (interpretatie) vermoedelijk niet onbeschermd tussen concurrente uitvoeringscontexten worden gedeeld. Vraag (open)

Foutscenario's

Foutsituaties in de omgang met ara::per::ReadWriteAccessor manifesteren zich zowel tijdens compilatietijd als tijdens runtime door specifieke pre- en postcondities. Een essentiële statische preconditie is het verbod op standaardinstantiëring: aangezien de parameterloze constructor is verwijderd, leidt elke poging tot directe constructie tot een onmiddellijke compilatiefout [SWS_PER_00462]. Hierdoor wordt voorkomen dat niet-geïnitialiseerde of ongeldige accessor-objecten in het systeem bestaan.

Wat betreft het uitzonderingsniveau biedt de klasse bij afbraak een gegarandeerde uitzonderingsveiligheid: de destructor is gedefinieerd als noexcept en gespecificeerd als uitzonderingsveilig („exception safe”) [SWS_PER_00598]. Dit waarborgt dat zelfs bij fouten tijdens de opruimwerkzaamheden geen C++-uitzonderingen naar buiten worden gepropageerd, waardoor een veilige stack-unwinding gewaarborgd blijft.

Een kritiek foutscenario tijdens runtime vloeit voort uit het ontbreken van thread-safety van de destructor conform [SWS_PER_00598]. Wordt het object vernietigd terwijl een andere thread nog lees- of schrijfbewerkingen uitvoert, dan leidt dit tot ongedefinieerd gedrag of data-inconsistenties. De naleving van de threadgerelateerde precondities berust daarom volledig op het aanroepende systeemontwerp.

Deze klassehandleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 voor de module Persistency (per).

UML-klassendiagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__per__ReadWriteAccessor483 ReadWriteAccessor + ReadWriteAccessor() + ~ReadWriteAccessor() nara__per__ReadAccessor956 ReadAccessor nara__per__ReadWriteAccessor483->nara__per__ReadAccessor956 nara__per__WriteAccessor940 WriteAccessor nara__per__ReadWriteAccessor483->nara__per__WriteAccessor940 nara__per__FileAccessor932 FileAccessor nara__per__ReadAccessor956->nara__per__FileAccessor932 nara__per__WriteAccessor940->nara__per__FileAccessor932

Constructors en destructor

The default constructor for ReadWriteAccessor shall not be used.

ReadWriteAccessor ()=delete;

Destructor for ReadWriteAccessor.

~ReadWriteAccessor () final noexcept;

Documentatie van de methoden

functie ReadWriteAccessor [SWS_PER_00462] Upstream: RS_PER_00004, RS_AP_00120, RS_AP_00129, RS_AP_00146

ReadWriteAccessor ()=delete;

The default constructor for ReadWriteAccessor shall not be used.

Header-Datei#include "ara/per/read_write_accessor.h"
Scopeclass ara::per::ReadWriteAccessor

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00462
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00462@rel:R25-11#8644599c
Content hash
8644599c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00462
Status: valid/unmigrated Version: rel:R25-11#cfd162d3 Versionshistorie & Revisions (1 transition, 6 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_PER_00462@rel:R25-11#cfd162d3
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#721764292026-09-30
  • R21-11rel:R21-11#cd9652062026-10-14
  • R22-11rel:R22-11#77262b5e2026-10-14
  • R23-11rel:R23-11#5e7c323f2026-10-14
  • R24-11rel:R24-11#d4da2a372026-10-14
  • R25-11rel:R25-11#cfd162d32026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

functie ~ReadWriteAccessor [SWS_PER_00598] Upstream: RS_PER_00004, RS_AP_00120, RS_AP_00129, RS_AP_00134, RS_AP_00145, RS_AP_00159

~ReadWriteAccessor () final noexcept;

Destructor for ReadWriteAccessor.

Header-Datei#include "ara/per/read_write_accessor.h"
Scopeclass ara::per::ReadWriteAccessor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00598
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00598@rel:R25-11#f543dcc0
Content hash
f543dcc0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00598
Status: valid/unmigrated Version: rel:R25-11#3b19c355 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_PER_00598@rel:R25-11#3b19c355
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill