DEENESPTFRRUARHIKOZHNL

klasse ara::log::Argument

[SWS_LOG_00261] Upstream: RS_LT_00003

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"
Scopenamespace ara::log

User GuideAI-GEGENEREERD

Kapselt getypeerde payloadgegevens en de bijbehorende attributen in voor overdracht aan het adaptieve loggingsysteem.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c1790b7e43da Herkomst Open vragen (3)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Kapselt getypeerde payloadgegevens en de bijbehorende attributen in voor overdracht aan het adaptieve loggingsysteem.

De template-klasse ara::log::Argument dient binnen de module log als inkapselingstype voor een payloadargument en de bijbehorende attributen. Als generieke gegevensdrager neemt de structuur een argument van het type T op en maakt deze vermoedelijk het typeveilige transport naar logging-sinks mogelijk. Vraag (open) De concrete opbouw en de interne members van de klasse zijn fabrikantspecifiek gedefinieerd, waardoor overdraagbare applicatiecode niet op specifieke datastructuren mag steunen. Door de aanduiding als final wordt afleiding verhinderd, wat een compacte en onveranderlijke waardesemantiek ondersteunt.

Context

De klasse ara::log::Argument vormt in de logging-module van het AUTOSAR Adaptive Platform een generiek wrappertype dat verantwoordelijk is voor het opnemen en inkapselen van een payloadargument (payload argument) samen met de specifieke attributen ervan. Volgens de klassesyntaxis is deze gerealiseerd als template met de typeparameter T. Dit dient er vermoedelijk toe payload van willekeurige primitieve of complexe datatypen op te nemen, zonder dat de logging-infrastructuur voor elk type afzonderlijke interfaces hoeft te bieden. Vraag Q-a8237897f16d62c7 (open)

Als interactiepartners fungeren enerzijds componenten aan applicatiezijde die runtime-informatie willen loggen, en anderzijds de interne logging-mechanismen van de module log. In gedistribueerde en diagnoseerbare automotive systemen vereist logging vaak niet alleen de pure uitvoer van een naakte waarde, maar ook de koppeling van de waarde aan attributen. De klasse ara::log::Argument neemt hierbij de taak op zich om het gegeven en de beschrijvende kenmerken ervan in een logische eenheid samen te voegen.

Levenscyclus

De declaratie van de klasse als template <typename T> class Argument final legt vast dat ara::log::Argument niet als basisklasse voor verdere specialisaties kan worden gebruikt. Door het sleutelwoord final wordt afleiding vermoedelijk doelgericht verhinderd om een compacte waardesemantiek te waarborgen en potentiële foutbronnen zoals object slicing bij de argumentoverdracht uit te sluiten. Vraag Q-cfcfbbdeaad3a21b (open)

De opbouw van de klasse is volgens de AUTOSAR-specificatie fabrikantspecifiek (implementation-defined). Daarom is de interne realisatie van opslag, constructors en attribuutvelden voorbehouden aan de desbetreffende platformleverancier. Applicatieontwikkelaars moeten er rekening mee houden dat de interne representatie van de attributen en gegevensvelden vermoedelijk fabrikantspecifiek varieert en dat daarom geen directe toegang tot interne members of een vaste geheugenlayout mag worden verondersteld. Vraag Q-0630c61b22bcaab0 (open)

Wat betreft eigendomsverhoudingen en levensduur worden instanties van ara::log::Argument doorgaans kortstondig aangemaakt. Ze ontstaan in de context van een op handen zijnde logging-operatie, geven het payloadargument door aan de overeenkomstige logging-streams of -buffers en worden na afronding van de schrijfbewerking weer vrijgegeven. Met betrekking tot gelijktijdigheid betekent de door de fabrikant gedefinieerde opbouw dat gelijktijdige toegang tot dezelfde instantie zonder externe synchronisatie moet worden vermeden. Het verdient aanbeveling om argumentinstanties lokaal in de betreffende execution thread te instantiëren en te verwerken.

Gebruikspad

Het conceptuele gebruikspad van ara::log::Argument is onderverdeeld in de fasen van inkapseling, doorgifte en verwerking:

  • Aanmaken en inkapseling: Een payloadwaarde van het type T wordt samen met de bijbehorende attributen ingekapseld in een instantie van ara::log::Argument<T>.
  • Overdracht aan het logging-systeem: Het ingekapselde argument wordt doorgegeven aan de interfaces van de module log, bijvoorbeeld via streaming-operatoren of logging-functies.
  • Verwerking en formattering: Het logging-framework evalueert de ingekapselde payloadwaarde en de bijbehorende attributen, formatteert de uitvoer volgens de geconfigureerde sink (bijv. console, DLT-backend of persistent geheugen) en serialiseert de gegevens.
  • Vernietiging: Bij beëindiging van het log-statement eindigt de levenscyclus van het tijdelijke argumentobject automatisch door het verlaten van de scope.

Door dit gestandaardiseerde verloop zorgt de klasse ervoor dat payloadattributen consistent met de payloadwaarde worden getransporteerd, zonder dat applicatiecode propriëtaire bufferconstructies hoeft te beheren.

Deze tekst is opgesteld door een AI. Deze is gebaseerd op de formele specificatiegegevens van AUTOSAR R25-11.