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).
Permite la lectura por bloques, por líneas o basada en caracteres de datos binarios y de archivos persistidos.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 811820211677ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite la lectura por bloques, por líneas o basada en caracteres de datos binarios y de archivos persistidos.
La clase ara::per::ReadAccessor proporciona métodos síncronos para la lectura secuencial y basada en líneas de archivos en modo binario y de texto [SWS_PER_00421], [SWS_PER_00119]. Además de la lectura consumidora, permite la vista previa neutra respecto al puntero de los siguientes bytes o caracteres. Dado que las instancias no son seguras para hilos, los accesos paralelos deben coordinarse externamente, mientras que, en caso de error, una garantía de reversión protege la posición del puntero de lectura [SWS_PER_00419].
Contexto y ámbito de responsabilidades
La clase ara::per::ReadAccessor proporciona una interfaz para la lectura sincrónica del contenido de archivos dentro de la gestión de persistencia (módulo per) y deriva virtualmente de FileAccessor. Abstrae el acceso de lectura a almacenes de datos persistidos y proporciona métodos de acceso tanto binarios como textuales. A través de funciones especializadas, las aplicaciones pueden comprobar y obtener bytes o caracteres individuales, así como leer bloques contiguos o líneas completas.
Ciclo de vida y concurrencia
El constructor predeterminado de ReadAccessor está eliminado [SWS_PER_00461]; por lo tanto, la instanciación se realiza típicamente a través de mecanismos de apertura y acceso de nivel superior del módulo de persistencia. La liberación de la interfaz y de los recursos de acceso vinculados se lleva a cabo mediante el destructor virtual ~ReadAccessor()[SWS_PER_00417]. Las instancias de ReadAccessor poseen un puntero de lectura interno que gestiona la posición actual en el archivo. Todos los métodos de la clase están especificados explícitamente como no seguros para subprocesos (not thread-safe) [SWS_PER_00419], por lo que las operaciones de lectura simultáneas sobre la misma instancia deben ser sincronizadas externamente por los llamadores.
Rutas de uso para datos binarios y de texto
Para operaciones de archivo binarias, la clase ofrece funciones de lectura con vista previa o secuencial. Con PeekByte() se puede inspeccionar el byte en la posición de lectura actual sin modificar el puntero de lectura [SWS_PER_00418]. En cambio, GetByte() lee exactamente un byte y avanza la posición [SWS_PER_00419]. Se pueden leer bloques de datos más grandes en un ara::core::Vector<ara::core::Byte> mediante ReadBinary(n), adaptándose la posición de forma correspondiente; si se alcanza el final del archivo antes de tiempo, el vector contiene menos bytes de los solicitados [SWS_PER_00422]. Mediante ReadBinary() se pueden obtener todos los bytes restantes hasta el final del archivo en un solo paso [SWS_PER_00421].
Diagrama de secuencia: flujo típico de un acceso de lectura secuencial con comprobación previa y procesamiento de datos por tramos. Fuentes: [SWS_PER_00418], [SWS_PER_00422], [SWS_PER_00421].
En el modo de texto, PeekChar() proporciona una vista previa basada en caracteres [SWS_PER_00167], mientras que GetChar() consume el siguiente carácter [SWS_PER_00168]. La lectura línea por línea se realiza a través de ReadLine(), que lee hasta un carácter separador (predeterminado: '\n', ASCII 0x0a); el carácter separador no se transfiere a la cadena resultante [SWS_PER_00119]. Los tramos de n caracteres o la totalidad del contenido restante pueden leerse mediante las sobrecargas de ReadText()[SWS_PER_00165], [SWS_PER_00420]. Si el puntero de lectura se encuentra en medio de un carácter multibyte, las cadenas de caracteres resultantes pueden presentar puntos de código Unicode incompletos [SWS_PER_00119], [SWS_PER_00165].
Escenarios de error y tratamiento de errores
Todas las operaciones de lectura de ReadAccessor devuelven sus valores encapsulados en un ara::core::Result y están especificadas como seguras frente a excepciones (exception safe) [SWS_PER_00419]. Si se produce un error durante un acceso, se aplica una estricta semántica de reversión: en caso de error, la posición actual del puntero de lectura permanece siempre inalterada [SWS_PER_00421], [SWS_PER_00422]. Los estados de error documentados típicos incluyen:
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: eb387be6a3cfProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro síncrona PeekByte de la clase ara::per::ReadAccessor lee un único byte en la posición actual del archivo sin modificar la posición del archivo [SWS_PER_00418]. La función requiere la inclusión del encabezado ara/per/read_accessor.h, no acepta parámetros y devuelve el valor leído en un ara::core::Result<ara::core::Byte>[SWS_PER_00418].
Si se produce un error durante el acceso, el objeto de retorno contiene un código de error específico del fabricante o uno de los errores definidos de PerErrc[SWS_PER_00418]:
PerErrc::kEof: la posición actual se encuentra al final del archivo o el archivo está vacío.
PerErrc::kPhysicalStorageFailure: el acceso al almacenamiento físico ha fallado.
PerErrc::kValidationFailed: no se puede garantizar la validez de los datos almacenados.
PerErrc::kEncryptionFailed: falló el descifrado de los datos almacenados.
PerErrc::kAuthenticationFailed: falló la verificación del MAC (Message Authentication Code).
En cuanto a la seguridad en la ejecución, el método está declarado como noexcept y exception safe[SWS_PER_00418]. No obstante, dado que la especificación clasifica PeekByte como not thread-safe, es probable que las llamadas paralelas sobre la misma instancia de ara::per::ReadAccessor requieran sincronización en la aplicación [SWS_PER_00418]. Pregunta Q-14b3334052f6c810 (abierta)
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR R25-11.
Returns the character at the current position of the file. The current position is not changed.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b4d92aee30b2Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método PeekChar de la clase ara::per::ReadAccessor (encabezado #include "ara/per/read_accessor.h") lee el carácter en la posición actual de un archivo sin modificar el puntero de lectura [SWS_PER_00167].
usar
La función posee la signatura ara::core::Result<char> PeekChar() const noexcept;. Opera de forma síncrona, está declarada como const y garantiza seguridad frente a excepciones (exception safe) [SWS_PER_00167]. Como valor de retorno sirve un ara::core::Result<char> que, en caso de éxito, contiene el carácter leído [SWS_PER_00167].
Manejo de errores
Si se produce un error, el ara::core::Result entrega errores específicos del fabricante o uno de los siguientes códigos de error de PerErrc[SWS_PER_00167]:
PerErrc::kEof: la posición de lectura actual ha alcanzado el final del archivo o el archivo está vacío [SWS_PER_00167].
PerErrc::kPhysicalStorageFailure: ha fallado el acceso al medio de almacenamiento físico [SWS_PER_00167].
PerErrc::kValidationFailed: no se puede garantizar la validez de los datos almacenados [SWS_PER_00167].
PerErrc::kEncryptionFailed: El descifrado de los datos almacenados ha fallado [SWS_PER_00167].
PerErrc::kAuthenticationFailed: falló la verificación del código de autenticación de mensajes (MAC) de los datos [SWS_PER_00167].
Concurrencia y restricciones
La operación no es segura para subprocesos (not thread-safe) [SWS_PER_00167]. Por lo tanto, los accesos paralelos a la misma instancia de ReadAccessor deben sincronizarse por parte del llamador.
Esta nota de uso se basa en la especificación AUTOSAR Adaptive Release 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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 325f0e841208ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método sin parámetros ReadBinary de la clase ara::per::ReadAccessor lee de forma síncrona todos los bytes restantes a partir de la posición actual del archivo hasta el final del archivo en un ara::core::Vector<ara::core::Byte>[SWS_PER_00421]. Tras una operación de lectura satisfactoria, la posición actual del archivo se sitúa al final del archivo [SWS_PER_00421]. El valor de retorno está encapsulado como ara::core::Result y declarado como noexcept; interpretación: al no existir un tipo de retorno asíncrono, cabe suponer que el método bloquea al llamante. Pregunta Q-8e6054123cea57ac (abierta)
Si se produce un error durante la lectura, la posición original del archivo se mantiene inalterada [SWS_PER_00421]. En este caso, el ara::core::Result devuelto contiene errores específicos del fabricante o bien uno de los códigos de error específicos de PerErrc[SWS_PER_00421]:
PerErrc::kPhysicalStorageFailure: El acceso al almacenamiento físico falla [SWS_PER_00421].
PerErrc::kValidationFailed: No se puede garantizar la validez de los datos almacenados [SWS_PER_00421].
PerErrc::kEncryptionFailed: El descifrado de los datos falla [SWS_PER_00421].
PerErrc::kAuthenticationFailed: La verificación del MAC falla [SWS_PER_00421].
PerErrc::kEof: El archivo está vacío o la posición de lectura ya se encuentra al final del archivo [SWS_PER_00421].
La función está definida como segura frente a excepciones (exception safe), pero expresamente como no segura para hilos (not thread-safe) [SWS_PER_00421]. Por lo tanto, las llamadas concurrentes sobre el mismo ReadAccessor deben ser coordinadas por el llamante. En caso de que no se deba leer todo el contenido restante del archivo de una vez, sino solo un subconjunto de bytes, debe utilizarse en su lugar la variante sobrecargada ReadBinary(std::uint64_t n)[SWS_PER_00422].
Este texto ha sido elaborado por una IA. Todos los datos se basan en los requisitos de la especificación de AUTOSAR.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4e14906b2550Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función ReadBinary de la clase ara::per::ReadAccessor lee partiendo de la posición actual del archivo hasta n bytes de forma síncrona en un ara::core::Vector<ara::core::Byte>[SWS_PER_00422]. En caso de una operación de lectura satisfactoria, la posición actual del archivo avanza según el número de bytes leídos; si con ello se alcanza el final del archivo, el vector devuelto puede contener menos de n bytes y la posición del archivo permanece en el final del archivo [SWS_PER_00422].
Si se produce un error durante la operación de lectura, la posición del archivo no se modifica [SWS_PER_00422]. El tratamiento de errores se efectúa a través del ara::core::Result devuelto, el cual puede contener códigos de error específicos de PerErrc o errores específicos del fabricante [SWS_PER_00422]:
PerErrc::kPhysicalStorageFailure: El acceso al almacenamiento físico falla [SWS_PER_00422].
PerErrc::kValidationFailed: No se puede asegurar la validación de los datos almacenados [SWS_PER_00422].
PerErrc::kEncryptionFailed: El descifrado de los datos almacenados falla [SWS_PER_00422].
PerErrc::kEof: La posición actual ya se encuentra al final del archivo o el archivo está vacío [SWS_PER_00422].
PerErrc::kAuthenticationFailed: La comprobación del MAC (Message Authentication Code) de los datos falla [SWS_PER_00422].
En cuanto a la concurrencia, el método está especificado como not thread-safe, razón por la cual los accesos paralelos al mismo descriptor de acceso deben sincronizarse por parte de la aplicación; no obstante, está declarado como exception safe y anotado con noexcept[SWS_PER_00422]. A diferencia de la sobrecarga sin parámetros [SWS_PER_00421], que lee siempre todos los bytes restantes hasta el final del archivo, esta variante permite la lectura gradual de tamaños de bloque definidos.
Este texto ha sido generado por una IA y sirve como apoyo para la curación.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 30f46bde066bProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método síncrono ReadLine de la clase ara::per::ReadAccessor lee una línea completa hasta un delimitador definido en una ara::core::String y avanza la posición de lectura según corresponda [SWS_PER_00119]. Por defecto, \n (ASCII 0x0a) actúa como delimitador; como delimiter solo son admisibles puntos de código Unicode que consten de una única unidad de código [SWS_PER_00119]. El delimitador en sí no se incluye en la cadena de resultado. Si la operación de lectura alcanza el final del archivo, se devuelven todos los caracteres restantes hasta ese punto y la posición se establece en el final del archivo [SWS_PER_00119].
Manejo de errores
La función devuelve un ara::core::Result<ara::core::String>[SWS_PER_00119]. Si se produce un error, la posición actual no se modifica [SWS_PER_00119]. Entre los errores especificados se incluyen:
PerErrc::kEof: la posición actual de lectura se encuentra al final del archivo o el archivo está vacío [SWS_PER_00119].
StorageFailure: falla el acceso al almacenamiento físico [SWS_PER_00119].
PerErrc::kValidationFailed: No se puede garantizar la validez de los datos almacenados [SWS_PER_00119].
PerErrc::kEncryptionFailed: El descifrado de los datos falla [SWS_PER_00119].
PerErrc::kAuthenticationFailed: falla la verificación del código de autenticación de mensajes (MAC) [SWS_PER_00119].
Concurrencia y condiciones de contorno
El método está declarado como noexcept y es seguro frente a excepciones («exception safe»), pero explícitamente no es seguro para subprocesos («not thread-safe») [SWS_PER_00119]. Interpretación: En caso de llamadas concurrentes sobre la misma instancia de ReadAccessor, previsiblemente se requerirá una sincronización externa. Pregunta Q-307b6e250938c76b (abierta) Si la posición de lectura actual se encuentra en medio de un punto de código Unicode multiparte, la cadena devuelta puede comenzar con un punto de código incompleto [SWS_PER_00119].
Este texto fue creado por una IA y se basa en la especificación AUTOSAR.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 042205956a20Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro síncrona ReadText de la clase ara::per::ReadAccessor lee a partir de la posición actual del archivo hasta n caracteres en un ara::core::String[SWS_PER_00165]. La inclusión se realiza mediante la cabecera #include "ara/per/read_accessor.h"[SWS_PER_00165].
Uso y semántica
El método se invoca con el parámetro std::uint64_t n y devuelve un ara::core::Result<ara::core::String>[SWS_PER_00165]. En caso de una operación de lectura satisfactoria, la posición de lectura actual avanza según la cantidad de caracteres leídos [SWS_PER_00165]. Si la operación de lectura alcanza el final del archivo, la cantidad de caracteres devueltos puede ser menor que el n solicitado; en este proceso, la posición del archivo se sitúa al final del archivo [SWS_PER_00165]. Si la posición de lectura actual o el último carácter leído (unidad de código) se encuentra en medio de un punto de código Unicode, la cadena devuelta puede comenzar o finalizar con puntos de código incompletos [SWS_PER_00165].
Tratamiento de errores y condiciones límite
En caso de error, la posición del archivo permanece inalterada [SWS_PER_00165]. El ara::core::Result devuelto puede contener errores específicos del fabricante o los siguientes códigos de error [SWS_PER_00165]:
PerErrc::kPhysicalStorageFailure: El acceso al almacenamiento físico ha fallado [SWS_PER_00165].
PerErrc::kValidationFailed: No se puede garantizar la validez de los datos almacenados [SWS_PER_00165].
PerErrc::kEncryptionFailed: El descifrado de los datos almacenados ha fallado [SWS_PER_00165].
PerErrc::kEof: La posición actual ya se encuentra al final del archivo o el archivo está vacío [SWS_PER_00165].
PerErrc::kAuthenticationFailed: La comprobación MAC de los datos ha fallado [SWS_PER_00165].
En cuanto a la concurrencia, la función está declarada como segura frente a excepciones (exception safe), pero expresamente como no segura para hilos (not thread-safe) [SWS_PER_00165]. Por consiguiente, las llamadas paralelas sobre la misma instancia deben sincronizarse.
Interacción
Además de la sobrecarga con limitación de longitud, existe una variante sin parámetros ReadText()[SWS_PER_00420], la cual lee todos los caracteres restantes a partir de la posición actual hasta el final del archivo.
Este texto ha sido creado y supervisado por una IA. Todos los datos se fundamentan en la especificación del release R25-11 de AUTOSAR.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d5efea9a0341Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método síncrono ReadText de la clase ara::per::ReadAccessor lee todos los caracteres restantes a partir de la posición actual del archivo en un ara::core::String[SWS_PER_00420]. La función no espera parámetros y, tras una lectura satisfactoria, sitúa la posición actual al final del archivo [SWS_PER_00420]. Si la posición de lectura se encuentra en medio de un punto de código Unicode, la cadena devuelta puede comenzar con un punto de código incompleto [SWS_PER_00420].
El valor de retorno es un ara::core::Result<ara::core::String>[SWS_PER_00420]. Si se produce un error, la posición del archivo permanece inalterada (semántica de reversión) y el resultado contiene un error específico del fabricante o bien un código de error de PerErrc[SWS_PER_00420]:
PerErrc::kEof: La posición actual ya se encuentra al final del archivo o el archivo está vacío [SWS_PER_00420].
PerErrc::kPhysicalStorageFailure: El acceso a la memoria física falla [SWS_PER_00420].
PerErrc::kValidationFailed: No se puede garantizar la validez de los datos almacenados [SWS_PER_00420].
PerErrc::kEncryptionFailed: El descifrado de los datos almacenados falla [SWS_PER_00420].
PerErrc::kAuthenticationFailed: La comprobación del Message Authentication Code (MAC) falla [SWS_PER_00420].
En lo que respecta a la concurrencia, ReadText está especificado como seguro frente a excepciones (exception safe) y declarado con noexcept, pero catalogado explícitamente como no seguro para hilos [SWS_PER_00420].
En combinación con la sobrecarga relacionada ReadText(std::uint64_t n), que lee como máximo n caracteres y hace avanzar la posición en consonancia [SWS_PER_00165], la variante sin parámetros sirve para la lectura completa de todo el contenido restante hasta el final del archivo [SWS_PER_00420].
Esta nota de uso ha sido generada automáticamente a partir de la especificación de AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán