AUTOSAR_EXP_ARAComAPI
FIG-3618104038a53824
962 × 223 px
1 Release(s)
Figure 6.23: Event Allocate/Send sample
SHA-256 Inhalts-Fingerabdruck:
3618104038a53824bd0aad1e4f58b8a3a0c095d8f1bafae4e62f1d4ee0944930
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: C++11/C++14 Code-Listing / API-Verwendungsbeispiel (Skeleton-seitiges Event-Publishing, Code-Fragment).
- Architektur-Kontext: AUTOSAR Adaptive Platform (AP), Teilsystem
ara::com(Communication Management). - Technischer Zweck: Demonstration des Versendens eines Events und des Eigentumsübergangs (
Send()-Pattern mitstd::move) auf Provider-/Skeleton-Seite zum Schutz vor unberechtigtem Datenzugriff nach Verteilung.
2. Komponenten, Entitäten & Schnittstellen
- Service Skeleton / Service-Instanz:
myRadarService: Lokale Instanz einer generierten Skeleton-Klasse (Service-Provider).BrakeEvent: Service-Event-Member der Skeleton-Instanz.
- Speicher- und Zeigertypen:
curSamplePtr: Smart-Pointer-Instanz auf die Event-Nutzdaten, deren Eigentum übertragen wird.
- Schnittstellen & Methoden:
BrakeEvent.Send(...): Verteilungs-API mit Ownership-Transfer.std::move(): Standard-C++-Utility zur expliziten Übertragung der Eigentümerschaft an die Middleware.
3. Dynamisches Verhalten & Sequenzablauf
- Eigentumsübergabe & Dispatch (
Send):- Aufruf von
myRadarService.BrakeEvent.Send(std::move(curSamplePtr)). - Durch
std::movegeht die exklusive Eigentümerschaft an das Binding über. Die Middleware übernimmt die Verteilung an Consumer.
- Aufruf von
- Invalidierung des lokalen Zeigers:
- Nach dem Move befindet sich
curSamplePtrim Zustand moved-from. - Jeder nachfolgende Datenzugriff über
curSamplePtrschlägt fehl, da die Eigentümerschaft abgegeben wurde.
- Nach dem Move befindet sich
4. Normative Relevanz & Entwickler-Hinweise
- Lebenszyklus & Move-Semantik:
- Der Entwickler muss die Move-Semantik zwingend einhalten. Ein Datenzugriff auf
curSamplePtrnach dem Aufruf vonSend()ist unzulässig (Use-After-Move), da der Zeiger seine Gültigkeit und Eigentümerschaft verliert.
- Der Entwickler muss die Move-Semantik zwingend einhalten. Ein Datenzugriff auf
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.