Class representing Function Group defined in meta-model (ARXML). An instance of this class will represent Function Group defined inside meta-model (ARXML). This class is intended to be an implementation specific representation, of information inside meta-model. Once created based on ARXML path, its internal value stays bounded to it for entire lifetime of a object.
Vertegenwoordigt een in het AUTOSAR-metamodel gedefinieerde functiegroep voor getypeerde identificatie tijdens runtime.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: de9017db52cfHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Vertegenwoordigt een in het AUTOSAR-metamodel gedefinieerde functiegroep voor getypeerde identificatie tijdens runtime.
De klasse dient als implementatiespecifieke runtime-representatie van een in het AUTOSAR-metamodel gedefinieerde functiegroep. De instantiëring ervan vindt uitsluitend plaats via een instance specifier van de functiegroepport [SWS_EM_02586], aan het pad waarvan het object gedurende zijn gehele levensduur vast gebonden blijft. Om problemen bij de toewijzing van resources te voorkomen, is de klasse niet kopieerbaar, maar ondersteunt deze wel een uitzonderingsveilige move-semantiek [SWS_EM_02328]. Via vergelijkingsoperatoren kan worden vastgesteld of twee instanties hetzelfde metamodelelement representeren.
Context
De klasse ara::exec::FunctionGroup fungeert in de Adaptive Platform-module exec (Execution Management) als representatie van een in het AUTOSAR-metamodel (ARXML) gedefinieerde functiegroep. Een instantie van deze klasse biedt een implementatiespecifieke abstractie van de in het metamodel vastgelegde informatie. Volgens de specificatie blijft de interne waarde van een object na aanmaak op basis van het ARXML-pad gedurende zijn gehele levensduur vast gebonden aan dit metamodelelement.
Als voorname interactiepartners treden de toepassende softwarecomponent (State Client), de instance specifier (ara::core::InstanceSpecifier) en het onderliggende metamodel op de voorgrond. De koppeling met de systeemconfiguratie vindt gericht plaats via een InstanceSpecifier, die refereert aan de RPortPrototype van een StateClientInterface[SWS_EM_02586]. De klasse stelt processen en controle-instanties zo in staat om getypeerd naar functiegroepen te verwijzen en deze op identiteit te controleren, zonder direct met ongestructureerde paden of modelbeschrijvingen te hoeven werken.
Contextdiagram: Integratie van de klasse ara::exec::FunctionGroup tussen portspecificatie en metamodel. Bronnen: [SWS_EM_02586].
Levenscyclus
Het aanmaken en beheren van ara::exec::FunctionGroup-objecten volgt strikte regels met betrekking tot resourcebeheer en geheugenintegriteit. Een parameterloze standaardconstructor is expliciet verwijderd (= delete) [SWS_EM_02321]. In plaats daarvan wordt een instantie dwingend geïnstantieerd via de reguliere constructor onder doorgifte van een constante referentie naar een ara::core::InstanceSpecifier[SWS_EM_02586]. Deze constructor is gedeclareerd als uitzonderingsveilig (noexcept) en thread-safe.
Wat betreft eigendomsverhoudingen en het kopieerproces is de klasse ontworpen als move-only-datatype. Zowel de copy constructor [SWS_EM_02322] als de copy assignment operator [SWS_EM_02327] zijn verwijderd om potentiële conflicten en runtimeproblemen bij het toewijzen van interne resources tijdens kopieeracties van meet af aan uit te sluiten. Overdracht of reorganisatie van instanties is uitsluitend mogelijk via verplaatsingsoperaties: de move constructor [SWS_EM_02328] en de move assignment operator [SWS_EM_02329] maken een efficiënte eigendomsoverdracht naar een nieuw of bestaand object mogelijk. Interpretatie: Bij een verplaatsingsoperatie neemt het doelobject de binding aan het metamodelelement vermoedelijk naadloos over, terwijl de broninstantie in een geldige, maar niet-gespecificeerde toestand wordt gebracht. Vraag Q-99b40860db69ffe6 (open)
Vernietiging vindt deterministisch plaats via de destructor [SWS_EM_02266], die eveneens als uitzonderingsveilig (noexcept) is gedefinieerd. Terwijl de constructie via een InstanceSpecifier[SWS_EM_02586] thread-safe is, zijn de move-operaties [SWS_EM_02328], [SWS_EM_02329] en de destructor [SWS_EM_02266] gespecificeerd als niet thread-safe (not thread-safe). Als meerdere executiedraden gelijktijdig toegang hebben tot dezelfde instantie, is daarom synchronisatie aan de applicatiezijde vereist.
Gebruikspad
Het reguliere gebruik van ara::exec::FunctionGroup omvat doorgaans de volgende reeks stappen:
Beschikbaarstelling van de port-identifier: De applicatie identificeert de gewenste toestandinterfaceport aan de hand van het modelpad in de vorm van een ara::core::InstanceSpecifier.
Instantiëring: Via de geparametriseerde constructor wordt de FunctionGroup-instantie aangemaakt en vast gebonden aan het metamodelelement van de doelport [SWS_EM_02586].
Identiteitscontrole en vergelijking: In het kader van toestandsopvragingen of validaties kunnen twee instanties worden vergeleken via de relationele operatoren operator==[SWS_EM_02267] respectievelijk operator!=[SWS_EM_02268]. Een vergelijking levert dan en slechts dan true op (bij de gelijkheidsoperator) wanneer beide instanties exact hetzelfde element in het ARXML-metamodel representeren. Beide operatoren zijn thread-safe en uitzonderingsveilig.
Verplaatsing of opruiming: Indien het object moet worden overgedragen naar containerstructuren of worden doorgegeven tussen modules, gebeurt dit via move-semantiek [SWS_EM_02328], [SWS_EM_02329]. Verlaat het object zijn geldigheidsgebied (scope), dan geeft de destructor [SWS_EM_02266] alle toegewezen bindingen vrij.
Foutscenario's
Op het gebied van foutscenario's kenmerkt de interface zich door een rigide, foutvermijdend ontwerp:
Niet-toegestane kopieeracties: Pogingen om instanties te dupliceren via de copy constructor [SWS_EM_02322] of copy assignment operator [SWS_EM_02327] leiden direct tot een compileerfout (compile-time error).
Ontbrekende instance-identifier: Een onvolledige initialisatie zonder metamodelverwijzing wordt verhinderd, omdat de parameterloze constructor is verwijderd [SWS_EM_02321].
Uitzonderingsveiligheid (exception safety): Alle gedeclareerde methoden van de klasse – met name constructie via een instance specifier [SWS_EM_02586], verplaatsingsoperaties [SWS_EM_02328], [SWS_EM_02329], vergelijkingsoperatoren [SWS_EM_02267], [SWS_EM_02268] en destructor [SWS_EM_02266] – zijn gedeclareerd als noexcept en werpen geen C++-excepties op.
Ongeldige gelijktijdigheid: Aangezien move-operaties en de destructor niet thread-safe zijn, leiden ongecoördineerde parallelle toegangen tot ongedefinieerd gedrag (race conditions), wat op aanroepersniveau moet worden voorkomen door synchronisatiemechanismen.
Deze handleiding is samengesteld door een AI-assistent op basis van de AUTOSAR-specificatie R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel