class WriteAccessor final : public virtual FileAccessor {...};
WriteAccessor is used to write file data. It provides the WriteBinary and WriteText methods featuring a Result for controlled, unformatted writing, and the operator<< method for simple formatted writing. It also provides SyncToFile() to flush the buffer of the operating system to the physical storage.
Sirve para la escritura en búfer de archivos binarios y de texto, así como para su sincronización en el almacenamiento físico.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fd57dd10b948ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve para la escritura en búfer de archivos binarios y de texto, así como para su sincronización en el almacenamiento físico.
La clase ara::per::WriteAccessor permite escribir contenidos de archivo binarios o textuales en el módulo de persistencia y proporciona métodos para accesos de escritura no formateados, así como un operador de flujo formateado [SWS_PER_00423]. Dado que las operaciones de escritura pueden almacenarse inicialmente en el búfer del sistema operativo, la llamada a SyncToFile() fuerza el volcado permanente al almacenamiento físico [SWS_PER_00122]. Todos los métodos son seguros frente a excepciones, pero no son seguros para subprocesos, por lo que los accesos concurrentes deben ser protegidos por la aplicación.
Contexto
ara::per::WriteAccessor es una clase final del módulo de persistencia (per) de la AUTOSAR Adaptive Platform y deriva virtualmente de FileAccessor. La clase proporciona operaciones de escritura para contenidos de archivo. Ofrece métodos para escritura no formateada y controlada con gestión de errores a través de ara::core::Result, así como un operador de flujo sobrecargado para escritura formateada. Como interlocutores actúan la aplicación llamante, el búfer de archivos interno del sistema operativo y el medio de almacenamiento físico.
Ciclo de vida
El constructor por defecto de WriteAccessor está explícitamente eliminado y no debe utilizarse [SWS_PER_00596]. (Interpretación: las instancias de WriteAccessor deberían crearse y suministrarse a través de métodos de factoría de unidades de gestión de persistencia de nivel superior, como el almacenamiento de archivos). Pregunta Q-af92be8494274611 (abierta)
La destrucción se realiza a través del destructor virtual ~WriteAccessor()[SWS_PER_00597]. La clase y sus métodos están especificados como seguros frente a excepciones («exception safe») y declarados como noexcept. Con respecto a la concurrencia, WriteAccessor no es seguro para subprocesos («not thread-safe») [SWS_PER_00597]; los accesos paralelos a la misma instancia deben ser protegidos externamente por la aplicación.
Ruta de uso
El flujo regular comprende la escritura de datos en modo no formateado o formateado, el ajuste opcional del tamaño del archivo y el almacenamiento persistente final:
Escribir datos binarios: a través de WriteBinary() se escribe un rango de bytes (ara::core::Span<const ara::core::Byte>) en el archivo [SWS_PER_00423].
Escribir datos de texto: mediante WriteText() se pasan cadenas de caracteres a través de un ara::core::StringView[SWS_PER_00166]. Adicionalmente, se dispone de operator<< como función de conveniencia para casos de uso no críticos, en los que los errores que se produzcan se ignoran silenciosamente [SWS_PER_00125].
Forzar la persistencia: el momento del almacenamiento físico depende de la implementación de la persistencia; SyncToFile() vuelca de forma vinculante el búfer del sistema operativo al medio de almacenamiento [SWS_PER_00122], [SWS_PER_00423], [SWS_PER_00166].
Ajustar el tamaño del archivo: con SetFileSize() se puede truncar el archivo, eliminando los contenidos sobrantes; la posición del archivo permanece inalterada o se establece en la última posición válida o en 0 [SWS_PER_00428].
Los métodos WriteBinary(), WriteText(), SyncToFile() y SetFileSize() devuelven un ara::core::Result<void> que contiene códigos de error específicos en caso de fallos:
PerErrc::kPhysicalStorageFailure: el acceso al medio de almacenamiento físico falla [SWS_PER_00423], [SWS_PER_00166], [SWS_PER_00122], [SWS_PER_00428]. El estado del archivo es desconocido y puede estar completamente destruido (sin semántica de reversión).
PerErrc::kOutOfStorageSpace: espacio de almacenamiento físico insuficiente [SWS_PER_00423], [SWS_PER_00166], [SWS_PER_00122]. Al escribir, la parte excedente se descarta y la posición queda al final del archivo (sin semántica de reversión).
PerErrc::kEncryptionFailed: el cifrado o descifrado falla [SWS_PER_00423], [SWS_PER_00166], [SWS_PER_00122], [SWS_PER_00428]. El búfer y la posición se actualizan, pero el archivo no puede persistirse y refleja una versión más antigua en el almacenamiento (semántica de reversión).
Reduces the size of the file to ’size’, effectively removing the current content of the file beyond this size. The current file position is unchanged if it is lower than ’size’, or set to the last valid position in the file otherwise. If ’size’ is 0, the current file position will also be set to 0.
Writes the content of a Span of Byte to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
Writes the content of a StringView to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
Writes the content of a StringView to the file. This operator is just a comfort feature for non-safety critical Persistency users. If an error occurs during this operation, it is silently ignored.
Reduces the size of the file to ’size’, effectively removing the current content of the file beyond this size. The current file position is unchanged if it is lower than ’size’, or set to the last valid position in the file otherwise. If ’size’ is 0, the current file position will also be set to 0.
Flushes the current file content to the physical storage.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c625990570f3ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro SyncToFile de la clase ara::per::WriteAccessor (definida en #include "ara/per/write_accessor.h") transfiere el contenido actual del archivo de forma síncrona al almacenamiento físico [SWS_PER_00122]. La llamada no acepta parámetros de entrada y devuelve un ara::core::Result<void> que, en caso de éxito, está vacío o, en caso de error, contiene códigos de error específicos del módulo Persistency o errores específicos del fabricante [SWS_PER_00122].
Durante la ejecución pueden producirse diferentes casos de error, algunos de los cuales poseen semántica de reversión (rollback) [SWS_PER_00122]:
StorageFailure: se produce cuando falla el acceso físico al medio de almacenamiento (sin semántica de reversión) [SWS_PER_00122].
PerErrc::kOutOfStorageSpace: se devuelve si el espacio de almacenamiento físico es insuficiente para el archivo modificado (sin semántica de reversión) [SWS_PER_00122].
PerErrc::kQuotaExceeded: se notifica cuando el archivo excede el tamaño máximo configurado AllowedSize del File Storage (con semántica de reversión) [SWS_PER_00122].
PerErrc::kEncryptionFailed: falla el cifrado de los datos almacenados (con semántica de reversión) [SWS_PER_00122].
PerErrc::kAuthenticationFailed: falla el cálculo del MAC para los datos (con semántica de reversión) [SWS_PER_00122].
En cuanto a la seguridad de ejecución, el método está declarado como noexcept y especificado como exception safe[SWS_PER_00122]. Sin embargo, dado que está clasificado expresamente como not thread-safe, las llamadas simultáneas sobre la misma instancia de WriteAccessor deben sincronizarse presumiblemente por parte del llamador [SWS_PER_00122]. Pregunta Q-e4b139f136cdcd31 (abierta)
Esta nota de uso se generó automáticamente a partir de la especificación AUTOSAR R25-11.
Writes the content of a Span of Byte to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 65db1acb87c9Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función WriteBinary de la clase ara::per::WriteAccessor escribe el contenido de una secuencia de bytes (ara::core::Span<const ara::core::Byte>) en un archivo [SWS_PER_00423]. El momento de la persistencia efectiva en el medio de almacenamiento depende de la implementación de Persistency; mediante SyncToFile se puede forzar la persistencia síncrona [SWS_PER_00423]. La función está declarada como noexcept y se considera segura frente a excepciones [SWS_PER_00423].
En relación con la concurrencia, WriteBinary está especificada como no segura para subprocesos (not thread-safe) [SWS_PER_00423]. Los accesos paralelos al mismo descriptor de acceso deben sincronizarse en el nivel de aplicación.
En caso de error, se devuelve un código de error en ara::core::Result<void>, en el que el contenido del archivo puede quedar dañado y la posición actual puede haber cambiado [SWS_PER_00423]:
PerErrc::kPhysicalStorageFailure: El estado del archivo es desconocido y puede estar completamente destruido (sin semántica de reversión) [SWS_PER_00423].
PerErrc::kOutOfStorageSpace: Almacenamiento físico insuficiente; los datos que exceden la cuota se descartan y la posición del archivo se sitúa al final [SWS_PER_00423].
PerErrc::kQuotaExceeded: La operación de escritura superaría el tamaño máximo configurado AllowedSize[SWS_PER_00423].
PerErrc::kEncryptionFailed: El cifrado falla; el contenido y la posición del archivo se actualizan, pero no se persisten (el archivo persistido conserva la versión anterior) [SWS_PER_00423].
PerErrc::kAuthenticationFailed o PerErrc::kValidationFailed: El cálculo/verificación de MAC falla o no se garantiza la validez de los datos almacenados [SWS_PER_00423].
Esta nota de uso se ha generado automáticamente a partir del elemento de especificación [SWS_PER_00423].
Writes the content of a StringView to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f24ce7c436f3ProcedenciaPreguntas 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 WriteText de la interfaz ara::per::WriteAccessor escribe el contenido de un ara::core::StringView en el archivo abierto [SWS_PER_00166]. La función está especificada como segura frente a excepciones (exception safe) y declara no lanzar excepciones de C++ (noexcept) [SWS_PER_00166]. El momento exacto del almacenamiento físico depende de la implementación de Persistency; se puede forzar un guardado inmediato en el medio de almacenamiento mediante SyncToFile[SWS_PER_00166].
Manejo de errores
Como valor de retorno sirve un ara::core::Result<void> que, en caso de error, notifica códigos de error procedentes de PerErrc o errores específicos del fabricante [SWS_PER_00166]. Si la operación falla, el contenido del archivo puede quedar dañado y la posición de escritura puede haberse modificado [SWS_PER_00166]:
PerErrc::kPhysicalStorageFailure: acceso al almacenamiento físico fallido; el estado del archivo es desconocido o el archivo está destruido [SWS_PER_00166].
PerErrc::kEncryptionFailed: el cifrado falla; el contenido del archivo y la posición en memoria se actualizan, pero no pueden persistirse, por lo que permanece un estado persistido anterior [SWS_PER_00166].
PerErrc::kOutOfStorageSpace: espacio de almacenamiento físico insuficiente; los datos que exceden la cuota se descartan y la posición queda al final del archivo [SWS_PER_00166].
PerErrc::kQuotaExceeded, PerErrc::kValidationFailed y PerErrc::kAuthenticationFailed: notifican excesos de cuota (AllowedSize), así como errores de validación o autenticación, manteniendo la semántica de reversión [SWS_PER_00166].
Concurrencia y restricciones
La operación está catalogada como no segura para subprocesos (not thread-safe) [SWS_PER_00166]. En caso de accesos paralelos a la misma instancia de WriteAccessor, presumiblemente los llamadores deben sincronizar las llamadas por sí mismos. Pregunta Q-73a6dbdb7d3df643 (abierta)
Esta nota de uso se basa en la especificación AUTOSAR Adaptive Platform R25-11.
Writes the content of a StringView to the file. This operator is just a comfort feature for non-safety critical Persistency users. If an error occurs during this operation, it is silently ignored.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán