Permet un accès sécurisé vis-à-vis des threads et en lecture seule aux éléments d'un tableau d'un objet de données de diagnostic SOVD.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 46670b91e1adProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet un accès sécurisé vis-à-vis des threads et en lecture seule aux éléments d'un tableau d'un objet de données de diagnostic SOVD.
La classe ara::diag::DiagnosticSovdArrayContentElementDataConstView offre une vue en lecture seule sur un DiagnosticSovdContentElementData de type tableau pour une interrogation de diagnostic efficace [SWS_DM_02248]. Les applications vérifient d'abord l'état d'intégrité à l'aide de HasError(), puis accèdent aux éléments du tableau soit de manière aléatoire via operator[], soit de manière itérative via CBegin() et CEnd()[SWS_DM_02253]. Toutes les opérations sont exécutées de manière thread-safe et sûre vis-à-vis des exceptions (noexcept), mais supposent la validité continue de l'élément de base référencé.
Contexte
La classe ara::diag::DiagnosticSovdArrayContentElementDataConstView fournit une vue en lecture seule (const view) sur un élément de données de diagnostic de type tableau au sein de l'architecture de diagnostic Adaptive AUTOSAR pour SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02248] (AUTOSAR_AP_SWS_Diagnostics §8.60.3 « Class: DiagnosticSovdArrayContentElementDataConstView »). Elle permet un accès contrôlé en lecture aux éléments séquentiels d'un contenu de diagnostic, sans nécessiter la copie du tampon de données sous-jacent.
Parmi les partenaires d'interaction principaux de la classe figurent :
l'application de diagnostic appelante, qui évalue les données du tableau,
le DiagnosticSovdContentElementData référencé, qui stocke les éléments de tableau concrets et vers lequel une référence est établie lors d'un accès aléatoire via [SWS_DM_02253],
le type auxiliaire DiagnosticSovdArrayContentElementDataConstIterator, qui est généré pour des itérations conformes aux standards sur les éléments du tableau [SWS_DM_02254].
Diagramme de contexte : Intégration de la vue entre l'application de diagnostic, l'élément de base et les itérateurs. Sources : [SWS_DM_02248], [SWS_DM_02253], [SWS_DM_02254].
Cycle de vie
La classe est disponible via le fichier d'en-tête #include "ara/diag/diagnostic_sovd_content_element_data.h"[SWS_DM_02248]. En tant que pure classe de vue, elle ne possède aucune propriété sur les données de tableau effectives. Interprétation : La durée de vie d'une instance de vue est liée à la validité du DiagnosticSovdContentElementData sous-jacent ; l'objet de données doit rester en mémoire pendant toute la durée d'utilisation de la vue. Question Q-1a3079bdd09b4ddd (ouverte)
En matière de concurrence, l'ensemble des fonctions membres de la classe sont explicitement déclarées comme thread-safe [SWS_DM_02250], [SWS_DM_02253]. Plusieurs threads peuvent ainsi accéder simultanément en lecture à la même instance de vue (interprétation : tant que l'objet de données sous-jacent n'est pas modifié de manière concurrente par des opérations d'écriture). Question Q-61e5fa3990052e70 (ouverte) De plus, toutes les méthodes garantissent une sécurité totale vis-à-vis des exceptions (exception safe) et sont spécifiées sans exception avec noexcept[SWS_DM_02249], [SWS_DM_02251]. S'agissant d'une vue immuable, la classe ne présente aucune transition d'état interne ni phase complexe de cycle de vie.
Parcours d'utilisation
Le déroulement normal d'utilisation des données du tableau s'articule en vérification d'intégrité, interrogation des dimensions et extraction des données :
Vérification d'intégrité : Avant l'accès, l'application devrait vérifier via HasError() si l'élément de contenu se présente sans erreur [SWS_DM_02249].
Accès aux données : Deux voies sont disponibles pour accéder aux éléments du tableau :
Accès aléatoire par index : Une référence vers l'élément cible est demandée via operator[](std::size_t index), encapsulée dans ara::core::Result<std::reference_wrapper<DiagnosticSovdContentElementData const>>[SWS_DM_02253].
La classe n'utilise pas d'exceptions C++ et signale les erreurs fonctionnelles via ara::core::Result :
Contenu de données erroné : Si l'élément de contenu comporte des données erronées, HasError() ne renvoie pas un résultat de succès vide, mais un code d'erreur de type ara::diag::DiagSovdErrc[SWS_DM_02249].
Conflit de type lors de l'accès par index : Le operator[] exige impérativement que l'élément référencé soit effectivement de type ArrayContentElementData[SWS_DM_02253]. Si ce n'est pas le cas, l'appel échoue et renvoie un objet d'erreur correspondant dans le Result au lieu d'une référence.
Limites de l'index : Étant donné que operator[] ne doit être appelé que dans la plage valide, les appelants devraient s'assurer au préalable via Size()[SWS_DM_02250] ou Empty()[SWS_DM_02252] que l'index demandé existe.
Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand