Permet aux applications adaptatives de construire des listes d'accès dynamiques et des motifs de service pour les services de diagnostic.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d14f1d69eb64ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet aux applications adaptatives de construire des listes d'accès dynamiques et des motifs de service pour les services de diagnostic.
La classe permet aux applications adaptatives de créer et de configurer des listes d'accès dynamiques pour les services de diagnostic [SWS_DM_01156]. Après une pré-allocation facultative de mémoire, elle génère, via des méthodes telles que MakeServiceBuilder, des instances destinées à la définition de motifs d'identifiants de service individuels ou de séquences d'octets [SWS_DM_01164]. Toutes les fonctions membres sont déclarées comme sûres vis-à-vis des exceptions en noexcept, tandis que les opérations de modification doivent être protégées côté application contre les accès concurrents [SWS_DM_01163].
Contexte
La classe ara::diag::DiagnosticServiceDynamicAccessList permet à une application adaptative (AA) de construire une liste d'accès dynamique (DynamicAccessList) pour les services de diagnostic [SWS_DM_01156]. Elle fait office de fabrique et d'unité de gestion pour les motifs de service en créant des instances de DynamicAccessListDiagServiceBuilder[SWS_DM_01164], [SWS_DM_01165]. Dans l'architecture, l'application interagit directement avec la liste pour définir des règles d'accès à partir d'identifiants de service (SID) ou de séquences d'octets, qui constituent la base du contrôle d'accès dynamique dans le sous-système de diagnostic SWS Diagnostics §8.13.1 « Class: DiagnosticServiceDynamicAccessList ».
Cycle de vie
Les instances de DiagnosticServiceDynamicAccessList sont créées via le constructeur par défaut sans paramètre [SWS_DM_01157]. La classe est déclarée comme finalSWS Diagnostics §8.13.1 « Class: DiagnosticServiceDynamicAccessList ». Elle prend en charge une sémantique de valeur complète : les objets peuvent être aussi bien copiés que déplacés, ce pour quoi des constructeurs de copie et de déplacement [SWS_DM_01159], [SWS_DM_01160] ainsi que des opérateurs d'affectation [SWS_DM_01161], [SWS_DM_01162] correspondants sont mis à disposition. Après l'initialisation, l'objet se trouve dans l'état permettant l'enregistrement de motifs, avant d'être nettoyé à la fin de sa durée de vie via le destructeur [SWS_DM_01158].
En ce qui concerne la concurrence, les constructeurs (constructeur par défaut, constructeur de copie et constructeur de déplacement) sont explicitement spécifiés comme sûrs vis-à-vis des threads [SWS_DM_01157], [SWS_DM_01159], [SWS_DM_01160]. En revanche, l'ensemble des méthodes de manipulation telles que les affectations, les réservations de mémoire et les créations de constructeurs (builders), ainsi que le destructeur, sont définis comme non sûrs vis-à-vis des threads [SWS_DM_01161], [SWS_DM_01162], [SWS_DM_01163], [SWS_DM_01164], [SWS_DM_01165], [SWS_DM_01158]. Un accès concurrent au même objet nécessite par conséquent une synchronisation côté application.
Parcours d'utilisation
Le déroulement typique lors de la construction d'une liste d'accès dynamique aux services comprend les phases suivantes :
Pré-allocation de mémoire : Avant d'ajouter des motifs de service, l'application peut pré-réserver de la mémoire pour tous les motifs de service attendus à l'aide de Reserve[SWS_DM_01163]. Les paramètres transmis numberOfServiceHeads et maxServiceHeadSize permettent une estimation au pire cas de la mémoire nécessaire, afin de minimiser les réallocations dynamiques ultérieures.
Création de motifs : L'application appelle MakeServiceBuilder pour initier un motif de service de diagnostic. Cela s'effectue soit au moyen d'un octet de SID unique [SWS_DM_01164], soit d'une séquence d'octets serviceHead pour des vérifications de motifs plus approfondies [SWS_DM_01165].
Configuration du motif : La méthode renvoie un objet de type DynamicAccessListDiagServiceBuilder[SWS_DM_01164], que l'application configure ensuite.
Toutes les fonctions membres publiques et les constructeurs de la classe sont déclarés comme noexcept et garantissent une sécurité stricte vis-à-vis des exceptions (exception safe) [SWS_DM_01157], [SWS_DM_01163], [SWS_DM_01164]. Les états d'erreur sous forme d'exceptions C++ ou de retour de ara::core::Result avec des codes d'erreur ne se produisent pas sur cette interface. Lors de la réservation de mémoire via Reserve, l'indication peut être une estimation ; une sous-estimation n'entraîne pas l'interruption de la fonction, mais devrait rendre nécessaires de nouvelles allocations ultérieures [SWS_DM_01163]. Question Q-8d33a0315da27aed (ouverte) Les développeurs d'applications doivent veiller à ce que les fonctions non sûres vis-à-vis des threads Reserve, MakeServiceBuilder et les opérateurs d'affectation ne soient jamais exécutés simultanément sur le même objet sans verrouillage externe.
Ce guide repose sur la version R25-11 du standard AUTOSAR et résume la spécification de la classe 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.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : cfdb5e234f29ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction synchrone MakeServiceBuilder de la classe ara::diag::DiagnosticServiceDynamicAccessList sert à une application adaptative pour initier un modèle pour la liste d'accès dynamique (DynamicAccessList) via un identifiant de service unique (sid) ([SWS_DM_01164]). Elle prend en entrée le paramètre sid de type DynamicAccessListDiagServiceBuilder::Byte et renvoie une nouvelle instance de DynamicAccessListDiagServiceBuilder ([SWS_DM_01164]). Par cet appel, l'application demande à l'instance du serveur de diagnostic de construire une nouvelle DynamicAccessList en commençant par le modèle à octet unique transmis ([SWS_DM_01218] ; AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 « DynamicAccessList Creation and Update »).
Interaction et alternatives
Après le démarrage, la liste d'accès dynamique de tous les clients est vide par défaut ([SWS_DM_01214]). En plus de cette fonction, l'application dispose d'une surcharge avec une chaîne d'octets (serviceHead) ([SWS_DM_01165]). Les deux surcharges constituent le point d'entrée par lequel la création d'une nouvelle liste d'accès est initiée dans le serveur ([SWS_DM_01218]).
Gestion des erreurs et concurrence
L'interface est déclarée comme noexcept et spécifiée comme sûre vis-à-vis des exceptions (exception safe) ([SWS_DM_01164]). Elle ne lève aucune exception et ne renvoie aucun code d'erreur ; des identifiants de service erronés ne devraient donc être remarqués que lors de l'évaluation ultérieure du modèle par le serveur de diagnostic. Question Q-eacef79ec6be9fcd (ouverte) En matière de concurrence, la fonction est explicitement classée comme non sûre pour les threads (not thread-safe) ([SWS_DM_01164]). En cas d'accès parallèle depuis plusieurs contextes d'exécution, l'application appelante doit veiller à une synchronisation externe.
Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR R25-11.
This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 7426838ef9dfProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode MakeServiceBuilder de la classe ara::diag::DiagnosticServiceDynamicAccessList sert à une Adaptive Application pour créer un modèle de diagnostic pour la DynamicAccessList à partir d'une séquence d'octets ([SWS_DM_01165]).
Paramètre :serviceHead (type DynamicAccessListDiagServiceBuilder::Byte String) transmet une séquence d'octets qui définit le début du modèle pour la concordance de diagnostic ([SWS_DM_01165]).
Valeur de retour : renvoie une instance de DynamicAccessListDiagServiceBuilder pour la configuration ultérieure du modèle de service ([SWS_DM_01165]).
Zusammenspiel et cycle de vie
Au démarrage du système, la DynamicAccessList de tous les clients est vide par défaut ([SWS_DM_01214]). Si une surcharge de MakeServiceBuilder est appelée, l'instance du serveur de diagnostic déclenche la création d'une nouvelle DynamicAccessList, en commençant par le modèle de chaîne d'octets transmis ([SWS_DM_01218], AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 « DynamicAccessList Creation and Update »). Alternativement, une surcharge pour un octet individuel est disponible ([SWS_DM_01164]).
Concurrence et traitement des erreurs
La fonction est déclarée comme noexcept et sûre vis-à-vis des exceptions (exception safe), elle ne génère donc aucune exception C++ ([SWS_DM_01165]). Aucun code d'erreur ni message DET/DEM n'est spécifié pour cet appel. Comme l'opération est classée comme non sûre pour les threads (not thread-safe), les appels parallèles sur une même instance doivent être synchronisés côté application ([SWS_DM_01165]).
Cette note d'utilisation a été générée par une IA sur la base de la spécification 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.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 77bde14da8eeProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ara::diag::DiagnosticServiceDynamicAccessList::Reserve alloue préalablement de la mémoire pour les en-têtes de service au sein d'une instance de DiagnosticServiceDynamicAccessList ([SWS_DM_01163], SWS Diagnostics §8.13.1.1.3.3 « Reserve »). Cette préallocation n'a pas besoin de correspondre à la taille mémoire exacte, mais peut être calculée comme une estimation au pire des cas de la mémoire maximale requise ([SWS_DM_01163]).
Utilisation et paramètres
L'appel s'effectue de manière synchrone et traite deux paramètres d'entrée ([SWS_DM_01163]) :
numberOfServiceHeads (std::size_t) : nombre de modèles (patterns) de services de diagnostic.
maxServiceHeadSize (std::size_t) : nombre maximal attendu d'octets de diagnostic au sein d'un seul modèle.
La fonction ne fournit aucune valeur de retour (void) et est spécifiée avec noexcept ainsi qu'avec la propriété exception safe ([SWS_DM_01163]). Aucune gestion des erreurs par codes de retour ou exceptions n'existe.
Concurrence et restrictions
La fonction est classée comme not thread-safe ([SWS_DM_01163]). Les accès concurrents de plusieurs threads à une même instance nécessitent donc obligatoirement une synchronisation externe. La méthode est probablement appelée avant l'enregistrement de modèles de service, afin de minimiser de futures réallocations de mémoire à l'exécution. Question Q-e58b6f12a3a0adac (ouverte)
Délimitation
Il convient de distinguer cette méthode des fonctions SOVD de même nom comme dans DiagnosticSovdArrayContentElementDataView ([SWS_DM_02240]), DiagnosticSovdRecordContentElementDataView ([SWS_DM_02283]) ou DiagnosticSovdContentElementData ([SWS_DM_02345]), qui acceptent chacune une capacité et sont spécifiées comme thread-safe.
Cette note d'utilisation est basée sur la spécification AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand