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.
Ermöglicht den typisierten, kontrollierten Lese- und Schreibzugriff auf Speicherbereiche eines Puffers.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d5d168d169f4HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht den typisierten, kontrollierten Lese- und Schreibzugriff auf Speicherbereiche eines Puffers.
Die Template-Klasse ermöglicht den typisierten und kontrollierten Zugriff auf den allokierten Speicher eines zugrundeliegenden Datenpuffers. Die Instanziierung erfolgt dabei ausschließlich über statische Factory-Methoden, welche die Instanz als eindeutigen Zeiger zurückliefern ([AP_SWS_SHWA_00007]). Zur Laufzeit können Daten über typsichere Lese- und Schreiboperationen oder über Indexoperatoren verarbeitet werden ([AP_SWS_SHWA_00011]). Sämtliche Kopier- und Verschiebeoperationen sind unterbunden, während einzelne Datenoperationen spezifischen Anforderungen an Threadsicherheit und Fehlerbehandlung unterliegen.
Kontext
Die Template-Klasse ara::shwa::Accessor bildet die zentrale Zugriffsschnittstelle für den typisierten Speicherzugriff auf Shared-Memory-Puffer in AUTOSAR Adaptive Platform. Sie kapselt die Adressierungs- und Zugriffslogik auf einen zugrundeliegenden ara::shwa::Buffer und parametrisiert diesen statisch über den Datentyp (DataT), die Dimensionalität (Dimensions), den Zugriffsmodus (AccessModeType), das Zielgerät (AccessTargetType) sowie den verwendeten Speicherallokator (AllocatorT). In fortgeschrittenen Szenarien bindet die Klasse einen TaskHandler ein, der vermutlich Verarbeitungsaufgaben im Pufferumfeld steuert. Frage Q-552022fbf949a1f0 (offen)
Innerhalb des Moduls agiert die Klasse im Zusammenspiel mit drei zentralen Interaktionspartnern:
Anwendung / Aufrufer: Fordert Instanzen über die Factory-Schnittstelle an und führt über Methoden oder Operatoren Lese- bzw. Schreiboperationen aus.
ara::shwa::Buffer: Stellt den allokierten Speicherbereich bereit und wird dem Accessor bei dessen Erzeugung als Referenz übergeben ([AP_SWS_SHWA_00007]).
TaskHandler: Wird bei Bedarf während der Erzeugung registriert, um Aufgaben bei der Pufferbehandlung zu koordinieren ([AP_SWS_SHWA_00008]).
Der Lebenszyklus von ara::shwa::Accessor unterliegt strengen semantischen Einschränkungen, die ein unkontrolliertes Duplizieren oder Verschieben von Zugriffsinstanzen verhindern. Der Standardkonstruktor ist explizit gelöscht ([AP_SWS_SHWA_00002]). Ebenso sind sowohl der Kopierkonstruktor ([AP_SWS_SHWA_00003]) als auch der Move-Konstruktor ([AP_SWS_SHWA_00005]) sowie sämtliche Kopier- und Move-Zuweisungsoperatoren als gelöscht deklariert ([AP_SWS_SHWA_00004], [AP_SWS_SHWA_00006]). Eine direkte Instanziierung auf dem Stack oder eine Wertsemantik ist somit ausgeschlossen.
Die Erzeugung neuer Instanzen erfolgt ausschließlich über die statische Factory-Methode Create ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Sie gibt ein ara::core::Result<std::unique_ptr<Accessor>> zurück, wodurch das Eigentum exklusiv an den Aufrufer übertragen wird. Das Objekt wird automatisch zerstört, sobald der besitzende std::unique_ptr seinen Gültigkeitsbereich verlässt. Die Erzeugungsmethoden sind threadsicher (thread-safe) und ausnahmesicher (exception safe) spezifiziert ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
Ein regulärer Nutzungsablauf gliedert sich in die Objekterzeugung, die optionale Eigenschaftsprüfung und die nachfolgenden Lese- bzw. Schreiboperationen auf den Puffer:
Instanziierung via Factory: Die Anwendung ruft Accessor::Create auf und übergibt die Referenz auf einen ara::shwa::Buffer sowie optional Konfigurationseigenschaften und einen TaskHandler ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Nach Prüfung des ara::core::Result übernimmt die Anwendung den std::unique_ptr<Accessor>.
Eigenschaften evaluieren: Über die Template-Methode HasProperty<PropertyT>() lässt sich abfragen, ob ein spezifisches Merkmal vorhanden ist ([AP_SWS_SHWA_00015]). Vorhandene Merkmale werden anschließend mit GetProperty<PropertyT>() ausgelesen ([AP_SWS_SHWA_00016]).
Datenzugriff ausführen: Für den eigentlichen Datenaustausch stehen zwei Schnittstellenpfade bereit:
Methodenbasierter Zugriff: Schreibvorgänge erfolgen über Set(index, value) ([AP_SWS_SHWA_00011]), Lesevorgänge über Get(index) ([AP_SWS_SHWA_00012]), jeweils adressiert über einen dimensionalen Identifikator (Id<Dimensions>).
Operatorbasierter Zugriff: Der Indexoperator operator[] erlaubt die direkte Adressierung über Id<Dimensions> ([AP_SWS_SHWA_00009]) oder einen linearen Offset vom Typ std::size_t ([AP_SWS_SHWA_00010]). Der Rückgabetyp ReferenceT löst sich bei Lesezugriff zu const DataT& und bei Schreibzugriff zu DataT& auf ([AP_SWS_SHWA_00014]).
Fehlerhafte Operationen werden über das ara::core::Result mittels Fehlercodes aus ShwaErrorCode abgebildet:
ShwaErrorCode::kAccessorFailure: Tritt während Create auf, wenn die Konstruktionsbedingungen oder Parameter ungültig sind ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
ShwaErrorCode::kIntegrityCorrupted: Signalisiert eine verletzte Speicherintegrität des Puffers. Dies kann bei der Instanziierung ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]) sowie beim Schreiben über Set auftreten ([AP_SWS_SHWA_00011]).
ShwaErrorCode::kInvalidIndex: Wird bei Get ([AP_SWS_SHWA_00012]) und Set ([AP_SWS_SHWA_00011]) gemeldet, wenn kein gültiger Initialwert vorliegt oder der Index außerhalb der Grenzen liegt.
ShwaErrorCode::kInvalidAccessMode: Tritt bei Set auf, wenn die Kombination der Zugriffsmodi ungültig ist ([AP_SWS_SHWA_00011]); dies dürfte der Fall sein, wenn ein Schreibaufruf auf einer für AccessMode::kRead instanziierten Klasse erfolgt. Frage Q-170e82f3dec16e75 (offen)
ShwaErrorCode::kResourceBusy: Zeigt bei Get ([AP_SWS_SHWA_00012]) und Set ([AP_SWS_SHWA_00011]) an, dass die Ressource aktuell belegt ist. Für diesen Fehler ist eine Rollback-Semantik garantiert, wodurch der vorherige Zustand erhalten bleibt.
ShwaErrorCode::kFeatureNotSupported: Wird zurückgegeben, wenn eine über GetProperty angeforderte Eigenschaft nicht unterstützt wird ([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-medium· 2026-10-13