类 ara::per::ReadWriteAccessor
[SWS_PER_00343] Upstream: RS_PER_00004, RS_AP_00122, RS_AP_00146
class ReadWriteAccessor final : public ReadAccessor, public WriteAccessor {...};
ReadWriteAccessor is used to read and write file data. It combines the capabilities of the ReadAccessor with the WriteAccessor.
用户指南人工智能生成
允许通过通用访问接口组合读取和写入文件数据。
AI 生成
未审核
模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6c41c48fc5a7
来源
未决问题(3)
允许通过通用访问接口组合读取和写入文件数据。
类 ara::per::ReadWriteAccessor 结合了 ReadAccessor 和 WriteAccessor 的接口,以允许在 AUTOSAR Adaptive Platform 中通过通用对象读写文件数据。不允许通过默认构造函数直接实例化,因为该构造函数已被显式删除 [SWS_PER_00462]。销毁实例时,声明为 noexcept 的析构函数保证了完全的异常安全性,但明确未规范为线程安全的,因此需要同步访问 [SWS_PER_00598]。
上下文
类 ara::per::ReadWriteAccessor 是 AUTOSAR Adaptive Platform 的模块 per(Persistency)中用于读取和写入文件数据的核心接口。它通过汇集基类 ReadAccessor 和 WriteAccessor 的功能,捆绑了独立读取和写入访问的功能。类声明通过头文件 ara/per/read_write_accessor.h [SWS_PER_00462] 进行。
在类型架构中,ReadWriteAccessor 通过多重继承被定义为 ReadAccessor 以及 WriteAccessor 的子类,并标有标识符 final。这防止了应用程序开发人员的进一步派生,并确保组合访问语义保持不变。因此,两个特化的基类充当交互伙伴,其通用接口契约映射到文件的统一访问层上。
上下文图:ReadWriteAccessor、ReadAccessor 和 WriteAccessor 之间的继承层次结构和角色关系。来源:[SWS_PER_00462],[SWS_PER_00598]
生命周期
ara::per::ReadWriteAccessor 实例的生命周期受严格的结构规范约束。根据 [SWS_PER_00462],无参默认构造函数已被显式删除(ReadWriteAccessor() = delete;)。因此,不允许在没有上下文或参数的情况下直接创建。从架构角度来看(Interpretation),一旦打开文件进行组合读写操作,该类的实例通常可能由 Persistency 子系统的上层管理函数或创建机制提供。 问题 Q-9b390ab33102d524 (未决)
实例的释放通过析构函数 ~ReadWriteAccessor() 进行,该析构函数声明为 final 和 noexcept [SWS_PER_00598]。结束对象生命周期在并发性方面需要特别注意:析构函数在规范中被明确归类为非线程安全(“not thread-safe”)[SWS_PER_00598]。因此,调用方软件必须确保在销毁对象期间,同一实例上没有并发的读写操作发生。根据 Interpretation,在有序退出作用域时,析构函数可能负责关闭打开的文件描述符并清理剩余的内部状态。 问题 Q-49e2fdfd53789afd (未决)
在所有权关系方面,该对象通常位于使用方组件的局部作用域内,或通过指针结构进行管理。由于并发修改和销毁未受保护,(Interpretation)实例 vermutlich 不得在并发执行上下文之间未经保护地共享。 问题 (未决)
错误场景
使用 ara::per::ReadWriteAccessor 时的错误情况在编译时和运行时均通过特定的前置条件和后置条件表现出来。一项关键的静态前置条件是禁止默认实例化:由于无参构造函数已被删除,任何直接构造的尝试都会导致立即出现编译错误 [SWS_PER_00462]。这可以防止系统中存在未初始化或无效的 Accessor 对象。
在异常级别方面,该类在析构时提供了有保证的异常安全性:析构函数被定义为 noexcept 并被规范为异常安全(“exception safe”)[SWS_PER_00598]。这确保了即使在清理工作期间发生错误,也不会向外传播 C++ 异常,从而保证了安全的栈展开。
运行时的关键错误场景源自根据 [SWS_PER_00598] 析构函数缺乏线程安全性。如果在另一个线程仍在执行读写操作时销毁对象,将导致未定义行为或数据不一致。因此,遵守与线程相关的前置条件完全取决于调用方系统设计。
本类指南基于 Persistency(per)模块的 AUTOSAR Adaptive Platform R25-11 规范。
UML 类图
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
此版本没有元素数据
构造函数和析构函数
The default constructor for ReadWriteAccessor shall not be used.
ReadWriteAccessor ()=delete;
Destructor for ReadWriteAccessor.
方法文档
ReadWriteAccessor ()=delete;
The default constructor for ReadWriteAccessor shall not be used.
Status: valid/unmigrated
Version: rel:R25-11#cfd162d3
Versionshistorie & Revisions (1 transition, 6 revision)
- Current State
valid/unmigrated
- Reason
- mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
- Campaign
2026-08-13-status-backfill
- Active Version
AUTOSAR/AP/record/SWS_PER_00462@rel:R25-11#cfd162d3
Point-in-Time History:
Recorded Revisions (6):
- R25-11
rel:R25-11#721764292026-09-30 - R21-11
rel:R21-11#cd9652062026-10-14 - R22-11
rel:R22-11#77262b5e2026-10-14 - R23-11
rel:R23-11#5e7c323f2026-10-14 - R24-11
rel:R24-11#d4da2a372026-10-14 - R25-11
rel:R25-11#cfd162d32026-10-14 active
Historical Snapshot:
🚫
Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
~ReadWriteAccessor () final noexcept;
Destructor for ReadWriteAccessor.
| Header-Datei | #include "ara/per/read_write_accessor.h" |
|---|
| Scope | class ara::per::ReadWriteAccessor |
|---|
| Exception-Sicherheit | exception safe |
|---|
| Thread-Sicherheit | not thread-safe |
|---|
Status: valid/unmigrated
Version: rel:R25-11#3b19c355
Versionshistorie & Revisions (1 transition)
- Current State
valid/unmigrated
- Reason
- mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
- Campaign
2026-08-13-status-backfill
- Active Version
AUTOSAR/AP/record/SWS_PER_00598@rel:R25-11#3b19c355
Point-in-Time History:
Historical Snapshot:
🚫
Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
gemini-3.8-flash-low· 2026-10-13 · 德文原文