класс 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 |
Руководство пользователяСОЗДАНО ИИ
Инкапсулирует типизированные полезные данные и их атрибуты для передачи в адаптивную систему журналирования.
Инкапсулирует типизированные полезные данные и их атрибуты для передачи в адаптивную систему журналирования.
Шаблонный класс ara::log::Argument служит в модуле log типом инкапсуляции для аргумента полезных данных и его атрибутов. В качестве обобщенного носителя данных структура принимает аргумент типа T и, вероятно, обеспечивает типобезопасную передачу в приемники журналирования. Вопрос (открытый) Конкретная структура и внутренние члены класса определяются производителем, поэтому переносимый код приложения не должен опираться на специфические структуры данных. Обозначение как final запрещает наследование, что, предположительно, поддерживает компактную и неизменяемую семантику значений.
Контекст
Класс ara::log::Argument образует в модуле журналирования AUTOSAR Adaptive Platform обобщенный тип-обертку, отвечающий за прием и инкапсуляцию аргумента полезных данных (payload argument) вместе с его специфическими атрибутами. Согласно синтаксису класса, он реализован как шаблон с параметром типа T. Это, вероятно, служит для приема полезных данных любых примитивных или сложных типов данных без необходимости предоставления инфраструктурой журналирования отдельных интерфейсов для каждого типа. Вопрос Q-a8237897f16d62c7 (открытый)
В качестве партнеров по взаимодействию выступают, с одной стороны, компоненты на стороне приложения, желающие протоколировать информацию времени выполнения, а с другой стороны — внутренние механизмы журналирования модуля log. В распределенных и поддерживающих диагностику автомобильных системах журналирование часто требует не просто вывода самого по себе значения, но и связывания этого значения с атрибутами. Класс ara::log::Argument берет на себя задачу объединения элемента данных и его описательных признаков в единую логическую сущность.
Жизненный цикл
Объявление класса как template <typename T> class Argument final определяет, что ara::log::Argument не может использоваться в качестве базового класса для дальнейших специализаций. Ключевое слово final, вероятно, целенаправленно предотвращает наследование, чтобы гарантировать компактную семантику значений и исключить потенциальные источники ошибок, такие как срезка объектов (object slicing) при передаче аргументов. Вопрос Q-cfcfbbdeaad3a21b (открытый)
Структура класса согласно спецификации AUTOSAR зависит от производителя (implementation-defined). Поэтому внутренняя реализация хранения, конструкторов и полей атрибутов возлагается на соответствующего поставщика платформы. Разработчикам приложений следует учитывать, что внутреннее представление атрибутов и полей данных может варьироваться в зависимости от производителя, и поэтому нельзя предполагать прямой доступ к внутренним членам или фиксированное размещение в памяти. Вопрос Q-0630c61b22bcaab0 (открытый)
Что касается отношений владения и времени жизни, экземпляры ara::log::Argument, как правило, создаются как кратковременные. Они возникают в контексте предстоящей операции журналирования, передают аргумент полезных данных в соответствующие потоки или буферы журналирования и снова освобождаются после завершения операции записи. В отношении конкурентности определяемая производителем структура означает, что одновременного доступа к одному и тому же экземпляру без внешней синхронизации следует избегать. Рекомендуется создавать и обрабатывать экземпляры аргументов локально в соответствующем потоке выполнения.
Путь использования
Концептуальный путь использования ara::log::Argument подразделяется на фазы инкапсуляции, перенаправления и обработки:
- Создание и инкапсуляция: значение полезных данных типа
Tинкапсулируется вместе с соответствующими атрибутами в экземпляреara::log::Argument<T>. - Передача в систему журналирования: инкапсулированный аргумент передается в интерфейсы модуля
log, например, через операторы потокового вывода или функции журналирования. - Обработка и форматирование: инфраструктура журналирования анализирует инкапсулированное значение полезных данных, а также его атрибуты, форматирует вывод в соответствии с настроенным приемником (например, консоль, бэкенд DLT или постоянное хранилище) и сериализует данные.
- Уничтожение: по завершении инструкции протоколирования жизненный цикл временного объекта аргумента автоматически завершается при выходе из области видимости.
Благодаря этому стандартизированному процессу класс обеспечивает согласованную передачу атрибутов полезных данных вместе со значением полезных данных без необходимости управления проприетарными буферными конструкциями в коде приложения.
Этот текст создан ИИ. Он основан на формальных данных спецификации AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал