Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
Maakt getypeerde, gecontroleerde lees- en schrijftoegang tot geheugengebieden van een buffer mogelijk.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d5d168d169f4HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt getypeerde, gecontroleerde lees- en schrijftoegang tot geheugengebieden van een buffer mogelijk.
De template-klasse maakt getypeerde en gecontroleerde toegang tot het gealloceerde geheugen van een onderliggende databuffer mogelijk. De instantiëring verloopt daarbij uitsluitend via statische factory-methoden, die de instantie retourneren als een unieke pointer ([AP_SWS_SHWA_00007]). Tijdens runtime kunnen gegevens worden verwerkt via typeveilige lees- en schrijfbewerkingen of via indexoperatoren ([AP_SWS_SHWA_00011]). Alle kopieer- en verplaatsbewerkingen zijn geblokkeerd, terwijl individuele databewerkingen onderhevig zijn aan specifieke vereisten voor thread safety en foutafhandeling.
Context
De template-klasse ara::shwa::Accessor vormt de centrale toegangsinterface voor getypeerde geheugentoegang tot shared-memory-buffers in AUTOSAR Adaptive Platform. Zij kapselt de adresserings- en toegangslogica naar een onderliggende ara::shwa::Buffer in en parametriseert deze statisch via het datatype (DataT), de dimensionaliteit (Dimensions), de toegangsmodus (AccessModeType), het doelapparaat (AccessTargetType) alsook de gebruikte geheugenallocator (AllocatorT). In geavanceerde scenario's bindt de klasse een TaskHandler in, die vermoedelijk verwerkingstaken rondom de buffer aanstuurt. Vraag Q-552022fbf949a1f0 (open)
Binnen de module ageert de klasse in samenspel met drie centrale interactiepartners:
Applicatie / aanroeper: vraagt instanties aan via de factory-interface en voert via methoden of operatoren lees- respectievelijk schrijfbewerkingen uit.
ara::shwa::Buffer: stelt het gealloceerde geheugengebied beschikbaar en wordt bij de creatie van de accessor als referentie meegegeven ([AP_SWS_SHWA_00007]).
TaskHandler: wordt indien nodig tijdens de aanmaak geregistreerd om taken bij de bufferbehandeling te coördineren ([AP_SWS_SHWA_00008]).
De levenscyclus van ara::shwa::Accessor is onderworpen aan strikte semantische beperkingen die ongecontroleerd dupliceren of verplaatsen van toegangsinstanties voorkomen. De standaardconstructor is expliciet verwijderd ([AP_SWS_SHWA_00002]). Eveneens zijn zowel de copy constructor ([AP_SWS_SHWA_00003]) als de move constructor ([AP_SWS_SHWA_00005]) en alle copy- en move-toewijzingsoperatoren als verwijderd gedeclareerd ([AP_SWS_SHWA_00004], [AP_SWS_SHWA_00006]). Een directe instantiëring op de stack of een waardesemantiek is daarmee uitgesloten.
Het aanmaken van nieuwe instanties verloopt uitsluitend via de statische factory-methode Create ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Deze retourneert een ara::core::Result<std::unique_ptr<Accessor>>, waardoor het eigendom exclusief wordt overgedragen aan de aanroeper. Het object wordt automatisch vernietigd zodra de bezittende std::unique_ptr buiten zijn scope treedt. De aanmaakmethoden zijn gespecificeerd als thread-safe en exception-safe ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
Een reguliere gebruiksvolgorde bestaat uit de objectaanmaak, de optionele controle van eigenschappen en de daaropvolgende lees- respectievelijk schrijfbewerkingen op de buffer:
Instantiëring via factory: de applicatie roept Accessor::Create aan en geeft de referentie naar een ara::shwa::Buffer door, evenals optionele configuratie-eigenschappen en een TaskHandler ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Na controle van de ara::core::Result neemt de applicatie de std::unique_ptr<Accessor> over.
Eigenschappen evalueren: via de template-methode HasProperty<PropertyT>() kan worden gecontroleerd of een specifiek kenmerk aanwezig is ([AP_SWS_SHWA_00015]). Aanwezige kenmerken worden vervolgens uitgelezen met GetProperty<PropertyT>() ([AP_SWS_SHWA_00016]).
Datatoegang uitvoeren: voor de daadwerkelijke gegevensuitwisseling zijn er twee interfacepaden beschikbaar:
Toegang via methoden: schrijfbewerkingen verlopen via Set(index, value) ([AP_SWS_SHWA_00011]), leesbewerkingen via Get(index) ([AP_SWS_SHWA_00012]), telkens geadresseerd via een dimensionale identificator (Id<Dimensions>).
Toegang via operatoren: de indexoperator operator[] maakt directe adressering via Id<Dimensions> ([AP_SWS_SHWA_00009]) of een lineaire offset van het type std::size_t ([AP_SWS_SHWA_00010]) mogelijk. Het retourtype ReferenceT lost bij leestoegang op in const DataT& en bij schrijftoegang in DataT& ([AP_SWS_SHWA_00014]).
Foutieve bewerkingen worden gerepresenteerd via de ara::core::Result door middel van foutcodes uit ShwaErrorCode:
ShwaErrorCode::kAccessorFailure: treedt op tijdens Create wanneer de constructievoorwaarden of parameters ongeldig zijn ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
ShwaErrorCode::kIntegrityCorrupted: signaleert een geschonden geheugenintegriteit van de buffer. Dit kan optreden bij de instantiëring ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]) en bij het schrijven via Set ([AP_SWS_SHWA_00011]).
ShwaErrorCode::kInvalidIndex: wordt gerapporteerd bij Get ([AP_SWS_SHWA_00012]) en Set ([AP_SWS_SHWA_00011]) wanneer er geen geldige initiële waarde aanwezig is of de index buiten het bereik ligt.
ShwaErrorCode::kInvalidAccessMode: treedt op bij Set wanneer de combinatie van toegangsmodi ongeldig is ([AP_SWS_SHWA_00011]); dit is vermoedelijk het geval als een schrijfaanroep plaatsvindt op een klasse die voor AccessMode::kRead is geïnstantieerd. Vraag Q-170e82f3dec16e75 (open)
ShwaErrorCode::kResourceBusy: geeft bij Get ([AP_SWS_SHWA_00012]) en Set ([AP_SWS_SHWA_00011]) aan dat de resource momenteel bezet is. Voor deze fout is rollback-semantiek gegarandeerd, waardoor de vorige toestand behouden blijft.
ShwaErrorCode::kFeatureNotSupported: wordt geretourneerd wanneer een via GetProperty opgevraagde eigenschap niet wordt ondersteund ([AP_SWS_SHWA_00016]).
ara::core::Result< DataT > Get (Id< Dimensions > index);
Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.
Scope
class ara::shwa::Accessor
Thread Safety
thread-safe rollback_semantics ShwaErrorCode::kInvalid Index The operation could not be performed because no initial value is available rollback_semantics
Exception Safety
not exception safe
Errors
ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy.
Request a governed re-review of this record. The record is not changed immediately.
ara::core::Result< void > Set (Id< Dimensions > index, DataT value);
Schreibt den übergebenen Wert an die durch die Signatur bestimmte Stelle.
Scope
class ara::shwa::Accessor
Thread Safety
thread-safe
Exception Safety
not exception safe
Errors
ShwaErrorCode::kInvalid Index no_rollback_semantics The operation could not be performed because no initial value is available no_rollback_semantics ShwaErrorCode::kInvalid AccessMode Opening a file failed because the requested combination of Open Modes is invalid no_rollback_semantics ShwaErrorCode::k IntegrityCorrupted The structural integrity of the memory allocated by Buffer could not be established rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel