class ReadAccessor : public virtual FileAccessor {...};
ReadAccessor is used to read file data. It provides binary and text mode methods for checking or getting the current byte/character (PeekByte/PeekChar, GetByte/GetChar) methods for reading a section of a binary/text file (Read Binary/ReadText), a method to read a line of text (ReadLine).
Обеспечивает блочное, построчное или посимвольное чтение сохраненных файловых и бинарных данных.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 811820211677ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Обеспечивает блочное, построчное или посимвольное чтение сохраненных файловых и бинарных данных.
Класс ara::per::ReadAccessor предоставляет синхронные методы для последовательного и построчного чтения файлов в бинарном и текстовом режимах [SWS_PER_00421], [SWS_PER_00119]. Наряду с чтением с продвижением курсора он позволяет выполнять предварительный просмотр следующих байтов или символов без изменения позиции указателя. Поскольку экземпляры не являются потокобезопасными, параллельный доступ должен координироваться извне, тогда как в случае ошибки гарантия отката защищает позицию указателя чтения [SWS_PER_00419].
Контекст и область задач
Класс ara::per::ReadAccessor предоставляет интерфейс для синхронного чтения содержимого файлов в рамках управления персистентностью (модуль per) и виртуально наследуется от FileAccessor. Он абстрагирует доступ по чтению к персистентным хранилищам данных и предоставляет как бинарные, так и текстовые методы доступа. Приложения могут проверять и считывать отдельные байты или символы с помощью специализированных функций, а также считывать непрерывные блоки или полные строки.
Жизненный цикл и параллелизм
Конструктор по умолчанию ReadAccessor удален [SWS_PER_00461]; поэтому инстанцирование обычно происходит опосредованно через вышестоящие механизмы открытия и доступа модуля персистентности. Освобождение интерфейса и связанных ресурсов доступа выполняется через виртуальный деструктор ~ReadAccessor()[SWS_PER_00417]. Экземпляры ReadAccessor обладают внутренним указателем чтения, который управляет текущей позицией в файле. Все методы класса явно специфицированы как непотокобезопасные (not thread-safe) [SWS_PER_00419], поэтому одновременные операции чтения над одним и тем же экземпляром должны синхронизироваться вызывающими сторонами извне.
Пути использования для бинарных и текстовых данных
Для бинарных файловых операций класс предлагает функции предварительного просмотра или последовательного чтения. С помощью PeekByte() можно проинспектировать байт в текущей позиции чтения без изменения указателя чтения [SWS_PER_00418]. Напротив, GetByte() считывает ровно один байт и продвигает позицию вперед [SWS_PER_00419]. Более крупные блоки данных можно считывать через ReadBinary(n) в ara::core::Vector<ara::core::Byte> с соответствующей корректировкой позиции; если конец файла достигается преждевременно, вектор содержит меньше байтов, чем запрошено [SWS_PER_00422]. С помощью ReadBinary() можно за один шаг получить все оставшиеся байты до конца файла [SWS_PER_00421].
Диаграмма последовательности: типичный процесс последовательного доступа по чтению с предварительной проверкой и фрагментарной обработкой данных. Источники: [SWS_PER_00418], [SWS_PER_00422], [SWS_PER_00421].
В текстовом режиме PeekChar() предоставляет предварительный просмотр на уровне символов [SWS_PER_00167], тогда как GetChar() считывает следующий символ с продвижением курсора [SWS_PER_00168]. Построчное чтение выполняется через ReadLine(), который считывает данные вплоть до разделителя (по умолчанию: '\n', ASCII 0x0a); при этом разделитель не включается в результирующую строку [SWS_PER_00119]. Фрагменты из n символов или все оставшееся содержимое можно считать через перегрузки ReadText()[SWS_PER_00165], [SWS_PER_00420]. Если указатель чтения находится внутри многобайтового символа, результирующие строки могут содержать неполные кодовые точки Unicode [SWS_PER_00119], [SWS_PER_00165].
Сценарии ошибок и обработка ошибок
Все операции чтения ReadAccessor возвращают свои значения, инкапсулированные в ara::core::Result, и специфицированы как безопасные относительно исключений (exception safe) [SWS_PER_00419]. Если во время доступа возникает ошибка, действует строгая семантика отката: текущая позиция указателя чтения в случае ошибки всегда остается неизменной [SWS_PER_00421], [SWS_PER_00422]. Типичные задокументированные состояния ошибок включают:
Reads all remaining bytes into a Vector of Byte, starting from the current position. The current position is set to the end of the file. In case of an error, the current position is not changed.
Reads a complete line of characters into a String, advancing the current position accordingly. The end of the line is demarcated by the delimiter, or by "\\n" (ASCII 0x0a) if that parameter is omitted. The delimiter itself is not included in the returned String. Only Unicode code points with one character (code unit) can be used as delimiters. The returned string may start with an incomplete Unicode code point in case the current read position is in the middle of a code point. If the end of the file is reached, the remaining characters are returned and the current position is set to the end of the file. In case of an error, the current position is not changed.
Reads a number of characters into a String, starting from the current position. The returned string may start and/or end with incomplete Unicode code points in case the current read position and/or the last read character (code unit) is in the middle of a code point. The current position is advanced accordingly. If the end of the file is reached, the number of returned characters can be less than the requested number, and the current position is set to the end of the file. In case of an error, the current position is not changed.
Returns the byte at the current position of the file. The current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: eb387be6a3cfПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронная функция-член PeekByte класса ara::per::ReadAccessor считывает один байт в текущей позиции файла без изменения позиции файла [SWS_PER_00418]. Функция требует подключения заголовочного файла ara/per/read_accessor.h, не принимает параметров и возвращает прочитанное значение в ara::core::Result<ara::core::Byte>[SWS_PER_00418].
Если во время доступа возникает ошибка, возвращаемый объект содержит либо специфичный для производителя код ошибки, либо одну из определенных ошибок из PerErrc[SWS_PER_00418]:
PerErrc::kEof: текущая позиция находится в конце файла или файл пуст.
PerErrc::kPhysicalStorageFailure: произошел сбой при доступе к физической памяти.
PerErrc::kValidationFailed: невозможно гарантировать валидность сохраненных данных.
PerErrc::kEncryptionFailed: произошел сбой при расшифровке сохраненных данных.
PerErrc::kAuthenticationFailed: сбой проверки MAC (Message Authentication Code).
С точки зрения безопасности выполнения метод объявлен как noexcept и exception safe[SWS_PER_00418]. Однако, поскольку спецификация PeekByte классифицирует его как not thread-safe, параллельные вызовы на одном и том же экземпляре ara::per::ReadAccessor, вероятно, требуют синхронизации на стороне приложения [SWS_PER_00418]. Вопрос Q-14b3334052f6c810 (открытый)
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R25-11.
Returns the character at the current position of the file. The current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b4d92aee30b2Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод PeekChar класса ara::per::ReadAccessor (заголовочный файл #include "ara/per/read_accessor.h") считывает символ в текущей позиции файла без изменения указателя чтения [SWS_PER_00167].
Использование
Функция имеет сигнатуру ara::core::Result<char> PeekChar() const noexcept;. Она работает синхронно, объявлена как const и гарантирует безопасность исключений (exception safe) [SWS_PER_00167]. В качестве возвращаемого значения служит ara::core::Result<char>, содержащий при успешном выполнении считанный символ [SWS_PER_00167].
Обработка ошибок
При возникновении ошибки ara::core::Result возвращает специфичные для производителя ошибки или один из следующих кодов ошибок из PerErrc[SWS_PER_00167]:
PerErrc::kEof: текущая позиция чтения достигла конца файла или файл пуст [SWS_PER_00167].
PerErrc::kPhysicalStorageFailure: доступ к физическому носителю данных завершился сбоем [SWS_PER_00167].
PerErrc::kValidationFailed: невозможно гарантировать действительность сохраненных данных [SWS_PER_00167].
PerErrc::kEncryptionFailed: сбой расшифровки сохраненных данных [SWS_PER_00167].
PerErrc::kAuthenticationFailed: сбой проверки кода аутентификации сообщения (Message Authentication Code, MAC) данных [SWS_PER_00167].
Параллелизм и ограничения
Операция не является потокобезопасной (not thread-safe) [SWS_PER_00167]. Поэтому параллельные обращения к одному и тому же экземпляру ReadAccessor должны синхронизироваться вызывающей стороной.
Данное указание по использованию основано на спецификации AUTOSAR Adaptive релиза R25-11.
Reads all remaining bytes into a Vector of Byte, starting from the current position. The current position is set to the end of the file. In case of an error, the current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 325f0e841208ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод без параметров ReadBinary класса ara::per::ReadAccessor синхронно считывает все оставшиеся от текущей позиции в файле байты до конца файла в ara::core::Vector<ara::core::Byte>[SWS_PER_00421]. После успешного чтения текущая позиция в файле устанавливается на конец файла [SWS_PER_00421]. Возвращаемое значение инкапсулировано как ara::core::Result и объявлено как noexcept; интерпретация: поскольку асинхронный тип возвращаемого значения отсутствует, метод, вероятно, блокирует вызывающую сторону. Вопрос Q-8e6054123cea57ac (открытый)
Если при чтении возникает ошибка, исходная позиция в файле сохраняется без изменений [SWS_PER_00421]. Возвращенный ara::core::Result содержит в этом случае либо ошибки поставщика, либо один из специфических кодов ошибок из PerErrc[SWS_PER_00421]:
PerErrc::kPhysicalStorageFailure: сбой физического доступа к памяти [SWS_PER_00421].
PerErrc::kValidationFailed: невозможно гарантировать валидность сохраненных данных [SWS_PER_00421].
PerErrc::kEncryptionFailed: сбой расшифровки данных [SWS_PER_00421].
PerErrc::kAuthenticationFailed: сбой верификации MAC [SWS_PER_00421].
PerErrc::kEof: файл пуст или позиция чтения уже находится в конце файла [SWS_PER_00421].
Функция определена как безопасная по отношению к исключениям (exception safe), однако явно указана как непотокобезопасная (not thread-safe) [SWS_PER_00421]. Поэтому параллельные вызовы на одном и том же ReadAccessor должны координироваться вызывающей стороной. Если требуется прочитать не все оставшееся содержимое файла целиком, а только подмножество байтов, вместо этого следует использовать перегруженный вариант ReadBinary(std::uint64_t n)[SWS_PER_00422].
Этот текст создан ИИ. Все сведения основаны на требованиях спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
Reads a number of bytes into a Vector of Byte, starting from the current position. The current position is advanced accordingly. If the end of the file is reached, the number of returned bytes can be less than the requested number, and the current position is set to the end of the file. In case of an error, the current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4e14906b2550Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция ReadBinary класса ara::per::ReadAccessor синхронно считывает, начиная с текущей позиции в файле, до n байтов в ara::core::Vector<ara::core::Byte>[SWS_PER_00422]. При успешном чтении текущая позиция в файле сдвигается вперед на количество прочитанных байтов; если при этом достигается конец файла, возвращенный вектор может содержать менее n байтов, а позиция в файле остается в конце файла [SWS_PER_00422].
Если во время операции чтения возникает ошибка, позиция в файле не изменяется [SWS_PER_00422]. Обработка ошибок осуществляется через возвращенный ara::core::Result, который может содержать специфические коды ошибок из PerErrc или ошибки поставщика [SWS_PER_00422]:
PerErrc::kPhysicalStorageFailure: сбой доступа к физической памяти [SWS_PER_00422].
PerErrc::kValidationFailed: невозможно гарантировать валидацию сохраненных данных [SWS_PER_00422].
PerErrc::kEncryptionFailed: сбой расшифровки сохраненных данных [SWS_PER_00422].
PerErrc::kEof: текущая позиция уже находится в конце файла или файл пуст [SWS_PER_00422].
PerErrc::kAuthenticationFailed: сбой проверки MAC (Message Authentication Code) данных [SWS_PER_00422].
С точки зрения параллелизма метод специфицирован как not thread-safe, поэтому параллельные обращения к одному и тому же аксессору должны синхронизироваться на стороне приложения; однако он объявлен как exception safe и аннотирован как noexcept[SWS_PER_00422]. В отличие от перегрузки без параметров [SWS_PER_00421], которая всегда считывает все оставшиеся байты до конца файла, данный вариант позволяет поблочно считывать заданные объемы данных.
Этот текст сгенерирован ИИ и служит вспомогательным материалом для курации.
Руководство разработчика реализации в подготовке (сложность I1)
Reads a complete line of characters into a String, advancing the current position accordingly. The end of the line is demarcated by the delimiter, or by "\\n" (ASCII 0x0a) if that parameter is omitted. The delimiter itself is not included in the returned String. Only Unicode code points with one character (code unit) can be used as delimiters. The returned string may start with an incomplete Unicode code point in case the current read position is in the middle of a code point. If the end of the file is reached, the remaining characters are returned and the current position is set to the end of the file. In case of an error, the current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 30f46bde066bПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Синхронный метод ReadLine класса ara::per::ReadAccessor считывает полную строку до заданного разделителя в ara::core::String и соответствующим образом перемещает позицию чтения вперед [SWS_PER_00119]. По умолчанию разделителем выступает \n (ASCII 0x0a); в качестве delimiter допустимы только кодовые точки Unicode, состоящие из одной кодовой единицы [SWS_PER_00119]. Сам разделитель не включается в результирующую строку. Если процесс чтения достигает конца файла, возвращаются все оставшиеся к этому моменту символы, а позиция устанавливается на конец файла [SWS_PER_00119].
Обработка ошибок
Функция возвращает ara::core::Result<ara::core::String>[SWS_PER_00119]. При возникновении ошибки текущая позиция не изменяется [SWS_PER_00119]. К специфицированным ошибкам относятся:
PerErrc::kEof: текущая позиция чтения находится в конце файла или файл пуст [SWS_PER_00119].
StorageFailure: сбой доступа к физическому хранилищу [SWS_PER_00119].
PerErrc::kValidationFailed: невозможно гарантировать валидность сохраненных данных [SWS_PER_00119].
PerErrc::kEncryptionFailed: сбой расшифровки данных [SWS_PER_00119].
Метод объявлен как noexcept и исключениебезопасен («exception safe»), но явно не потокобезопасен («not thread-safe») [SWS_PER_00119]. Интерпретация: при конкурентных вызовах одного и того же экземпляра ReadAccessor, вероятно, потребуется внешняя синхронизация. Вопрос Q-307b6e250938c76b (открытый) Если текущая позиция чтения находится посередине многокомпонентной кодовой точки Unicode, возвращенная строка может начинаться с неполной кодовой точки [SWS_PER_00119].
Этот текст был создан ИИ и основан на спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
Reads a number of characters into a String, starting from the current position. The returned string may start and/or end with incomplete Unicode code points in case the current read position and/or the last read character (code unit) is in the middle of a code point. The current position is advanced accordingly. If the end of the file is reached, the number of returned characters can be less than the requested number, and the current position is set to the end of the file. In case of an error, the current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 042205956a20Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронная функция-член ReadText класса ara::per::ReadAccessor считывает, начиная с текущей позиции в файле, до n символов в ara::core::String[SWS_PER_00165]. Подключение выполняется через заголовочный файл #include "ara/per/read_accessor.h"[SWS_PER_00165].
Использование и семантика
Метод вызывается с параметром std::uint64_t n и возвращает ara::core::Result<ara::core::String>[SWS_PER_00165]. При успешном чтении текущая позиция чтения сдвигается вперед в соответствии с количеством прочитанных символов [SWS_PER_00165]. Если операция чтения достигает конца файла, количество возвращенных символов может быть меньше запрошенного n; при этом позиция в файле устанавливается на конец файла [SWS_PER_00165]. Если текущая позиция чтения или последний прочитанный символ (code unit) находится посередине кодовой точки Unicode, возвращаемая строка может начинаться или заканчиваться неполными кодовыми точками [SWS_PER_00165].
Обработка ошибок и граничные условия
В случае ошибки позиция в файле остается без изменений [SWS_PER_00165]. Возвращенный ara::core::Result может содержать ошибки поставщика или следующие коды ошибок [SWS_PER_00165]:
PerErrc::kPhysicalStorageFailure: сбой физического доступа к памяти [SWS_PER_00165].
PerErrc::kValidationFailed: невозможно гарантировать валидность сохраненных данных [SWS_PER_00165].
PerErrc::kEncryptionFailed: сбой расшифровки сохраненных данных [SWS_PER_00165].
PerErrc::kEof: текущая позиция уже находится в конце файла или файл пуст [SWS_PER_00165].
PerErrc::kAuthenticationFailed: сбой проверки MAC данных [SWS_PER_00165].
С точки зрения параллелизма функция объявлена как безопасная по отношению к исключениям (exception safe), но явно указана как непотокобезопасная (not thread-safe) [SWS_PER_00165]. Следовательно, параллельные вызовы на одном и том же экземпляре должны быть синхронизированы.
Взаимодействие
Помимо перегрузки с ограничением длины существует вариант без параметров ReadText()[SWS_PER_00420], считывающий все оставшиеся символы от текущей позиции до конца файла.
Этот текст создан и курирован ИИ. Все сведения основаны на спецификации AUTOSAR релиза R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
Reads all remaining characters into a String, starting from the current position. The returned string may start with an incomplete Unicode code point in case the current read position is in the middle of a code point. The current position is set to the end of the file. In case of an error, the current position is not changed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d5efea9a0341Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронный метод ReadText класса ara::per::ReadAccessor считывает все символы, оставшиеся от текущей позиции в файле, в ara::core::String[SWS_PER_00420]. Функция не ожидает параметров и после успешного чтения устанавливает текущую позицию в конец файла [SWS_PER_00420]. Если позиция чтения находится посередине кодовой точки Unicode, возвращаемая строка может начинаться с неполной кодовой точки [SWS_PER_00420].
Возвращаемым значением является ara::core::Result<ara::core::String>[SWS_PER_00420]. При возникновении ошибки позиция в файле остается неизменной (семантика отката), а результат содержит либо ошибку поставщика, либо код ошибки из PerErrc[SWS_PER_00420]:
PerErrc::kEof: текущая позиция уже находится в конце файла или файл пуст [SWS_PER_00420].
PerErrc::kPhysicalStorageFailure: сбой доступа к физической памяти [SWS_PER_00420].
PerErrc::kValidationFailed: невозможно гарантировать корректность сохраненных данных [SWS_PER_00420].
PerErrc::kEncryptionFailed: сбой расшифровки сохраненных данных [SWS_PER_00420].
С точки зрения параллелизма ReadText специфицирован как безопасный по отношению к исключениям (exception safe) и объявлен с noexcept, однако явно классифицирован как непотокобезопасный [SWS_PER_00420].
Во взаимодействии с родственной перегрузкой ReadText(std::uint64_t n), которая считывает не более n символов и соответственно продвигает позицию вперед [SWS_PER_00165], вариант без параметров служит для полного считывания всего оставшегося содержимого до конца файла [SWS_PER_00420].
Это указание по использованию было создано автоматически на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал