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, एक साझा ऑब्जेक्ट के माध्यम से AUTOSAR Adaptive Platform में फ़ाइल डेटा को पढ़ने और लिखने को सक्षम करने के लिए ReadAccessor और WriteAccessor के इंटरफ़ेस को जोड़ता है। डिफ़ॉल्ट कन्स्ट्रक्टर के माध्यम से प्रत्यक्ष इंस्टैंसिएशन की अनुमति नहीं है, क्योंकि इसे स्पष्ट रूप से हटा दिया गया है [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 के साथ चिह्नित किया गया है। यह एप्लिकेशन डेवलपर्स द्वारा आगे के व्युत्पन्न को रोकता है और यह सुनिश्चित करता है कि संयुक्त एक्सेस सिमेंटिक्स अपरिवर्तित रहे। नतीजतन, दो विशेष बेस वर्ग इंटरेक्शन पार्टनर के रूप में कार्य करते हैं, जिनके साझा इंटरफ़ेस अनुबंध फ़ाइलों के लिए एक समान एक्सेस परत पर प्रोजेक्ट किए जाते हैं।

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] के अनुसार डिस्ट्रक्टर की थ्रेड-सुरक्षा की कमी के कारण रनटाइम पर एक महत्वपूर्ण त्रुटि परिदृश्य उत्पन्न होता है। यदि ऑब्जेक्ट को तब नष्ट कर दिया जाता है जब कोई अन्य थ्रेड अभी भी रीड या राइट ऑपरेशन निष्पादित कर रहा हो, तो इससे अपरिभाषित व्यवहार या डेटा विसंगतियां हो सकती हैं। इसलिए थ्रेड-संबंधित पूर्व शर्तों का अनुपालन पूरी तरह से कॉलिंग सिस्टम डिज़ाइन पर निर्भर करता है।

यह वर्ग गाइड Persistency (per) मॉड्यूल के लिए AUTOSAR Adaptive Platform R25-11 विनिर्देश पर आधारित है।

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

कंस्ट्रक्टर और डिस्ट्रक्टर

ReadWriteAccessor फ़ंक्शन

The default constructor for ReadWriteAccessor shall not be used.

ReadWriteAccessor ()=delete;
~ReadWriteAccessor फ़ंक्शन

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#37db5cad
Content hash
37db5cad
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#0fe2f87d
Content hash
0fe2f87d
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