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.
Repräsentiert eine im AUTOSAR-Metamodell definierte Funktionsgruppe zur typisierten Identifikation zur Laufzeit.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: de9017db52cfHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Repräsentiert eine im AUTOSAR-Metamodell definierte Funktionsgruppe zur typisierten Identifikation zur Laufzeit.
Die Klasse dient als implementierungsspezifische Laufzeitrepräsentation einer im AUTOSAR-Metamodell definierten Funktionsgruppe. Ihre Instanziierung erfolgt ausschließlich über einen Instanz-Spezifizierer des Funktionsgruppen-Ports [SWS_EM_02586], an dessen Pfad das Objekt während seiner gesamten Lebensdauer fest gebunden bleibt. Zur Vermeidung von Problemen bei der Ressourcenallokation ist die Klasse nicht kopierbar, unterstützt jedoch eine ausnahmesichere Move-Semantik [SWS_EM_02328]. Über Vergleichsoperatoren lässt sich feststellen, ob zwei Instanzen dasselbe Metamodell-Element abbilden.
Kontext
Die Klasse ara::exec::FunctionGroup fungiert im Adaptive-Plattform-Modul exec (Execution Management) als Repräsentation einer im AUTOSAR-Metamodell (ARXML) definierten Funktionsgruppe. Eine Instanz dieser Klasse stellt eine implementierungsspezifische Abstraktion der im Metamodell hinterlegten Informationen bereit. Gemäß Spezifikation bleibt der interne Wert eines Objekts nach seiner Erzeugung auf Basis des ARXML-Pfads über seine gesamte Lebensdauer hinweg fest an dieses Metamodell-Element gebunden.
Als wesentliche Interaktionspartner treten die anwendende Softwarekomponente (State Client), der Instanz-Spezifizierer (ara::core::InstanceSpecifier) sowie das zugrundeliegende Metamodell in Erscheinung. Die Verknüpfung mit der Systemkonfiguration erfolgt gezielt über einen InstanceSpecifier, welcher den RPortPrototype eines StateClientInterface referenziert [SWS_EM_02586]. Die Klasse ermöglicht es Prozessen und Kontrollinstanzen somit, Funktionsgruppen typisiert zu referenzieren und auf Identität zu prüfen, ohne direkt mit unstrukturierten Pfaden oder Modellbeschreibungen hantieren zu müssen.
Kontextdiagramm: Einbindung der Klasse ara::exec::FunctionGroup zwischen Port-Spezifikation und Metamodell. Quellen: [SWS_EM_02586].
Lebenszyklus
Die Erzeugung und Verwaltung von ara::exec::FunctionGroup-Objekten folgt strengen Regeln bezüglich Ressourcenverwaltung und Speicherintegrität. Ein parameterloser Standardkonstruktor ist explizit gelöscht (= delete) [SWS_EM_02321]. Stattdessen wird eine Instanz zwingend über den regulären Konstruktor unter Übergabe einer Konstanten-Referenz auf einen ara::core::InstanceSpecifier instanziiert [SWS_EM_02586]. Dieser Konstruktor ist als ausnahmesicher (noexcept) und thread-sicher deklariert.
Hinsichtlich der Besitzverhältnisse und des Kopiervorgangs ist die Klasse als Move-Only-Datentyp ausgelegt. Sowohl der Kopierkonstruktor [SWS_EM_02322] als auch der Kopierzuweisungsoperator [SWS_EM_02327] sind gelöscht, um potenzielle Konflikte und Laufzeitprobleme bei der Zuweisung interner Ressourcen während Kopiervorgängen von vornherein auszuschließen. Eine Weitergabe oder Reorganisation von Instanzen ist ausschließlich über Verschiebeoperationen möglich: Der Move-Konstruktor [SWS_EM_02328] und der Move-Zuweisungsoperator [SWS_EM_02329] ermöglichen den effizienten Eigentumsübergang auf ein neues oder bestehendes Objekt. Interpretation: Bei einem Verschiebevorgang dürfte das Zielobjekt die Bindung an das Metamodell-Element nahtlos übernehmen, während die Quellinstanz in einen gültigen, aber unspezifizierten Zustand versetzt wird. Frage Q-99b40860db69ffe6 (offen)
Die Zerstörung erfolgt deterministisch über den Destruktor [SWS_EM_02266], der ebenfalls als ausnahmesicher (noexcept) definiert ist. Während die Konstruktion über einen InstanceSpecifier[SWS_EM_02586] thread-sicher ist, sind die Move-Operationen [SWS_EM_02328], [SWS_EM_02329] sowie der Destruktor [SWS_EM_02266] als nicht thread-sicher (not thread-safe) spezifiziert. Greifen mehrere Ausführungsstränge nebenläufig auf dieselbe Instanz zu, ist daher eine anwendungsseitige Synchronisation erforderlich.
Nutzungspfad
Der reguläre Einsatz von ara::exec::FunctionGroup umfasst typischerweise folgende Sequenz von Arbeitsschritten:
Bereitstellung des Port-Bezeichners: Die Anwendung identifiziert den gewünschten Zustandsschnittstellen-Port anhand seines Modellpfads in Form eines ara::core::InstanceSpecifier.
Instanziierung: Über den parametrisierten Konstruktor wird die FunctionGroup-Instanz erzeugt und fest an das Metamodell-Element des Ziel-Ports gebunden [SWS_EM_02586].
Identitätsprüfung und Vergleich: Im Rahmen von Zustandsabfragen oder Validierungen können zwei Instanzen über die relationalen Operatoren operator==[SWS_EM_02267] bzw. operator!=[SWS_EM_02268] verglichen werden. Ein Vergleich liefert genau dann true (beim Gleichheitsoperator), wenn beide Instanzen exakt dasselbe Element im ARXML-Metamodell repräsentieren. Beide Operatoren sind thread-sicher und ausnahmesicher.
Verlagerung oder Bereinigung: Sofern das Objekt in Containerstrukturen übertragen oder zwischen Modulen weitergereicht werden soll, erfolgt dies via Move-Semantik [SWS_EM_02328], [SWS_EM_02329]. Verlässt das Objekt seinen Gültigkeitsbereich, gibt der Destruktor [SWS_EM_02266] alle zugeordneten Bindungen frei.
Fehlerszenarien
Im Bereich der Fehlerszenarien zeichnet sich die Schnittstelle durch ein rigides, fehlervermeidendes Design aus:
Unerlaubte Kopiervorgänge: Versuche, Instanzen über den Kopierkonstruktor [SWS_EM_02322] oder Kopierzuweisungsoperator [SWS_EM_02327] zu duplizieren, führen unmittelbar zu einem Fehler bei der Kompilierung (Compile-Time-Error).
Fehlender Instanzbezeichner: Eine unvollständige Initialisierung ohne Metamodellbezug wird unterbunden, da der parameterlose Konstruktor gelöscht ist [SWS_EM_02321].
Ausnahmesicherheit (Exception Safety): Sämtliche deklarierten Methoden der Klasse – namentlich Konstruktion über einen Instanz-Spezifizierer [SWS_EM_02586], Verschiebe-Operationen [SWS_EM_02328], [SWS_EM_02329], Vergleichsoperatoren [SWS_EM_02267], [SWS_EM_02268] und Destruktor [SWS_EM_02266] – sind als noexcept deklariert und werfen keine C++-Ausnahmen.
Ungültige Nebenläufigkeit: Da Move-Operationen und Destruktor nicht thread-sicher sind, führen unkoordinierte parallele Zugriffe zu undefiniertem Verhalten (Race Conditions), was auf Aufruferebene durch Synchronisationsmechanismen verhindert werden muss.
Dieser Leitfaden wurde durch einen KI-Assistenten auf Basis der AUTOSAR-Spezifikation R25-11 kuratiert.
gemini-3.8-flash-medium· 2026-10-13