DEENESPTFRRUARHIKOZHNL

فئة 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.

Header-Datei#include "ara/per/read_write_accessor.h"
Forwarding-Header#include "ara/per/per_fwd.h"
Scopenamespace ara::per
Basisklasse(n)ReadAccessor, WriteAccessor

دليل المستخدممولَّد بالذكاء الاصطناعي

يتيح القراءة والكتابة المجمعتين لبيانات الملفات عبر واجهة وصول مشتركة.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 6c41c48fc5a7 المصدر أسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يتيح القراءة والكتابة المجمعتين لبيانات الملفات عبر واجهة وصول مشتركة.

تجمع الفئة ara::per::ReadWriteAccessor بين واجهتي ReadAccessor وWriteAccessor لإتاحة قراءة بيانات الملفات وكتابتها في AUTOSAR Adaptive Platform عبر كائن مشترك. لا يُسمح بالإنشاء المباشر للمثيلات عبر المنشئ الافتراضي، نظراً لأنه محذوف صراحةً [SWS_PER_00462]. عند تدمير المثيل، يضمن مُدمِّر الكائن المعلن عنه كـ noexcept أماناً كاملاً من الاستثناءات، ولكنه محدد صراحةً بأنه غير آمن لترابط العمليات، وبالتالي يتطلب وصولاً متزامناً [SWS_PER_00598].

السياق

تمثل الفئة ara::per::ReadWriteAccessor في الوحدة per (Persistency) التابعة لـ AUTOSAR Adaptive Platform الواجهة المركزية لقراءة بيانات الملفات وكتابتها على حد سواء. وهي تضم وظائف الوصول المنفصل للقراءة والكتابة من خلال دمج إمكانيات الفئتين الأساسيتين ReadAccessor وWriteAccessor. يتم التصريح عن الفئة عبر ملف الترويسة ara/per/read_write_accessor.h [SWS_PER_00462].

في معمارية الأنواع، تُعرَّف ReadWriteAccessor عبر الوراثة المتعددة كفئة فرعية من ReadAccessor وكذلك WriteAccessor وتُميَّز بالمعرّف final. يمنع هذا إجراء اشتقاق إضافي بواسطة مطوري التطبيقات ويضمن بقاء دلالات الوصول المجمعة دون تغيير. وتبعاً لذلك، تعمل الفئتان الأساسيتان المخصصتان كطرفي تفاعل، حيث يتم إسقاط عقود واجهتيهما المشتركة على طبقة وصول موحدة للملفات.

diag_kontext ReadWriteAccessor ReadWriteAccessor ReadAccessor ReadAccessor ReadWriteAccessor->ReadAccessor erbt von WriteAccessor WriteAccessor ReadWriteAccessor->WriteAccessor erbt von

مخطط السياق: التسلسل الهرمي للوراثة وعلاقة الأدوار بين ReadWriteAccessor وReadAccessor وWriteAccessor. المصادر: [SWS_PER_00462]، [SWS_PER_00598]

دورة الحياة

تخضع دورة حياة مثيل ara::per::ReadWriteAccessor لاشتراطات هيكلية صارمة. ووفقاً لـ [SWS_PER_00462]، فإن المنشئ الافتراضي الخالي من المعلمات محذوف صراحةً (ReadWriteAccessor() = delete;). ولذلك، فإن الإنشاء المباشر دون سياق أو معلمات غير مسموح به. من منظور معماري (تفسير)، يُرجَّح توفير مثيلات هذه الفئة نموذجياً بواسطة وظائف إدارة عليا أو آليات إنشاء تابعة للنظام الفرعي لـ Persistency بمجرد فتح ملف لعمليات القراءة والكتابة المجمعة. سؤال Q-9b390ab33102d524 (مفتوح)

يتم تحرير المثيل عبر مُدمِّر الكائن ~ReadWriteAccessor()، المعلن عنه كـ final وnoexcept [SWS_PER_00598]. يتطلب إنهاء دورة حياة الكائن اهتماماً خاصاً فيما يتعلق بالتزامن: يُصنَّف مُدمِّر الكائن في المواصفات صراحةً بأنه غير آمن لترابط العمليات («not thread-safe») [SWS_PER_00598]. وبالتالي، يجب على البرمجية المستدعية ضمان عدم حدوث أي عمليات قراءة أو كتابة متوازية على المثيل نفسه أثناء تدمير الكائن. وفقاً للتفسير، يُرجَّح أن يكون مُدمِّر الكائن مسؤولاً عند مغادرة نطاق الصلاحية بشكل منظم عن إغلاق واصفات الملفات المفتوحة وتنظيف الحالات الداخلية المتبقية. سؤال Q-49e2fdfd53789afd (مفتوح)

فيما يتعلق بعلاقة الملكية، يقع الكائن نموذجياً ضمن نطاق الصلاحية المحلي للمكون المستخدم أو تتم إدارته عبر هياكل المؤشرات. ونظراً لأن التعديل والتدمير المتزامنين غير مؤمنين، فمن المحتمل (تفسير) عدم جواز مشاركة المثيل بين سياقات تنفيذ متزامنة دون حماية. سؤال (مفتوح)

سيناريوهات الأخطاء

تتجلى حالات الخطأ في التعامل مع ara::per::ReadWriteAccessor في وقت الترجمة وكذلك في وقت التشغيل عبر شروط مسبقة ولاحقة محددة. ويتمثل أحد الشروط المسبقة الساكنة الأساسية في حظر إنشاء المثيلات الافتراضي: نظراً لأن المنشئ الخالي من المعلمات محذوف، فإن أي محاولة للإنشاء المباشر تؤدي إلى خطأ ترجمة فوري [SWS_PER_00462]. ويمنع ذلك وجود كائنات وصول غير مهيأة أو غير صالحة في النظام.

فيما يتعلق بمستوى الاستثناءات، توفر الفئة أماناً مضموناً من الاستثناءات عند التفكيك: يُعرَّف مُدمِّر الكائن كـ noexcept ومحدد بأنه آمن من الاستثناءات («exception safe») [SWS_PER_00598]. ويضمن هذا عدم نشر أي استثناءات C++ إلى الخارج حتى في حال حدوث أخطاء أثناء أعمال التنظيف، مما يضمن الحفاظ على فك مكدس آمن.

ينشأ سيناريو خطأ حرج في وقت التشغيل من افتقار مُدمِّر الكائن لأمان ترابط العمليات وفقاً لـ [SWS_PER_00598]. وإذا تم تدمير الكائن بينما لا يزال خيط عمليات آخر ينفذ عمليات قراءة أو كتابة، يؤدي ذلك إلى سلوك غير محدد أو عدم اتساق في البيانات. وبالتالي، يقع الامتثال للشروط المسبقة المتعلقة بترابط العمليات بالكامل على عاتق تصميم النظام المستدعي.

يستند دليل الفئة هذا إلى مواصفات AUTOSAR Adaptive Platform R25-11 للوحدة Persistency (per).

مخطط الفئات UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__per__ReadWriteAccessor483 ReadWriteAccessor + ReadWriteAccessor() + ~ReadWriteAccessor() nara__per__ReadAccessor956 ReadAccessor nara__per__ReadWriteAccessor483->nara__per__ReadAccessor956 nara__per__WriteAccessor940 WriteAccessor nara__per__ReadWriteAccessor483->nara__per__WriteAccessor940 nara__per__FileAccessor932 FileAccessor nara__per__ReadAccessor956->nara__per__FileAccessor932 nara__per__WriteAccessor940->nara__per__FileAccessor932

المُنشئات والمُتلف

The default constructor for ReadWriteAccessor shall not be used.

ReadWriteAccessor ()=delete;

Destructor for ReadWriteAccessor.

~ReadWriteAccessor () final noexcept;

توثيق الدوال

دالة ReadWriteAccessor [SWS_PER_00462] Upstream: RS_PER_00004, RS_AP_00120, RS_AP_00129, RS_AP_00146

ReadWriteAccessor ()=delete;

The default constructor for ReadWriteAccessor shall not be used.

Header-Datei#include "ara/per/read_write_accessor.h"
Scopeclass ara::per::ReadWriteAccessor

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00462
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00462@rel:R25-11#b5b34c09
Content hash
b5b34c09
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00462
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-11rel:R25-11#721764292026-09-30
  • R21-11rel:R21-11#cd9652062026-10-14
  • R22-11rel:R22-11#77262b5e2026-10-14
  • R23-11rel:R23-11#5e7c323f2026-10-14
  • R24-11rel:R24-11#d4da2a372026-10-14
  • R25-11rel:R25-11#cfd162d32026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

دالة ~ReadWriteAccessor [SWS_PER_00598] Upstream: RS_PER_00004, RS_AP_00120, RS_AP_00129, RS_AP_00134, RS_AP_00145, RS_AP_00159

~ReadWriteAccessor () final noexcept;

Destructor for ReadWriteAccessor.

Header-Datei#include "ara/per/read_write_accessor.h"
Scopeclass ara::per::ReadWriteAccessor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00598
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00598@rel:R25-11#86be8601
Content hash
86be8601
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00598
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:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill