Permite a las aplicaciones adaptativas la construcción de listas de acceso dinámicas y patrones de servicio para servicios de diagnóstico.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d14f1d69eb64ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite a las aplicaciones adaptativas la construcción de listas de acceso dinámicas y patrones de servicio para servicios de diagnóstico.
La clase sirve a las aplicaciones adaptativas para la creación y configuración de listas de acceso dinámicas para servicios de diagnóstico [SWS_DM_01156]. Tras una preasignación opcional de memoria, genera mediante métodos como MakeServiceBuilder instancias para la definición de patrones de identificadores de servicio individuales o secuencias de bytes [SWS_DM_01164]. Todas las funciones miembro están declaradas como noexcept seguras frente a excepciones, mientras que las operaciones modificadoras deben protegerse en la aplicación frente a accesos concurrentes [SWS_DM_01163].
Contexto
La clase ara::diag::DiagnosticServiceDynamicAccessList sirve a una aplicación adaptativa (AA) para construir una lista de acceso dinámica (DynamicAccessList) para servicios de diagnóstico [SWS_DM_01156]. Actúa como factoría y unidad de gestión de patrones de servicio al crear instancias de DynamicAccessListDiagServiceBuilder[SWS_DM_01164], [SWS_DM_01165]. En la arquitectura, la aplicación interactúa directamente con la lista para definir reglas de acceso basadas en identificadores de servicio (SID) o secuencias de bytes, las cuales constituyen la base para el control de acceso dinámico en el subsistema de diagnóstico SWS Diagnostics §8.13.1 «Class: DiagnosticServiceDynamicAccessList».
Ciclo de vida
Las instancias de DiagnosticServiceDynamicAccessList se crean a través del constructor por defecto sin parámetros [SWS_DM_01157]. La clase está declarada como finalSWS Diagnostics §8.13.1 «Class: DiagnosticServiceDynamicAccessList». Admite semántica de valor completa: los objetos pueden tanto copiarse como moverse, para lo cual se proporcionan los correspondientes constructores de copia y de movimiento [SWS_DM_01159], [SWS_DM_01160], así como operadores de asignación [SWS_DM_01161], [SWS_DM_01162]. Tras la inicialización, el objeto se encuentra en el estado para la admisión de patrones antes de ser depurado al final de su vida útil a través del destructor [SWS_DM_01158].
En cuanto a la concurrencia, los constructores (constructor por defecto, de copia y de movimiento) están especificados explícitamente como seguros para subprocesos [SWS_DM_01157], [SWS_DM_01159], [SWS_DM_01160]. Por el contrario, todos los métodos manipuladores, como asignaciones, reservas de memoria y creaciones de builders, así como el destructor, están definidos como no seguros para subprocesos [SWS_DM_01161], [SWS_DM_01162], [SWS_DM_01163], [SWS_DM_01164], [SWS_DM_01165], [SWS_DM_01158]. Por lo tanto, el acceso concurrente al mismo objeto requiere sincronización en el lado de la aplicación.
Ruta de uso
El flujo típico para la construcción de una lista dinámica de acceso a servicios comprende las siguientes fases:
Preasignación de memoria: Antes de añadir patrones de servicio, la aplicación puede reservar memoria previamente para todos los patrones de servicio previstos mediante Reserve[SWS_DM_01163]. Los parámetros transmitidos numberOfServiceHeads y maxServiceHeadSize permiten una estimación en el peor de los casos de la memoria requerida con el fin de minimizar reasignaciones dinámicas posteriores.
Creación de patrones: La aplicación invoca MakeServiceBuilder para iniciar un patrón de servicio de diagnóstico. Esto se realiza bien mediante un único byte de SID [SWS_DM_01164] o bien mediante una secuencia de bytes serviceHead para comprobaciones de patrones más profundas [SWS_DM_01165].
Configuración de patrones: El método devuelve un objeto de tipo DynamicAccessListDiagServiceBuilder[SWS_DM_01164], el cual configura la aplicación a continuación.
Todas las funciones miembro públicas y constructores de la clase están declarados como noexcept y garantizan una estricta seguridad frente a excepciones (exception safe) [SWS_DM_01157], [SWS_DM_01163], [SWS_DM_01164]. En esta interfaz no se producen estados de error en forma de excepciones de C++ ni retornos de ara::core::Result con códigos de error. En la reserva de memoria mediante Reserve, el valor indicado puede ser una estimación; una subestimación no provoca la interrupción de la función, aunque probablemente requiera reasignaciones posteriores [SWS_DM_01163]. Pregunta Q-8d33a0315da27aed (abierta) Los desarrolladores de aplicaciones deben asegurarse de que las funciones no seguras para subprocesos Reserve, MakeServiceBuilder y los operadores de asignación nunca se ejecuten simultáneamente con el mismo objeto sin un bloqueo externo.
Esta guía se basa en el estándar AUTOSAR Release R25-11 y resume la especificación de la clase ara::diag::DiagnosticServiceDynamicAccessList.
Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
This function is used by the AA to construct a pattern for the DynamicAccessList, using only the SID.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: cfdb5e234f29ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
La función síncrona MakeServiceBuilder de la clase ara::diag::DiagnosticServiceDynamicAccessList sirve para que una aplicación adaptativa inicie un patrón para la lista de acceso dinámico (DynamicAccessList) mediante un identificador de servicio individual (sid) ([SWS_DM_01164]). Acepta el parámetro sid de tipo DynamicAccessListDiagServiceBuilder::Byte y devuelve una nueva instancia de DynamicAccessListDiagServiceBuilder ([SWS_DM_01164]). Mediante esta llamada, la aplicación hace que la instancia del Diagnostic Server construya una nueva DynamicAccessList comenzando con el patrón de un solo byte transmitido ([SWS_DM_01218]; AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 «DynamicAccessList Creation and Update»).
Interacción y alternativas
Tras el inicio, la lista de acceso dinámico de todos los clientes está vacía de forma predeterminada ([SWS_DM_01214]). Además de esta función, la aplicación tiene a su disposición una sobrecarga con una cadena de bytes (serviceHead) ([SWS_DM_01165]). Ambas sobrecargas representan el punto de entrada con el que se inicia la creación de una nueva lista de acceso en el servidor ([SWS_DM_01218]).
Tratamiento de errores y concurrencia
La interfaz está declarada como noexcept y especificada como segura frente a excepciones (exception safe) ([SWS_DM_01164]). No lanza excepciones ni devuelve códigos de error; por lo tanto, es probable que los identificadores de servicio erróneos solo se detecten durante la evaluación posterior del patrón por parte del Diagnostic Server. Pregunta Q-eacef79ec6be9fcd (abierta) En cuanto a la concurrencia, la función está clasificada explícitamente como no segura para hilos (not thread-safe) ([SWS_DM_01164]). En caso de acceso paralelo desde múltiples contextos de ejecución, la aplicación llamadora debe encargarse de una sincronización externa.
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR R25-11.
This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7426838ef9dfProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método MakeServiceBuilder de la clase ara::diag::DiagnosticServiceDynamicAccessList sirve a una Adaptive Application para crear un patrón de diagnóstico para la DynamicAccessList a partir de una secuencia de bytes ([SWS_DM_01165]).
Parámetro:serviceHead (tipo DynamicAccessListDiagServiceBuilder::Byte String) transfiere una secuencia de bytes que define el inicio del patrón para la comparación de diagnóstico ([SWS_DM_01165]).
Valor de retorno: Devuelve una instancia de DynamicAccessListDiagServiceBuilder para la posterior configuración del patrón de servicio ([SWS_DM_01165]).
Zusammenspiel y ciclo de vida
Al iniciar el sistema, la DynamicAccessList de todos los clientes está vacía de forma predeterminada ([SWS_DM_01214]). Si se llama a una sobrecarga de MakeServiceBuilder, la instancia del Diagnostic Server inicia la creación de una nueva DynamicAccessList, comenzando con el patrón de cadena de bytes transferido ([SWS_DM_01218], AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 «DynamicAccessList Creation and Update»). Como alternativa, se encuentra disponible una sobrecarga para un solo byte ([SWS_DM_01164]).
Concurrencia y tratamiento de errores
La función está declarada como noexcept y es segura frente a excepciones (exception safe), por lo que no genera excepciones de C++ ([SWS_DM_01165]). No se especifican códigos de error ni mensajes DET/DEM para esta llamada. Dado que la operación está clasificada como no segura para hilos (not thread-safe), las llamadas paralelas en la misma instancia deben sincronizarse en la aplicación ([SWS_DM_01165]).
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR R25-11.
Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 77bde14da8eeProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método ara::diag::DiagnosticServiceDynamicAccessList::Reserve asigna memoria por adelantado para encabezados de servicio dentro de una instancia de DiagnosticServiceDynamicAccessList ([SWS_DM_01163], SWS Diagnostics §8.13.1.1.3.3 «Reserve»). No es necesario que esta asignación previa coincida con el tamaño exacto de la memoria, sino que puede calcularse como una estimación en el peor de los casos de la memoria máxima requerida ([SWS_DM_01163]).
Uso y parámetros
La llamada se realiza de forma síncrona y procesa dos parámetros de entrada ([SWS_DM_01163]):
numberOfServiceHeads (std::size_t): Número de patrones de servicios de diagnóstico (patterns).
maxServiceHeadSize (std::size_t): Cantidad máxima esperada de bytes de diagnóstico dentro de un único patrón.
La función no devuelve ningún valor de retorno (void) y está especificada con noexcept, así como con la propiedad exception safe ([SWS_DM_01163]). No existe un tratamiento de errores mediante códigos de retorno o excepciones.
Concurrencia y restricciones
La función está clasificada como not thread-safe ([SWS_DM_01163]). Por lo tanto, los accesos concurrentes de múltiples hilos a la misma instancia requieren obligatoriamente una sincronización externa. Presumiblemente, el método se invoca antes de registrar patrones de servicio para minimizar reasignaciones de memoria posteriores en tiempo de ejecución. Pregunta Q-e58b6f12a3a0adac (abierta)
Delimitación
Este método debe distinguirse de funciones SOVD homónimas como en DiagnosticSovdArrayContentElementDataView ([SWS_DM_02240]), DiagnosticSovdRecordContentElementDataView ([SWS_DM_02283]) o DiagnosticSovdContentElementData ([SWS_DM_02345]), las cuales aceptan respectivamente una capacidad y están especificadas como thread-safe.
Esta nota de uso se basa en la especificación AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán