Stelt adaptieve applicaties in staat dynamische toegangslijsten en servicepatronen voor diagnosediensten op te bouwen.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d14f1d69eb64HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt adaptieve applicaties in staat dynamische toegangslijsten en servicepatronen voor diagnosediensten op te bouwen.
De klasse dient voor adaptieve applicaties om dynamische toegangslijsten voor diagnosediensten aan te maken en te configureren [SWS_DM_01156]. Na optionele voorafgaande allocatie van geheugen creëert zij via methoden zoals MakeServiceBuilder instanties voor patroondefinitie van afzonderlijke service-ID's of byte-sequenties [SWS_DM_01164]. Alle lidfuncties zijn als noexcept uitzonderingsveilig gedeclareerd, terwijl modificerende operaties applicatiezijdig moeten worden beschermd tegen gelijktijdige toegang [SWS_DM_01163].
Context
De klasse ara::diag::DiagnosticServiceDynamicAccessList dient voor een adaptieve applicatie (AA) om een dynamische toegangslijst (DynamicAccessList) voor diagnosediensten op te bouwen [SWS_DM_01156]. Zij fungeert als factory en beheereenheid voor servicepatronen door instanties van DynamicAccessListDiagServiceBuilder aan te maken [SWS_DM_01164], [SWS_DM_01165]. In de architectuur interacteert de applicatie direct met de lijst om toegangsregels te definiëren aan de hand van service-ID's (SID) of byte-sequenties, welke de basis vormen voor de dynamische toegangscontrole in het diagnosesubsysteem SWS Diagnostics §8.13.1 “Class: DiagnosticServiceDynamicAccessList”.
Levenscyclus
Instanties van DiagnosticServiceDynamicAccessList worden aangemaakt via de parameterloze standaardconstructor [SWS_DM_01157]. De klasse is gedeclareerd als finalSWS Diagnostics §8.13.1 “Class: DiagnosticServiceDynamicAccessList”. Zij ondersteunt volwaardige waardesemantiek: objecten kunnen zowel worden gekopieerd als verplaatst, waarvoor corresponderende kopieer- en move-constructors [SWS_DM_01159], [SWS_DM_01160] evenals toewijzingsoperatoren [SWS_DM_01161], [SWS_DM_01162] beschikbaar zijn. Na de initialisatie bevindt het object zich in de toestand voor patroonopname, voordat het aan het einde van zijn levensduur via de destructor wordt opgeruimd [SWS_DM_01158].
Met betrekking tot gelijktijdigheid zijn de constructors (standaard-, kopieer- en move-constructor) expliciet als thread-safe gespecificeerd [SWS_DM_01157], [SWS_DM_01159], [SWS_DM_01160]. Alle manipulerende methoden zoals toewijzingen, geheugenreserveringen en builder-creaties, evenals de destructor, zijn daarentegen gedefinieerd als niet-thread-safe [SWS_DM_01161], [SWS_DM_01162], [SWS_DM_01163], [SWS_DM_01164], [SWS_DM_01165], [SWS_DM_01158]. Gelijktijdige toegang tot hetzelfde object vereist derhalve synchronisatie aan de applicatiezijde.
Gebruikspad
Het typische verloop bij de opbouw van een dynamische servicetoegangslijst omvat de volgende fasen:
Voorafgaande geheugenallocatie: Voorafgaand aan het toevoegen van servicepatronen kan de applicatie met Reserve vooraf geheugen reserveren voor alle verwachte servicepatronen [SWS_DM_01163]. De meegegeven parameters numberOfServiceHeads en maxServiceHeadSize maken een worstcaseschatting van het benodigde geheugen mogelijk om latere dynamische herallocaties te minimaliseren.
Aanmaken van patronen: De applicatie roept MakeServiceBuilder aan om een diagnosedienstpatroon te initiëren. Dit gebeurt ofwel aan de hand van een enkele SID-byte [SWS_DM_01164] ofwel van een byte-sequentie serviceHead voor diepgaandere patrooncontroles [SWS_DM_01165].
Patroonconfiguratie: De methode levert een object van het type DynamicAccessListDiagServiceBuilder op [SWS_DM_01164], dat de applicatie vervolgens configureert.
Alle openbare memberfuncties en constructors van de klasse zijn als noexcept gedeclareerd en garanderen strikte uitzonderingsveiligheid (exception safe) [SWS_DM_01157], [SWS_DM_01163], [SWS_DM_01164]. Fouttoestanden in de vorm van C++-exceptions of teruggave van ara::core::Result met foutcodes treden op deze interface niet op. Bij de geheugenreservering via Reserve mag de opgave een schatting zijn; een onderschatting leidt niet tot het afbreken van de functie, maar zal vermoedelijk latere herallocaties noodzakelijk maken [SWS_DM_01163]. Vraag Q-8d33a0315da27aed (open) Applicatieontwikkelaars moeten ervoor zorgen dat de niet-thread-safe functies Reserve, MakeServiceBuilder en de toewijzingsoperatoren nooit zonder externe vergrendeling gelijktijdig met hetzelfde object worden uitgevoerd.
Deze handleiding is gebaseerd op de AUTOSAR-standaard Release R25-11 en vat de specificatie van de klasse ara::diag::DiagnosticServiceDynamicAccessList samen.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: cfdb5e234f29HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone functie MakeServiceBuilder van de klasse ara::diag::DiagnosticServiceDynamicAccessList dient er voor een adaptieve applicatie toe om een patroon voor de dynamische toegangslijst (DynamicAccessList) via een afzonderlijke service-identifier (sid) te initiëren ([SWS_DM_01164]). Ze accepteert de parameter sid van het type DynamicAccessListDiagServiceBuilder::Byte en retourneert een nieuwe instantie van DynamicAccessListDiagServiceBuilder ([SWS_DM_01164]). Door deze aanroep brengt de applicatie de Diagnostic Server-instantie ertoe een nieuwe DynamicAccessList op te bouwen, beginnend met het overgedragen enkelbytepatroon ([SWS_DM_01218]; AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 “DynamicAccessList Creation and Update”).
Interactie en alternatieven
Na het starten is de dynamische toegangslijst van alle clients standaard leeg ([SWS_DM_01214]). Naast deze functie staat ter beschikking van de applicatie een overbelasting met een bytestring (serviceHead) ([SWS_DM_01165]). Beide overbelastingen vormen het instappunt waarmee het aanmaken van een nieuwe toegangslijst in de server in gang wordt gezet ([SWS_DM_01218]).
Foutafhandeling en gelijktijdigheid
De interface is gedeclareerd als noexcept en gespecificeerd als uitzonderingsveilig (exception safe) ([SWS_DM_01164]). Ze werpt geen uitzonderingen op en geeft geen foutcodes terug; foutieve service-identifiers vallen daarom vermoedelijk pas op bij de latere evaluatie van het patroon door de Diagnostic Server. Vraag Q-eacef79ec6be9fcd (open) Met betrekking tot gelijktijdigheid is de functie expliciet geclassificeerd als niet-draadveilig (not thread-safe) ([SWS_DM_01164]). Bij parallelle toegang vanuit meerdere uitvoeringscontexten moet de aanroepende applicatie zorgen voor een externe synchronisatie.
Deze gebruiksinstructie is gegenereerd door een AI op basis van de AUTOSAR-specificatie R25-11.
This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7426838ef9dfHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode MakeServiceBuilder van de klasse ara::diag::DiagnosticServiceDynamicAccessList dient er voor een Adaptive Application toe om een diagnosepatroon voor de DynamicAccessList aan te maken aan de hand van een bytereeks ([SWS_DM_01165]).
Parameter:serviceHead (type DynamicAccessListDiagServiceBuilder::Byte String) draagt een bytereeks over die het begin van het patroon voor de diagnosevergelijking definieert ([SWS_DM_01165]).
Retourwaarde: Retourneert een instantie van DynamicAccessListDiagServiceBuilder voor de verdere vormgeving van het servicepatroon ([SWS_DM_01165]).
Zusammenspiel en levenscyclus
Bij het opstarten van het systeem is de DynamicAccessList van alle clients standaard leeg ([SWS_DM_01214]). Wordt een overbelasting van MakeServiceBuilder aangeroepen, dan brengt de Diagnostic Server-instantie de aanmaak van een nieuwe DynamicAccessList teweeg, beginnend met het overgedragen bytestring-patroon ([SWS_DM_01218], AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 “DynamicAccessList Creation and Update”). Als alternatief is een overbelasting voor een enkele byte beschikbaar ([SWS_DM_01164]).
Gelijktijdigheid en foutafhandeling
De functie is gedeclareerd als noexcept en uitzonderingsveilig (exception safe), produceert dus geen C++-exceptions ([SWS_DM_01165]). Foutcodes of DET-/DEM-meldingen zijn voor deze aanroep niet gespecificeerd. Omdat de operatie is geclassificeerd als niet-draadveilig (not thread-safe), moeten parallelle aanroepen op dezelfde instantie aan applicatiezijde worden gesynchroniseerd ([SWS_DM_01165]).
Deze gebruiksinstructie is gegenereerd door een AI op basis van de AUTOSAR-specificatie 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 77bde14da8eeHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode ara::diag::DiagnosticServiceDynamicAccessList::Reserve alloceert vooraf geheugen voor service-heads binnen een instantie van DiagnosticServiceDynamicAccessList ([SWS_DM_01163], SWS Diagnostics §8.13.1.1.3.3 “Reserve”). Deze voorafgaande allocatie hoeft niet de exacte geheugengrootte te treffen, maar mag berekend worden als een worst-case-schatting van het maximaal benodigde geheugen ([SWS_DM_01163]).
Gebruik en parameters
De aanroep geschiedt synchroon en verwerkt twee invoerparameters ([SWS_DM_01163]):
numberOfServiceHeads (std::size_t): Aantal diagnostische servicepatronen (patterns).
maxServiceHeadSize (std::size_t): Verwacht maximaal aantal diagnosebytes binnen een afzonderlijk patroon.
De functie levert geen retourwaarde op (void) en is gespecificeerd met noexcept evenals de eigenschap exception safe ([SWS_DM_01163]). Een foutafhandeling via retourcodes of uitzonderingen bestaat niet.
Gelijktijdigheid en beperkingen
De functie is geclassificeerd als not thread-safe ([SWS_DM_01163]). Gelijktijdige toegangen van meerdere threads tot dezelfde instantie vereisen daarom dwingend een externe synchronisatie. Vermoedelijk wordt de methode aangeroepen voorafgaand aan het registreren van service-patterns om latere geheugen-herallocaties tijdens runtime te minimaliseren. Vraag Q-e58b6f12a3a0adac (open)
Afbakening
Deze methode moet worden onderscheiden van gelijknamige SOVD-functies zoals in DiagnosticSovdArrayContentElementDataView ([SWS_DM_02240]), DiagnosticSovdRecordContentElementDataView ([SWS_DM_02283]) of DiagnosticSovdContentElementData ([SWS_DM_02345]), die telkens een capaciteit accepteren en gespecificeerd zijn als thread-safe.
Deze gebruiksinstructie is gebaseerd op de specificatie AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel