Maakt thread-safe, alleen-lezen toegang tot array-elementen van een SOVD-diagnosedata-object mogelijk.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 46670b91e1adHerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt thread-safe, alleen-lezen toegang tot array-elementen van een SOVD-diagnosedata-object mogelijk.
De klasse ara::diag::DiagnosticSovdArrayContentElementDataConstView biedt een alleen-lezen view op een DiagnosticSovdContentElementData van het type array voor efficiënte diagnose-opvraging [SWS_DM_02248]. Applicaties controleren eerst via HasError() de integriteitsstatus en benaderen vervolgens de array-elementen willekeurig via operator[] of iteratief via CBegin() en CEnd()[SWS_DM_02253]. Alle operaties zijn thread-safe en uitzonderingsveilig (noexcept) uitgevoerd, maar vereisen wel de voortdurende geldigheid van het gerefereerde basiselement.
Context
De klasse ara::diag::DiagnosticSovdArrayContentElementDataConstView stelt een alleen-lezen view (const view) op een diagnose-data-element van het type array binnen de Adaptive AUTOSAR-diagnosearchitectuur voor SOVD (Service-Oriented Vehicle Diagnostics) beschikbaar [SWS_DM_02248] (AUTOSAR_AP_SWS_Diagnostics §8.60.3 “Class: DiagnosticSovdArrayContentElementDataConstView”). Deze maakt gecontroleerde leestoegang tot sequentiële elementen van diagnose-inhoud mogelijk zonder dat de onderliggende databuffer hoeft te worden gekopieerd.
Tot de primaire interactiepartners van de klasse behoren:
de aanroepende diagnose-applicatie, die array-data evalueert,
het gerefereerde DiagnosticSovdContentElementData, dat de concrete array-elementen opslaat en waarnaar bij willekeurige toegang via [SWS_DM_02253] wordt gerefereerd,
het hulptype DiagnosticSovdArrayContentElementDataConstIterator, dat voor standaardconforme iteraties over de array-elementen wordt gegenereerd [SWS_DM_02254].
De klasse is beschikbaar via de header #include "ara/diag/diagnostic_sovd_content_element_data.h"[SWS_DM_02248]. Als zuivere view-klasse bezit zij geen eigendom over de feitelijke array-data. Interpretatie: De levensduur van een view-instantie is gebonden aan de geldigheid van het onderliggende DiagnosticSovdContentElementData; het data-object moet gedurende het gebruik van de view in het geheugen blijven. Vraag Q-1a3079bdd09b4ddd (open)
Met betrekking tot concurrency zijn alle memberfuncties van de klasse expliciet als thread-safe gedeclareerd [SWS_DM_02250], [SWS_DM_02253]. Meerdere threads kunnen zodoende gelijktijdig lezend toegang hebben tot dezelfde view-instantie (interpretatie: zolang het onderliggende data-object niet gelijktijdig door schrijfoperaties wordt gewijzigd). Vraag Q-61e5fa3990052e70 (open) Bovendien garanderen alle methoden volledige uitzonderingsveiligheid (exception safe) en zijn ze zonder uitzondering gespecificeerd met noexcept[SWS_DM_02249], [SWS_DM_02251]. Aangezien het om een onveranderlijke view gaat, vertoont de klasse geen interne toestandsovergangen of complexe levenscyclusfasen.
Gebruikspad
Het reguliere verloop voor het gebruik van de array-data is onderverdeeld in integriteitscontrole, dimensie-opvraging en data-extractie:
Integriteitscontrole: Voorafgaand aan de toegang moet de applicatie via HasError() verifiëren of het inhoudselement foutloos aanwezig is [SWS_DM_02249].
Datatoegang: Voor de toegang tot array-elementen zijn twee methoden beschikbaar:
Willekeurige toegang via index: Via operator[](std::size_t index) wordt een referentie naar het doelelement opgevraagd, ingekapseld in ara::core::Result<std::reference_wrapper<DiagnosticSovdContentElementData const>>[SWS_DM_02253].
De klasse maakt geen gebruik van C++ exceptions en meldt functionele fouten via ara::core::Result:
Foutieve data-inhoud: Indien het inhoudselement foutieve data bevat, levert HasError() geen leeg succesresultaat op, maar een foutcode van het type ara::diag::DiagSovdErrc[SWS_DM_02249].
Typeconflict bij index-toegang: De operator[] vereist dwingend dat het gerefereerde element daadwerkelijk van het type ArrayContentElementData is [SWS_DM_02253]. Is dit niet het geval, dan mislukt de aanroep en levert deze een overeenkomstig foutobject in Result op in plaats van een referentie.
Indexgrenzen: Aangezien operator[] alleen binnen het geldige bereik mag worden aangeroepen, dienen aanroepers vooraf via Size()[SWS_DM_02250] of Empty()[SWS_DM_02252] te verifiëren dat de opgevraagde index bestaat.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel