Ermöglicht adaptiven Anwendungen den Aufbau dynamischer Zugriffslisten und Dienstmuster für Diagnosedienste.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d14f1d69eb64HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht adaptiven Anwendungen den Aufbau dynamischer Zugriffslisten und Dienstmuster für Diagnosedienste.
Die Klasse dient adaptiven Anwendungen zur Erstellung und Konfiguration dynamischer Zugriffslisten für Diagnosedienste [SWS_DM_01156]. Nach optionaler Voraballokation von Speicher erzeugt sie über Methoden wie MakeServiceBuilder Instanzen zur Musterdefinition einzelner Dienst-IDs oder Byte-Sequenzen [SWS_DM_01164]. Alle Elementfunktionen sind als noexcept ausnahmesicher deklariert, während modifizierende Operationen anwendungsseitig gegen nebenläufige Zugriffe abgesichert werden müssen [SWS_DM_01163].
Kontext
Die Klasse ara::diag::DiagnosticServiceDynamicAccessList dient einer adaptiven Anwendung (AA) dazu, eine dynamische Zugriffsliste (DynamicAccessList) für Diagnosedienste aufzubauen [SWS_DM_01156]. Sie fungiert als Fabrik und Verwaltungseinheit für Dienstmuster, indem sie Instanzen von DynamicAccessListDiagServiceBuilder erzeugt [SWS_DM_01164], [SWS_DM_01165]. In der Architektur interagiert die Anwendung direkt mit der Liste, um Zugriffsregeln anhand von Dienstkennungen (SID) oder Byte-Sequenzen zu definieren, welche die Grundlage für die dynamische Zugriffskontrolle im Diagnosesubsystem bilden SWS Diagnostics §8.13.1 „Class: DiagnosticServiceDynamicAccessList“.
Lebenszyklus
Instanzen von DiagnosticServiceDynamicAccessList werden über den parameterlosen Standardkonstruktor erzeugt [SWS_DM_01157]. Die Klasse ist als final deklariert SWS Diagnostics §8.13.1 „Class: DiagnosticServiceDynamicAccessList“. Sie unterstützt vollwertige Wertsemantik: Objekte können sowohl kopiert als auch verschoben werden, wofür entsprechende Kopier- und Verschiebekonstruktoren [SWS_DM_01159], [SWS_DM_01160] sowie Zuweisungsoperatoren [SWS_DM_01161], [SWS_DM_01162] bereitstehen. Nach der Initialisierung befindet sich das Objekt im Zustand zur Musteraufnahme, ehe es am Ende seiner Lebensdauer über den Destruktor bereinigt wird [SWS_DM_01158].
Hinsichtlich der Nebenläufigkeit sind die Konstruktoren (Standard-, Kopier- und Verschiebekonstruktor) explizit als threadsicher spezifiziert [SWS_DM_01157], [SWS_DM_01159], [SWS_DM_01160]. Sämtliche manipulierenden Methoden wie Zuweisungen, Speicherreservierungen und Builder-Erzeugungen sowie der Destruktor sind hingegen als nicht threadsicher definiert [SWS_DM_01161], [SWS_DM_01162], [SWS_DM_01163], [SWS_DM_01164], [SWS_DM_01165], [SWS_DM_01158]. Ein nebenläufiger Zugriff auf dasselbe Objekt bedarf daher anwendungsseitiger Synchronisation.
Nutzungspfad
Der typische Ablauf beim Aufbau einer dynamischen Dienstzugriffsliste umfasst die folgenden Phasen:
Speichervoraballokation: Vor dem Hinzufügen von Dienstmustern kann die Anwendung mit Reserve Speicher für alle erwarteten Dienstmuster vorab reservieren [SWS_DM_01163]. Die übergebenen Parameter numberOfServiceHeads und maxServiceHeadSize erlauben eine Worst-Case-Abschätzung des benötigten Speichers, um spätere dynamische Reallokationen zu minimieren.
Erzeugung von Mustern: Die Anwendung ruft MakeServiceBuilder auf, um ein Diagnosedienstmuster einzuleiten. Dies geschieht entweder anhand eines einzelnen SID-Bytes [SWS_DM_01164] oder einer Byte-Sequenz serviceHead für tiefergehende Musterprüfungen [SWS_DM_01165].
Musterkonfiguration: Die Methode liefert ein Objekt vom Typ DynamicAccessListDiagServiceBuilder zurück [SWS_DM_01164], welches die Anwendung anschließend konfiguriert.
Alle öffentlichen Elementfunktionen und Konstruktoren der Klasse sind als noexcept deklariert und garantieren strikte Ausnahmesicherheit (exception safe) [SWS_DM_01157], [SWS_DM_01163], [SWS_DM_01164]. Fehlerzustände in Form von C++-Ausnahmen oder Rückgabe von ara::core::Result mit Fehlercodes treten an dieser Schnittstelle nicht auf. Bei der Speicherreservierung via Reserve darf die Angabe eine Schätzung sein; eine Unterschätzung führt nicht zum Funktionsabbruch, dürfte jedoch spätere Neuallokationen erforderlich machen [SWS_DM_01163]. Frage Q-8d33a0315da27aed (offen) Anwendungsentwickler müssen sicherstellen, dass die nicht threadsicheren Funktionen Reserve, MakeServiceBuilder und die Zuweisungsoperatoren niemals ohne externe Verriegelung gleichzeitig mit demselben Objekt ausgeführt werden.
Dieser Leitfaden basiert auf dem AUTOSAR-Standard Release R25-11 und fasst die Spezifikation der Klasse ara::diag::DiagnosticServiceDynamicAccessList zusammen.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: cfdb5e234f29HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Funktion MakeServiceBuilder der Klasse ara::diag::DiagnosticServiceDynamicAccessList dient einer adaptiven Anwendung dazu, ein Muster für die dynamische Zugriffsliste (DynamicAccessList) über einen einzelnen Service-Identifier (sid) zu initiieren ([SWS_DM_01164]). Sie nimmt den Parameter sid vom Typ DynamicAccessListDiagServiceBuilder::Byte entgegen und liefert eine neue Instanz von DynamicAccessListDiagServiceBuilder zurück ([SWS_DM_01164]). Durch diesen Aufruf veranlasst die Anwendung die Diagnostic-Server-Instanz, eine neue DynamicAccessList beginnend mit dem übergebenen Einzelbyte-Muster aufzubauen ([SWS_DM_01218]; AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 „DynamicAccessList Creation and Update“).
Zusammenspiel und Alternativen
Nach dem Start ist die dynamische Zugriffsliste aller Clients standardmäßig leer ([SWS_DM_01214]). Neben dieser Funktion steht der Anwendung eine Überladung mit einem Byte-String (serviceHead) zur Verfügung ([SWS_DM_01165]). Beide Überladungen stellen den Einstiegspunkt dar, mit dem die Erstellung einer neuen Zugriffsliste im Server angestoßen wird ([SWS_DM_01218]).
Fehlerbehandlung und Nebenläufigkeit
Die Schnittstelle ist als noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert ([SWS_DM_01164]). Sie wirft keine Ausnahmen und gibt keine Fehlercodes zurück; fehlerhafte Service-Identifier dürften daher erst bei der späteren Auswertung des Musters durch den Diagnostic Server auffallen. Frage Q-eacef79ec6be9fcd (offen) In Bezug auf Nebenläufigkeit ist die Funktion explizit als nicht threadsicher (not thread-safe) eingestuft ([SWS_DM_01164]). Bei parallelem Zugriff aus mehreren Ausführungskontexten muss die aufrufende Anwendung für eine externe Synchronisation sorgen.
Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7426838ef9dfHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode MakeServiceBuilder der Klasse ara::diag::DiagnosticServiceDynamicAccessList dient einer Adaptive Application zur Erstellung eines Diagnosemusters für die DynamicAccessList anhand einer Bytefolge ([SWS_DM_01165]).
Parameter:serviceHead (Typ DynamicAccessListDiagServiceBuilder::Byte String) übergibt eine Bytefolge, die den Beginn des Musters für den Diagnoseabgleich definiert ([SWS_DM_01165]).
Rückgabewert: Gibt eine Instanz von DynamicAccessListDiagServiceBuilder zur weiteren Ausgestaltung des Dienstmusters zurück ([SWS_DM_01165]).
Die Funktion ist als noexcept deklariert und ausnahmesicher (exception safe), erzeugt also keine C++-Exceptions ([SWS_DM_01165]). Fehlercodes oder DET-/DEM-Meldungen sind für diesen Aufruf nicht spezifiziert. Da die Operation als nicht threadsicher (not thread-safe) eingestuft ist, müssen parallele Aufrufe auf derselben Instanz anwendungsseitig synchronisiert werden ([SWS_DM_01165]).
Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R25-11 erzeugt.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 77bde14da8eeHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ara::diag::DiagnosticServiceDynamicAccessList::Reserve allokiert vorab Speicher für Service-Heads innerhalb einer Instanz von DiagnosticServiceDynamicAccessList ([SWS_DM_01163], SWS Diagnostics §8.13.1.1.3.3 „Reserve“). Diese Vorallokation muss nicht die exakte Speichergröße treffen, sondern darf als Worst-Case-Abschätzung des maximal benötigten Speichers berechnet werden ([SWS_DM_01163]).
Verwendung und Parameter
Der Aufruf erfolgt synchron und verarbeitet zwei Eingabeparameter ([SWS_DM_01163]):
numberOfServiceHeads (std::size_t): Anzahl der diagnostischen Servicemuster (Patterns).
maxServiceHeadSize (std::size_t): Erwartete maximale Anzahl von Diagnose-Bytes innerhalb eines einzelnen Musters.
Die Funktion liefert keinen Rückgabewert (void) und ist mit noexcept sowie der Eigenschaft exception safe spezifiziert ([SWS_DM_01163]). Eine Fehlerbehandlung über Rückgabecodes oder Ausnahmen existiert nicht.
Nebenläufigkeit und Einschränkungen
Die Funktion ist als not thread-safe eingestuft ([SWS_DM_01163]). Nebenläufige Zugriffe mehrerer Threads auf dieselbe Instanz erfordern daher zwingend eine externe Synchronisation. Vermutlich wird die Methode vor dem Registrieren von Service-Patterns aufgerufen, um spätere Speicher-Reallokationen zur Laufzeit zu minimieren. Frage Q-e58b6f12a3a0adac (offen)
Abgrenzung
Zu unterscheiden ist diese Methode von gleichnamigen SOVD-Funktionen wie in DiagnosticSovdArrayContentElementDataView ([SWS_DM_02240]), DiagnosticSovdRecordContentElementDataView ([SWS_DM_02283]) oder DiagnosticSovdContentElementData ([SWS_DM_02345]), die jeweils eine Kapazität entgegennehmen und als thread-safe spezifiziert sind.
Dieser Verwendungshinweis basiert auf der Spezifikation AUTOSAR Adaptive R25-11.
gemini-3.8-flash-medium· 2026-10-13