एक साझा एक्सेस इंटरफ़ेस के माध्यम से फ़ाइल डेटा को संयुक्त रूप से पढ़ने और लिखने में सक्षम बनाता है।
एआई-जनितअसत्यापितमॉडल: 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 के साथ चिह्नित किया गया है। यह एप्लिकेशन डेवलपर्स द्वारा आगे के व्युत्पन्न को रोकता है और यह सुनिश्चित करता है कि संयुक्त एक्सेस सिमेंटिक्स अपरिवर्तित रहे। नतीजतन, दो विशेष बेस वर्ग इंटरेक्शन पार्टनर के रूप में कार्य करते हैं, जिनके साझा इंटरफ़ेस अनुबंध फ़ाइलों के लिए एक समान एक्सेस परत पर प्रोजेक्ट किए जाते हैं।
संदर्भ आरेख: 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.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल