Обеспечивает потокобезопасный доступ только для чтения к элементам массива объекта диагностических данных SOVD.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 46670b91e1adПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Обеспечивает потокобезопасный доступ только для чтения к элементам массива объекта диагностических данных SOVD.
Класс ara::diag::DiagnosticSovdArrayContentElementDataConstView предоставляет доступное только для чтения представление на DiagnosticSovdContentElementData типа массива для эффективного диагностического опроса [SWS_DM_02248]. Приложения сначала проверяют статус целостности с помощью HasError(), а затем обращаются к элементам массива либо произвольным образом через operator[], либо итеративно через CBegin() и CEnd()[SWS_DM_02253]. Все операции реализованы как thread-safe и исключебно-безопасные (noexcept), однако предполагают непрерывную валидность базового элемента, на который указывает ссылка.
Контекст
Класс ara::diag::DiagnosticSovdArrayContentElementDataConstView предоставляет доступное только для чтения представление (const view) на элемент диагностических данных типа массива в рамках диагностической архитектуры Adaptive AUTOSAR для SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02248] (AUTOSAR_AP_SWS_Diagnostics §8.60.3 «Class: DiagnosticSovdArrayContentElementDataConstView»). Он обеспечивает контролируемый доступ на чтение к последовательным элементам диагностического содержимого без необходимости копирования базового буфера данных.
К основным партнерам по взаимодействию класса относятся:
вызывающее диагностическое приложение, оценивающее данные массива,
ссылочный DiagnosticSovdContentElementData, который хранит конкретные элементы массива и на который осуществляется ссылка при произвольном доступе через [SWS_DM_02253],
вспомогательный тип DiagnosticSovdArrayContentElementDataConstIterator, создаваемый для стандартных итераций по элементам массива [SWS_DM_02254].
Класс доступен через заголовочный файл #include "ara/diag/diagnostic_sovd_content_element_data.h"[SWS_DM_02248]. Будучи чисто интерфейсным представлением, он не владеет собственно данными массива. Интерпретация: время жизни экземпляра представления привязано к действительности базового DiagnosticSovdContentElementData; объект данных должен оставаться в памяти на протяжении всего времени использования представления. Вопрос Q-1a3079bdd09b4ddd (открытый)
Что касается параллелизма, все функции-члены класса явно объявлены как thread-safe [SWS_DM_02250], [SWS_DM_02253]. Таким образом, несколько потоков могут одновременно обращаться к одному и тому же экземпляру представления на чтение (интерпретация: при условии, что базовый объект данных параллельно не изменяется операциями записи). Вопрос Q-61e5fa3990052e70 (открытый) Кроме того, все методы гарантируют полную безопасность исключений (exception safe) и без исключения специфицированы с noexcept[SWS_DM_02249], [SWS_DM_02251]. Поскольку речь идет о неизменяемом представлении, класс не имеет внутренних переходов состояний или сложных фаз жизненного цикла.
Путь использования
Обычный порядок использования данных массива подразделяется на проверку целостности, запрос размерности и извлечение данных:
Проверка целостности: перед доступом приложению следует проверить через HasError(), присутствует ли элемент содержимого без ошибок [SWS_DM_02249].
Доступ к данным: для доступа к элементам массива предусмотрено два пути:
Произвольный доступ по индексу: через operator[](std::size_t index) запрашивается ссылка на целевой элемент, инкапсулированная в ara::core::Result<std::reference_wrapper<DiagnosticSovdContentElementData const>>[SWS_DM_02253].
Класс отказывается от исключений C++ и сообщает о функциональных ошибках через ara::core::Result:
Ошибочное содержимое данных: если элемент содержимого содержит ошибочные данные, HasError() возвращает не пустой результат успешного выполнения, а код ошибки типа ara::diag::DiagSovdErrc[SWS_DM_02249].
Конфликт типов при доступе по индексу:operator[] строго требует, чтобы элемент, на который указывает ссылка, действительно относился к типу ArrayContentElementData[SWS_DM_02253]. Если это не так, вызов завершается ошибкой и возвращает соответствующий объект ошибки в Result вместо ссылки.
Границы индекса: поскольку operator[] разрешено вызывать только в пределах допустимого диапазона, вызывающим сторонам следует предварительно убедиться через Size()[SWS_DM_02250] или Empty()[SWS_DM_02252], что запрошенный индекс существует.
Данное руководство основано на спецификации AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал