Ermöglicht den thread-sicheren, schreibgeschützten Zugriff auf Array-Elemente eines SOVD-Diagnosedatenobjekts.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 46670b91e1adHerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht den thread-sicheren, schreibgeschützten Zugriff auf Array-Elemente eines SOVD-Diagnosedatenobjekts.
Die Klasse ara::diag::DiagnosticSovdArrayContentElementDataConstView bietet eine schreibgeschützte Sicht auf ein DiagnosticSovdContentElementData vom Typ Array zur effizienten Diagnoseabfrage [SWS_DM_02248]. Anwendungen prüfen zunächst mittels HasError() den Integritätsstatus und greifen anschließend entweder wahlfrei über operator[] oder iterativ über CBegin() und CEnd() auf die Feldelemente zu [SWS_DM_02253]. Alle Operationen sind thread-safe sowie ausnahmesicher (noexcept) ausgeführt, setzen jedoch die fortlaufende Gültigkeit des referenzierten Basiselements voraus.
Kontext
Die Klasse ara::diag::DiagnosticSovdArrayContentElementDataConstView stellt eine schreibgeschützte Sicht (const view) auf ein Diagnose-Datenelement vom Typ Array innerhalb der Adaptive AUTOSAR Diagnosearchitektur für SOVD (Service-Oriented Vehicle Diagnostics) bereit [SWS_DM_02248] (AUTOSAR_AP_SWS_Diagnostics §8.60.3 „Class: DiagnosticSovdArrayContentElementDataConstView“). Sie ermöglicht den kontrollierten Lesezugriff auf sequenzielle Elemente eines Diagnoseinhalts, ohne dass der zugrunde liegende Datenpuffer kopiert werden muss.
Zu den primären Interaktionspartnern der Klasse zählen:
die aufrufende Diagnose-Anwendung, welche Felddaten auswertet,
das referenzierte DiagnosticSovdContentElementData, welches die konkreten Feldelemente speichert und auf das bei wahlfreiem Zugriff über [SWS_DM_02253] referenziert wird,
der Hilfstyp DiagnosticSovdArrayContentElementDataConstIterator, welcher für standardkonforme Iterationen über die Feldelemente erzeugt wird [SWS_DM_02254].
Die Klasse ist über den Header #include "ara/diag/diagnostic_sovd_content_element_data.h" verfügbar [SWS_DM_02248]. Als reine Sichtklasse besitzt sie keine Eigentümerschaft an den eigentlichen Array-Daten. Interpretation: Die Lebensdauer einer View-Instanz ist an die Gültigkeit des zugrunde liegenden DiagnosticSovdContentElementData gebunden; das Datenobjekt muss für die Dauer der View-Verwendung im Speicher verbleiben. Frage Q-1a3079bdd09b4ddd (offen)
Hinsichtlich der Nebenläufigkeit sind sämtliche Elementfunktionen der Klasse explizit als thread-safe deklariert [SWS_DM_02250], [SWS_DM_02253]. Mehrere Threads können somit simultan lesend auf dieselbe View-Instanz zugreifen (Interpretation: solange das zugrunde liegende Datenobjekt nicht nebenläufig durch Schreiboperationen verändert wird). Frage Q-61e5fa3990052e70 (offen) Zudem garantieren alle Methoden vollständige Exception-Sicherheit (exception safe) und sind ausnahmslos mit noexcept spezifiziert [SWS_DM_02249], [SWS_DM_02251]. Da es sich um eine unveränderliche Sicht handelt, weist die Klasse keine internen Zustandstransitionen oder komplexen Lebenszyklusphasen auf.
Nutzungspfad
Der reguläre Ablauf zur Nutzung der Felddaten gliedert sich in Integritätsprüfung, Dimensionsabfrage und Datenextraktion:
Integritätsprüfung: Vor dem Zugriff sollte die Anwendung über HasError() verifizieren, ob das Inhaltselement fehlerfrei vorliegt [SWS_DM_02249].
Datenzugriff: Für den Zugriff auf Feldelemente stehen zwei Wege bereit:
Wahlfreier Zugriff per Index: Über operator[](std::size_t index) wird eine Referenz auf das Zielelement angefordert, gekapselt in ara::core::Result<std::reference_wrapper<DiagnosticSovdContentElementData const>>[SWS_DM_02253].
Die Klasse verzichtet auf C++ Exceptions und meldet funktionale Fehler über ara::core::Result:
Fehlerhafter Dateninhalt: Falls das Inhaltselement fehlerhafte Daten enthält, liefert HasError() keinen leeren Erfolgs-Result, sondern einen Fehlercode vom Typ ara::diag::DiagSovdErrc[SWS_DM_02249].
Typkonflikt beim Indexzugriff: Der operator[] verlangt zwingend, dass das referenzierte Element tatsächlich vom Typ ArrayContentElementData ist [SWS_DM_02253]. Ist dies nicht der Fall, schlägt der Aufruf fehl und liefert ein entsprechendes Fehlerobjekt im Result anstelle einer Referenz.
Indexgrenzen: Da operator[] nur innerhalb des gültigen Bereichs aufgerufen werden darf, sollten Aufrufer vorab über Size()[SWS_DM_02250] oder Empty()[SWS_DM_02252] sicherstellen, dass der angeforderte Index existiert.
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11.
gemini-3.8-flash-medium· 2026-10-13