Permite el acceso de solo lectura y seguro para subprocesos a elementos de array de un objeto de datos de diagnóstico SOVD.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 46670b91e1adProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite el acceso de solo lectura y seguro para subprocesos a elementos de array de un objeto de datos de diagnóstico SOVD.
La clase ara::diag::DiagnosticSovdArrayContentElementDataConstView ofrece una vista de solo lectura sobre un DiagnosticSovdContentElementData de tipo array para una consulta de diagnóstico eficiente [SWS_DM_02248]. Las aplicaciones comprueban en primer lugar el estado de integridad mediante HasError() y, a continuación, acceden a los elementos del array, ya sea de forma aleatoria mediante operator[] o de forma iterativa mediante CBegin() y CEnd()[SWS_DM_02253]. Todas las operaciones están implementadas como thread-safe y seguras frente a excepciones (noexcept), pero requieren la validez continua del elemento base referenciado.
Contexto
La clase ara::diag::DiagnosticSovdArrayContentElementDataConstView proporciona una vista de solo lectura (const view) sobre un elemento de datos de diagnóstico de tipo array dentro de la arquitectura de diagnóstico de Adaptive AUTOSAR para SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02248] (AUTOSAR_AP_SWS_Diagnostics §8.60.3 «Class: DiagnosticSovdArrayContentElementDataConstView»). Permite el acceso de lectura controlado a elementos secuenciales de un contenido de diagnóstico sin necesidad de copiar el búfer de datos subyacente.
Entre las principales partes que interactúan con la clase se incluyen:
la aplicación de diagnóstico invocadora, que evalúa los datos del array,
el DiagnosticSovdContentElementData referenciado, que almacena los elementos concretos del array y al que se hace referencia en el acceso aleatorio mediante [SWS_DM_02253],
el tipo auxiliar DiagnosticSovdArrayContentElementDataConstIterator, que se crea para iteraciones conformes al estándar sobre los elementos del array [SWS_DM_02254].
Diagrama de contexto: Integración de la vista entre la aplicación de diagnóstico, el elemento base y los iteradores. Fuentes: [SWS_DM_02248], [SWS_DM_02253], [SWS_DM_02254].
Ciclo de vida
La clase está disponible a través del encabezado #include "ara/diag/diagnostic_sovd_content_element_data.h"[SWS_DM_02248]. Al ser una clase de vista pura, no posee la propiedad de los datos reales del array. Interpretación: La vida útil de una instancia de vista está ligada a la validez del DiagnosticSovdContentElementData subyacente; el objeto de datos debe permanecer en memoria mientras se utilice la vista. Pregunta Q-1a3079bdd09b4ddd (abierta)
En cuanto a la concurrencia, todas las funciones miembro de la clase están declaradas explícitamente como thread-safe [SWS_DM_02250], [SWS_DM_02253]. Por lo tanto, múltiples hilos pueden acceder simultáneamente en modo de lectura a la misma instancia de vista (interpretación: siempre que el objeto de datos subyacente no se modifique de forma concurrente mediante operaciones de escritura). Pregunta Q-61e5fa3990052e70 (abierta) Además, todos los métodos garantizan una seguridad total frente a excepciones (exception safe) y están especificados sin excepción con noexcept[SWS_DM_02249], [SWS_DM_02251]. Dado que se trata de una vista inmutable, la clase no presenta transiciones de estado internas ni fases complejas en su ciclo de vida.
Ruta de uso
El flujo regular para la utilización de los datos del array se divide en verificación de integridad, consulta de dimensiones y extracción de datos:
Verificación de integridad: antes de acceder, la aplicación debería verificar mediante HasError() si el elemento de contenido está presente sin errores [SWS_DM_02249].
Acceso a datos: existen dos vías disponibles para acceder a los elementos del array:
Acceso aleatorio por índice: a través de operator[](std::size_t index) se solicita una referencia al elemento de destino, encapsulada en ara::core::Result<std::reference_wrapper<DiagnosticSovdContentElementData const>>[SWS_DM_02253].
La clase prescinde de excepciones de C++ y notifica errores funcionales a través de ara::core::Result:
Contenido de datos erróneo: si el elemento de contenido incluye datos erróneos, HasError() no devuelve un resultado de éxito vacío, sino un código de error de tipo ara::diag::DiagSovdErrc[SWS_DM_02249].
Conflicto de tipos en el acceso por índice: el operator[] exige imperativamente que el elemento referenciado sea efectivamente de tipo ArrayContentElementData[SWS_DM_02253]. Si este no es el caso, la llamada falla y devuelve el correspondiente objeto de error en el Result en lugar de una referencia.
Límites del índice: dado que operator[] solo debe invocarse dentro del rango válido, los llamadores deberían asegurarse previamente mediante Size()[SWS_DM_02250] o Empty()[SWS_DM_02252] de que el índice solicitado existe.
Esta guía se basa en la especificación AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán