class ara::log::Argument
template <typename T> class Argument final {...};
Wrapper type for holding a payload argument with its attributes. The setup of this class is implementation-defined.
| Header-Datei | #include "ara/log/log_stream.h" |
|---|---|
| Forwarding-Header | #include "ara/log/log_fwd.h" |
| Scope | namespace ara::log |
User GuideKI-GENERIERT
Kapselt typisierte Nutzdaten und deren Attribute für die Übergabe an das adaptive Protokollierungssystem.
Kapselt typisierte Nutzdaten und deren Attribute für die Übergabe an das adaptive Protokollierungssystem.
Die Template-Klasse ara::log::Argument dient innerhalb des Moduls log als Kapselungstyp für ein Nutzdatenargument und dessen Attribute. Als generischer Datenträger nimmt die Struktur ein Argument vom Typ T auf und dürfte den typsicheren Transport an Logging-Senken ermöglichen. Frage (offen) Der konkrete Aufbau und die internen Member der Klasse sind herstellerspezifisch definiert, weshalb sich portabler Anwendungscode nicht auf spezifische Datenstrukturen stützen sollte. Durch die Kennzeichnung als final wird eine Ableitung unterbunden, was eine kompakte und unveränderliche Wertsemantik unterstützen dürfte.
Kontext
Die Klasse ara::log::Argument bildet im Logging-Modul der AUTOSAR Adaptive Platform einen generischen Wrapper-Typ, der für die Aufnahme und Kapselung eines Nutzdatenarguments (Payload Argument) zusammen mit seinen spezifischen Attributen zuständig ist. Gemäß der Klassensyntax ist sie als Template mit dem Typparameter T realisiert. Dies dient vermutlich dazu, Nutzdaten beliebiger primitiver oder komplexer Datentypen aufzunehmen, ohne dass die Logging-Infrastruktur für jeden Typ separate Schnittstellen bereitstellen muss. Frage Q-a8237897f16d62c7 (offen)
Als Interaktionspartner fungieren einerseits anwendungsseitige Komponenten, die Laufzeitinformationen protokollieren möchten, und andererseits die internen Protokollierungsmechanismen des Moduls log. In verteilten und diagnosefähigen automobilen Systemen erfordert das Logging häufig nicht nur die reine Ausgabe eines nackten Werts, sondern auch die Verknüpfung des Werts mit Attributen. Die Klasse ara::log::Argument übernimmt hierbei die Aufgabe, das Datum und seine beschreibenden Merkmale in einer logischen Einheit zusammenzufassen.
Lebenszyklus
Die Deklaration der Klasse als template <typename T> class Argument final legt fest, dass ara::log::Argument nicht als Basisklasse für weitere Spezialisierungen genutzt werden kann. Durch das Schlüsselwort final dürfte eine Ableitung gezielt unterbunden werden, um eine kompakte Wertsemantik sicherzustellen und potenzielle Fehlerquellen wie Objekt-Slicing bei der Argumentweitergabe auszuschließen. Frage Q-cfcfbbdeaad3a21b (offen)
Der Aufbau der Klasse ist laut AUTOSAR-Spezifikation herstellerspezifisch (implementation-defined). Daher obliegt die interne Realisierung von Speicherung, Konstruktoren und Attributfeldern dem jeweiligen Plattformanbieter. Anwendungsentwickler sollten sich darauf einstellen, dass die interne Repräsentation der Attribute und Datenfelder herstellerspezifisch variieren dürfte und daher kein direkter Zugriff auf interne Member oder ein festes Speicherlayout angenommen werden darf. Frage Q-0630c61b22bcaab0 (offen)
Hinsichtlich der Besitzverhältnisse und Lebensdauer werden Instanzen von ara::log::Argument in der Regel kurzlebig erzeugt. Sie entstehen im Kontext einer anstehenden Protokollierungsoperation, übergeben das Nutzdatenargument an die entsprechenden Logging-Streams oder -Puffer und werden nach Abschluss des Schreibvorgangs wieder freigegeben. In Bezug auf die Nebenläufigkeit bedeutet der herstellerdefinierte Aufbau, dass der nebenläufige Zugriff auf dieselbe Instanz ohne externe Synchronisation vermieden werden sollte. Es empfiehlt sich, Argument-Instanzen lokal im jeweiligen Ausführungsthread zu instanziieren und zu verarbeiten.
Nutzungspfad
Der konzeptionelle Nutzungspfad von ara::log::Argument gliedert sich in die Phasen der Kapselung, Weiterleitung und Verarbeitung:
- Erzeugung und Kapselung: Ein Nutzdatenwert vom Typ
Twird zusammen mit den zugehörigen Attributen in einer Instanz vonara::log::Argument<T>gekapselt. - Übergabe an das Logging-System: Das gekapselte Argument wird an die Schnittstellen des Moduls
logübergeben, beispielsweise über Streaming-Operatoren oder Logging-Funktionen. - Verarbeitung und Formatierung: Das Logging-Framework wertet den gekapselten Nutzdatenwert sowie dessen Attribute aus, formatiert die Ausgabe gemäß der konfigurierten Senke (z. B. Konsole, DLT-Backend oder persistenter Speicher) und serialisiert die Daten.
- Zerstörung: Mit Beendigung des Log-Statements endet der Lebenszyklus des temporären Argumentobjekts automatisch durch Verlassen des Gültigkeitsbereichs.
Durch diesen standardisierten Ablauf stellt die Klasse sicher, dass Nutzdatenattribute konsistent mit dem Nutzdatenwert transportiert werden, ohne dass Anwendungscode proprietäre Pufferkonstrukte verwalten muss.
Dieser Text wurde von einer KI erstellt. Er basiert auf den formalen Spezifikationsdaten von AUTOSAR R25-11.
gemini-3.8-flash-medium· 2026-10-13