अपवाद-मुक्त आवंटन और बंडल रिलीज़ के साथ मोनोटोनिक रूप से बढ़ते बफर में मेमोरी ब्लॉक्स को प्रबंधित करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 993d3b66f0fcउद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
अपवाद-मुक्त आवंटन और बंडल रिलीज़ के साथ मोनोटोनिक रूप से बढ़ते बफर में मेमोरी ब्लॉक्स को प्रबंधित करता है।
क्लास ara::core::MonotonicBufferResource एक निश्चित मेमोरी बफर से या एक अपस्ट्रीम रिसोर्स के माध्यम से तेज़, मोनोटोनिक आवंटन के लिए एक विशेष मेमोरी रिसोर्स प्रदान करती है। अनुरोधित मेमोरी को उत्तरोत्तर आवंटित किया जाता है और व्यक्तिगत डीलॉकेशन पर तुरंत रिलीज़ नहीं किया जाता है, बल्कि केवल release() ([SWS_CORE_06530]) के माध्यम से सामूहिक रूप से रीसेट किया जाता है। सभी ऑपरेशंस को पूरी तरह से अपवाद-मुक्त घोषित किया गया है, जहां मेमोरी की कमी को अपवाद के बजाय nullptr लौटाकर संकेत दिया जाता है ([SWS_CORE_06569])। इंस्टेंस गैर-कॉपी करने योग्य हैं और एकाधिक थ्रेड्स से समवर्ती पहुंच के मामले में बाहरी सिंक्रोनाइज़ेशन की आवश्यकता होती है।
संदर्भ
क्लास ara::core::MonotonicBufferResource AUTOSAR Adaptive प्लेटफ़ॉर्म के मॉड्यूल core के भीतर एक कंक्रीट मेमोरी रिसोर्स है और बेस क्लास ara::core::MemoryResource से इनहेरिट करती है। यह सुरक्षा-संबंधित और डिटरमिनिस्टिक ऑटोमोटिव अनुप्रयोगों के लिए [mem.res.monotonic.buffer] से std::pmr::monotonic_buffer_resource की C++ मानक अवधारणा को अनुकूलित करती है। क्लास की प्राथमिक भूमिका मेमोरी को मोनोटोनिक रूप से आवंटित करके न्यूनतम प्रबंधन ओवरहेड के साथ एक निरंतर मेमोरी क्षेत्र से आवंटन अनुरोधों को पूरा करना है।
इंटरैक्शन पार्टनर के रूप में एक ओर कॉलिंग कंपोनेंट्स, पॉलीमॉर्फिक एलोकेटर्स और कंटेनर्स कार्य करते हैं, जो रनटाइम पर मेमोरी ब्लॉक्स का अनुरोध करते हैं। दूसरी ओर, क्लास एक वैकल्पिक उच्च-स्तरीय अपस्ट्रीम मेमोरी रिसोर्स (MemoryResource) के साथ इंटरैक्ट करती है। यह अपस्ट्रीम रिसोर्स [SWS_CORE_06521] जैसे कंस्ट्रक्टर्स के माध्यम से पास किया जा सकता है और एक्सेस मेथड upstream_resource() ([SWS_CORE_06531]) के माध्यम से क्वेरी किया जा सकता है।
जीवनचक्र
ara::core::MonotonicBufferResource के इनिशियलाइज़ेशन को कई कंस्ट्रक्टर्स के माध्यम से नियंत्रित किया जा सकता है। पैरामीटर रहित डिफ़ॉल्ट कंस्ट्रक्टर ([SWS_CORE_06524]) के अलावा, ऐसे ओवरलोड उपलब्ध हैं जो एक स्पष्ट अपस्ट्रीम रिसोर्स स्वीकार करते हैं ([SWS_CORE_06521]), एक प्रारंभिक बफर आकार परिभाषित करते हैं ([SWS_CORE_06525], [SWS_CORE_06522]) या बाहरी रूप से प्रदान किए गए रॉ मेमोरी क्षेत्र (void* buffer, std::size_t buffer_size) का प्रारंभिक बफर के रूप में उपयोग करते हैं ([SWS_CORE_06526], [SWS_CORE_06523])।
ओनरशिप संबंधों के संदर्भ में, क्लास को सख्ती से गैर-कॉपी करने योग्य के रूप में परिभाषित किया गया है: कॉपी कंस्ट्रक्टर ([SWS_CORE_06527]) और कॉपी असाइनमेंट ऑपरेटर ([SWS_CORE_06529]) हटा दिए गए हैं (=delete)। ISO-14882 मानक के विपरीत, AUTOSAR क्लास मूव कंस्ट्रक्टर ([SWS_CORE_06576]) और मूव असाइनमेंट ऑपरेटर ([SWS_CORE_06577]) के माध्यम से स्पष्ट मूव सिमेंटिक्स लागू करती है, जिन्हें क्रमशः noexcept=default के रूप में परिभाषित किया गया है।
विनाश डिस्ट्रक्टर ~MonotonicBufferResource() ([SWS_CORE_06528]) के माध्यम से होता है। मानक से एक महत्वपूर्ण AUTOSAR विचलन यह है कि डिस्ट्रक्टर को वर्चुअल घोषित नहीं किया गया है। मेथड release() ([SWS_CORE_06530]) के माध्यम से संपूर्ण आवंटित मेमोरी को ऑब्जेक्ट लाइफ़टाइम समाप्त होने से पहले रीसेट किया जा सकता है।
एक विशिष्ट अनुप्रयोग प्रवाह में प्रावधान, निरंतर आवंटन और बंडल रिलीज़ शामिल हैं:
इंस्टैंसिएशन: एप्लिकेशन एक इंस्टेंस बनाता है, उदाहरण के लिए बफर आकार और अपस्ट्रीम रिसोर्स ([SWS_CORE_06522]) या एक निश्चित बफर ([SWS_CORE_06526]) निर्दिष्ट करके।
आवंटन: मेमोरी आवश्यकताओं को संरक्षित विधि do_allocate(bytes, alignment) ([SWS_CORE_06569]) के माध्यम से पूरा किया जाता है। यदि मौजूदा बफर पर्याप्त नहीं है, तो इंस्टेंस अपस्ट्रीम रिसोर्स से नया बफर प्राप्त करता है।
डीआवंटन:do_deallocate(p, bytes, alignment) ([SWS_CORE_06570]) के कॉल्स बफर को व्यक्तिगत रूप से कम नहीं करते हैं; आंतरिक आवंटन पॉइंटर मोनोटोनिक रूप से आगे बढ़ता रहता है।
बफर रीसेट:release() ([SWS_CORE_06530]) के साथ अपस्ट्रीम के माध्यम से प्राप्त सभी मेमोरी ब्लॉक्स एक साथ रिलीज़ किए जाते हैं, और बफर नए चक्रों के लिए तैयार हो जाता है।
संसाधन तुलना:do_is_equal() ([SWS_CORE_06571]) के माध्यम से यह जांचा जा सकता है कि क्या दो मेमोरी संसाधन समान हैं।
यह क्लास अपवाद-रहित एम्बेडेड प्रणालियों के लिए सख्त विनिर्देशों का पालन करती है: सभी सदस्य फ़ंक्शन, कंस्ट्रक्टर और ऑपरेटर noexcept के रूप में घोषित हैं और पूर्ण अपवाद सुरक्षा प्रदान करते हैं।
त्रुटि की स्थिति में, व्यवहार जानबूझकर मानक लाइब्रेरी से भिन्न होता है:
विफल आवंटन: यदि do_allocate() ([SWS_CORE_06569]) में किसी अनुरोध को पूरा नहीं किया जा सकता है, तो कोई std::bad_alloc अपवाद नहीं फेंका जाता है, बल्कि एक nullptr लौटाया जाता है। कॉल करने वालों के लिए वापसी मान को nullptr के लिए जाँचना अनिवार्य है।
डीआवंटन में त्रुटि: यदि do_deallocate() ([SWS_CORE_06570]) में रिलीज़ के दौरान कोई त्रुटि होती है, तो विनिर्देश के अनुसार इसे चुपचाप अनदेखा कर दिया जाता है।
बेस पॉइंटर के माध्यम से विनाश: चूंकि डिस्ट्रक्टर ([SWS_CORE_06528]) वर्चुअल नहीं है, इसलिए बेस क्लास MemoryResource के पॉइंटर के माध्यम से विनाश अपरिभाषित व्यवहार की ओर ले जा सकता है (व्याख्या: विनाश ठोस प्रकार के माध्यम से ही होना चाहिए)। प्रश्न Q-add18020b48f3131 (खुला)
यह मार्गदर्शिका AUTOSAR Adaptive R25-11 विनिर्देश के आधार पर एक AI सिस्टम द्वारा तैयार की गई थी।
except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception ≙ std::bad_alloc
As per corresponding usage in [mem.res.monotonic.buffer] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 601be17f5d68उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग
वर्ग ara::core::MonotonicBufferResource का संरक्षित सदस्य फलन do_allocate[mem.res.monotonic.buffer][SWS_CORE_06569] के अनुसार मेमोरी क्षेत्रों के आवंटन के लिए कार्य करता है। यह बेस क्लास ara::core::MemoryResource[SWS_CORE_06566] के शुद्ध वर्चुअल इंटरफ़ेस do_allocate को कार्यान्वित करता है। एक व्याख्या के रूप में, protected दृश्यता के कारण समकालिक कॉल मुख्य रूप से बेस क्लास के सार्वजनिक असाइनमेंट विधियों के माध्यम से अप्रत्यक्ष रूप से होनी चाहिए। प्रश्न Q-21b2da19c0fd7f8f (खुला) यह फलन बाइट्स में अनुरोधित आकार और वांछित संरेखण (alignment) स्वीकार करता है।
त्रुटि प्रबंधन और अपवाद सुरक्षा
C++ मानक व्यवहार के विपरीत, आवंटन त्रुटियों के मामले में फलन कोई std::bad_alloc अपवाद नहीं फेंकता है, बल्कि इसके स्थान पर nullptr लौटाता है [SWS_CORE_06569]। noexcept के साथ घोषणा के कारण, मेथड को अपवाद-सुरक्षित निर्दिष्ट किया गया है [SWS_CORE_06569]। इसलिए कॉलर को अपर्याप्त मेमोरी का पता लगाने के लिए परिणाम की हमेशा nullptr के लिए जाँच करनी चाहिए।
समवर्तीता और परस्पर क्रिया
मेथड को गैर-थ्रेड-सुरक्षित निर्दिष्ट किया गया है [SWS_CORE_06569]। यदि असाइनमेंट कई थ्रेड्स से समवर्ती रूप से शुरू किए जाते हैं, तो सिंक्रोनाइज़ेशन कॉलिंग साइट के माध्यम से बाह्य रूप से किया जाना चाहिए। यह ara::core::UnsynchronizedPoolResource::do_allocate[SWS_CORE_00058] के व्यवहार से मेल खाता है, जबकि ara::core::SynchronizedPoolResource::do_allocate को समवर्ती कॉल के लिए थ्रेड-सुरक्षित डिज़ाइन किया गया है [SWS_CORE_00061]।
यह उपयोग नोट विनिर्देश AUTOSAR R25-11 के आधार पर स्वचालित रूप से तैयार किया गया था।
As per corresponding usage in [mem.res.monotonic.buffer] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e7d49ed79e7cउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग
वर्ग ara::core::MonotonicBufferResource का सदस्य फलन do_deallocate[SWS_CORE_06570] के अनुसार मेमोरी क्षेत्रों के वि-आवंटन (deallocation) के लिए कार्य करता है। इसे हेडर फ़ाइल #include "ara/core/memory_resource.h" के माध्यम से परिभाषित किया गया है [SWS_CORE_06570]। फलन मुक्त किए जाने वाले मेमोरी क्षेत्र के लिए एक पॉइंटर p और पैरामीटर bytes तथा alignment (प्रत्येक प्रकार std::size_t का) स्वीकार करता है और कोई वापसी मान नहीं देता है (void) [SWS_CORE_06570]। सिमेंटिक्स विशिष्ट AUTOSAR विचलनों के साथ [mem.res.monotonic.buffer] में निर्धारण का अनुसरण करता है [SWS_CORE_06570]।
त्रुटि प्रबंधन
फलन को noexcept के रूप में घोषित किया गया है और यह अपवाद सुरक्षा (exception safe) सुनिश्चित करता है [SWS_CORE_06570]। यदि निष्पादन के दौरान कोई त्रुटि होती है, तो उसे बिना सूचना के अनदेखा कर दिया जाता है (errors will be silently ignored) [SWS_CORE_06570]। त्रुटि संदेशों के लिए न तो वापसी मान मौजूद हैं और न ही विशिष्ट त्रुटि कोड।
समवर्तीता और प्रतिबंध
समवर्तीता के संबंध में, do_deallocate को गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में निर्दिष्ट किया गया है [SWS_CORE_06570]। बाहरी सिंक्रोनाइज़ेशन के बिना कई थ्रेड्स से एक साथ कॉल करने की अनुमति नहीं है। मेथड में दृश्यता protected है और यह बेस क्लास ara::core::MemoryResource[SWS_CORE_06567] के शुद्ध वर्चुअल इंटरफ़ेस को ओवरराइड करता है। व्याख्या: कॉल आमतौर पर बेस क्लास के सार्वजनिक वि-आवंटन इंटरफ़ेस के माध्यम से संचालित किए जाने चाहिए। प्रश्न Q-6916292acaa8993b (खुला)
इंटरैक्शन
जबकि बेस क्लास ara::core::MemoryResource निजी दृश्यता के साथ वि-आवंटन मेथड निर्धारित करती है [SWS_CORE_06567], MonotonicBufferResource और संबंधित वर्ग ara::core::SynchronizedPoolResource[SWS_CORE_00041] और ara::core::UnsynchronizedPoolResource[SWS_CORE_00059] इसे मूक त्रुटि प्रबंधन के तहत संरक्षित (protected) कार्यान्वित करते हैं। सिंक्रनाइज़ किए गए पूल संसाधन [SWS_CORE_00041] के विपरीत, जो थ्रेड-सुरक्षित है, MonotonicBufferResource को ara::core::UnsynchronizedPoolResource[SWS_CORE_00059] की तरह समानांतर एक्सेस के बहिष्करण की आवश्यकता होती है।
यह उपयोग नोट एक AI द्वारा तैयार किया गया था और AUTOSAR Adaptive R25-11 विनिर्देश के प्रावधानों पर आधारित है।
As per corresponding usage in [mem.res.monotonic.buffer] except for the following deviations: 1. The function is noexcept
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: fc4ade44f9c3उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
वर्ग ara::core::MonotonicBufferResource का संरक्षित (protected) मेथड do_is_equal[SWS_CORE_06571] के अनुसार बेस क्लास ara::core::MemoryResource के शुद्ध वर्चुअल इंटरफ़ेस को ओवरराइड करता है। यह मेमोरी प्रबंधन सिमेंटिक्स के संबंध में समानता के लिए पास किए गए const MemoryResource &other के साथ वर्तमान इंस्टेंस की समकालिक रूप से तुलना करता है।
उपयोग और सिमेंटिक्स
कॉल आमतौर पर MemoryResource के सार्वजनिक इंटरफ़ेस के माध्यम से अप्रत्यक्ष रूप से की जाती है। [SWS_CORE_06571] के अनुसार, व्यवहार [mem.res.monotonic.buffer] में उपयोग पर आधारित है, लेकिन इसमें यह स्पष्ट विचलन है कि फलन को noexcept के रूप में घोषित किया गया है। वापसी मान एक bool है, जो यह इंगित करता है कि क्या दोनों संसाधन विनिमेय या समरूप हैं।
त्रुटि हैंडलिंग और समवर्तीता
अपवाद सुरक्षा: फलन को exception safe के रूप में निर्दिष्ट किया गया है और [SWS_CORE_06571] के अनुसार noexcept हस्ताक्षर के कारण कोई अपवाद नहीं फेंकता है। कोई विशिष्ट त्रुटि कोड या DET/DEM संदेश मौजूद नहीं हैं।
थ्रेड सुरक्षा: ऑपरेशन को thread-safe ([SWS_CORE_06571]) के रूप में वर्गीकृत किया गया है और इसे समवर्ती रूप से निष्पादित किया जा सकता है।
इंटरैक्शन
फलन ara::core::MemoryResource ([SWS_CORE_06568]) से वर्चुअल अनुबंध को लागू करता है। समानता तुलना के समान कार्यान्वयन अन्य मेमोरी संसाधनों जैसे कि ara::core::SynchronizedPoolResource ([SWS_CORE_00042]) और ara::core::UnsynchronizedPoolResource ([SWS_CORE_00060]) में भी पाए जाते हैं।
यह पाठ R25-11 विनिर्देश के आधार पर एक AI द्वारा जनरेट किया गया था।
As per corresponding usage in [mem.res.monotonic.buffer] except for the following deviations: 1. The function is noexcept
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 082c843665ceउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
वर्ग ara::core::MonotonicBufferResource ([SWS_CORE_06530]) का सदस्य फलन release() बफ़र संसाधन द्वारा प्रबंधित मेमोरी को मुक्त करने का कार्य करता है। कॉल समकालिक रूप से होती है, कोई पैरामीटर स्वीकार नहीं करती है और कोई वापसी मान नहीं देती है (void)।
त्रुटि प्रबंधन के संबंध में, फलन को noexcept के रूप में घोषित किया गया है और अपवाद-सुरक्षित (exception safe) के रूप में निर्दिष्ट किया गया है ([SWS_CORE_06530])। कोई विशिष्ट त्रुटि कोड मौजूद नहीं हैं, और केंद्रीय नैदानिक (diagnostic) या रिपोर्टिंग निकायों को कोई त्रुटि संदेश नहीं भेजा जाता है।
समवर्तीता के संबंध में, release() को स्पष्ट रूप से गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में वर्गीकृत किया गया है ([SWS_CORE_06530])। बाहरी सिंक्रोनाइज़ेशन के बिना समान इंस्टेंस पर समवर्ती एक्सेस की अनुमति नहीं है। व्याख्या: [mem.res.monotonic.buffer] से अनुकूलित सिमेंटिक्स के कारण, इस कॉल के साथ इस संसाधन के माध्यम से पहले उपलब्ध कराए गए सभी मेमोरी क्षेत्र संभवतः अमान्य हो जाएंगे। प्रश्न Q-bd46bd9971926d95 (खुला)
#include "ara/core/memory_resource.h" से मेमोरी संसाधनों की परस्पर क्रिया में, यह फलन समवर्तीता व्यवहार में ara::core::SynchronizedPoolResource::release() से भिन्न है, जो कि थ्रेड-सुरक्षित है ([SWS_CORE_00037]), जबकि यह ara::core::UnsynchronizedPoolResource::release() के अनुरूप व्यवहार करता है, जो गैर-थ्रेड-सुरक्षित भी है ([SWS_CORE_00065])।
यह पाठ AUTOSAR R25-11 की विनिर्देश आवश्यकताओं के आधार पर एक AI द्वारा तैयार किया गया था।
As per corresponding usage in [mem.res.monotonic.buffer] except for the following deviations: 1. The function is noexcept
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 34a11a1fee7aउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
वर्ग ara::core::MonotonicBufferResource का सदस्य फलन upstream_resource() प्रकार MemoryResource* के पैरेंट मेमोरी संसाधन का एक पॉइंटर समकालिक रूप से लौटाता है [SWS_CORE_06531]। कॉल हेडर #include "ara/core/memory_resource.h" के माध्यम से की जाती है और कोई पैरामीटर स्वीकार नहीं करती है [SWS_CORE_06531]। व्याख्या: लौटाया गया मेमोरी संसाधन संभवतः एक अपस्ट्रीम बफ़र के रूप में कार्य करता है यदि इंस्टेंस का आंतरिक बफ़र आवंटन के लिए पर्याप्त नहीं है। प्रश्न Q-e01e234e281bc4c6 (खुला)
त्रुटि प्रबंधन और अपवाद सुरक्षा के संबंध में, मेथड को noexcept के रूप में घोषित किया गया है और यह पूरी तरह से अपवाद-सुरक्षित (exception safe) है [SWS_CORE_06531]। इस शुद्ध गेटर कॉल के लिए विनिर्देश में विशिष्ट त्रुटि कोड, त्रुटि ऑब्जेक्ट या DET अथवा DEM जैसे नैदानिक संदेश प्रदान नहीं किए गए हैं [SWS_CORE_06531]।
समवर्तीता के संबंध में, मेथड को const के रूप में और थ्रेड-सुरक्षित (thread-safe) निर्दिष्ट किया गया है [SWS_CORE_06531]। इसके परिणामस्वरूप, बाहरी सिंक्रोनाइज़ेशन के बिना कई थ्रेड्स से समानांतर रूप से अपस्ट्रीम संसाधन के पॉइंटर को क्वेरी किया जा सकता है।
कार्यात्मक सिमेंटिक्स [mem.res.monotonic.buffer] में निर्धारण का अनुसरण करता है, लेकिन इसमें यह मानकीय विचलन है कि फलन को AUTOSAR Adaptive मानक में स्पष्ट रूप से noexcept के रूप में परिभाषित किया गया है [SWS_CORE_06531]। पैरेंट संसाधन प्रदान करने के लिए एक समान इंटरफ़ेस पैटर्न संबंधित वर्गों ara::core::SynchronizedPoolResource[SWS_CORE_00038] और ara::core::UnsynchronizedPoolResource[SWS_CORE_00056] द्वारा भी उपयोग किया जाता है।
यह पाठ विनिर्देश डेटा के आधार पर एक AI द्वारा तैयार किया गया था।
As per corresponding usage in [mem.res.monotonic.buffer] except for the following deviations: 1. The function is noexcept 2. The function is not virtual
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल