एक लिंक किए गए Future ऑब्जेक्ट को void परिणाम या त्रुटि का अतुल्यकालिक प्रावधान सक्षम बनाता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 5c77833bef95उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
एक लिंक किए गए Future ऑब्जेक्ट को void परिणाम या त्रुटि का अतुल्यकालिक प्रावधान सक्षम बनाता है।
विशेषज्ञता ara::core::Promise< void, E > बिना किसी रिटर्न मान के किसी ऑपरेशन के पूरा होने का संकेत देने या किसी त्रुटि को प्रसारित करने के लिए एक अतुल्यकालिक निर्माता समापन बिंदु (producer endpoint) के रूप में कार्य करती है ([SWS_CORE_06341])। इंस्टेंटिएशन के बाद, उपभोक्ता के लिए संबंधित Future को get_future() के माध्यम से ठीक एक बार पुनः प्राप्त किया जाता है ([SWS_CORE_06344])। प्रावधान set_value(), SetError() या SetResult() द्वारा थ्रेड-सुरक्षित रूप से किया जाता है, जिसके द्वारा साझा स्थिति को तैयार के रूप में चिह्नित किया जाता है। चूंकि वर्ग में शुद्ध मूव सिमेंटिक्स हैं, बार-बार सेट करने या साझा स्थितियों के गायब होने से निर्दिष्ट उल्लंघन होते हैं।
संदर्भ
वर्ग ara::core::Promise< void, E > बिना पेलोड मान (रिटर्न प्रकार void) वाले अतुल्यकालिक प्रक्रियाओं के लिए एक टेम्पलेट विशेषज्ञता का प्रतिनिधित्व करता है। यह एक संचार चैनल के निर्माता पक्ष (Producer) का निर्माण करता है और उपभोक्ता पक्ष (Consumer) के साथ अतुल्यकालिक गणनाओं या परिचालनों को सिंक्रनाइज़ करता है। एक साझा आंतरिक स्थिति (Shared State) के माध्यम से, यह या तो किसी ऑपरेशन के सफल समापन या E प्रकार की त्रुटि की घटना को संकेत देने में सक्षम बनाता है। संबंधित रिसीवर ऑब्जेक्ट ara::core::Future< void, E > के रूप में प्रदान किया जाता है ([SWS_CORE_06344])। AUTOSAR Adaptive Platform की आवश्यकताओं के अनुसार, कार्यान्वयन के लिए आवश्यक है कि त्रुटि प्रकार Eara::core::ErrorCode के साथ संगत हो; कोई भी विचलन संकलन (compilation) के समय त्रुटि का कारण बनता है।
जीवनचक्र
एक इंस्टेंस का निर्माण पैरामीटरहीन मानक कन्स्ट्रक्टर [SWS_CORE_06341] के माध्यम से किया जाता है, जो एक नया साझा राज्य बनाता है और C++ मानक फ़ंक्शन std::promise के समान व्यवहार करता है। वर्ग अनन्य स्वामित्व को मॉडल करता है और सख्त मूव सिमेंटिक्स लागू करता है: कॉपी कन्स्ट्रक्टर ([SWS_CORE_06350]) और कॉपी असाइनमेंट ऑपरेटर ([SWS_CORE_06351]) दोनों हटा दिए गए हैं (delete)।
एक मौजूदा स्थिति को मूव कन्स्ट्रक्टर ([SWS_CORE_06342]) या मूव असाइनमेंट ऑपरेटर ([SWS_CORE_06343]) के माध्यम से अन्य इंस्टेंस में स्थानांतरित किया जा सकता है। मूव असाइनमेंट में, उस समय तक धारित Shared State को छोड़ दिया जाता है और स्थिति को Promise(std::move(other)).swap(*this) की तरह स्थानांतरित कर दिया जाता है ([SWS_CORE_06343])। इसके अलावा, फ़ंक्शन swap ([SWS_CORE_06352]) दो स्थितियों के सीधे आदान-प्रदान की अनुमति देता है।
डिस्ट्रक्टर [SWS_CORE_06349] किसी भी अभी भी धारित Shared State को मुक्त करता है। व्याख्या: अभी तक असंतुष्ट Promise के विनाश के समय Shared State का समय से पहले परित्याग लिंक किए गए Future में एक अनाथ स्थिति (orphaned state) का कारण बनने की संभावना है। प्रश्न Q-e89b32fa3e5994e2 (खुला) समवर्तीता के संबंध में, मानक निर्माण ([SWS_CORE_06341]) और परिणाम सेट करना ([SWS_CORE_06345], [SWS_CORE_06353], [SWS_CORE_06354], [SWS_CORE_06355], [SWS_CORE_06356]) थ्रेड-सुरक्षित हैं। इसके विपरीत, मूव ऑपरेशन, swap, Future को पुनः प्राप्त करना ([SWS_CORE_06344]) और विनाश थ्रेड-सुरक्षित नहीं हैं और साझा पहुँच के मामले में बाहरी समन्वय की आवश्यकता होती है।
उपयोग पथ
ara::core::Promise< void, E > के विशिष्ट उपयोग में एसिंक्रोनस निष्पादन की तैयारी, रिसेप्शन चैनल का स्थानांतरण और बाद में परिणाम रिपोर्टिंग शामिल है:
आरंभीकरण: उत्पादक Promise ऑब्जेक्ट ([SWS_CORE_06341]) को इंस्टैंशिएट करता है।
Future पुनर्प्राप्त करना:get_future() के माध्यम से संबद्ध ara::core::Future< void, E > ठीक एक बार जनरेट किया जाता है ([SWS_CORE_06344]) और उपभोक्ता पक्ष को स्थानांतरित कर दिया जाता है।
परिणाम सेट करना: एसिंक्रोनस ऑपरेशन पूरा होने के बाद, उत्पादक साझा स्थिति (Shared State) को तैयार स्थिति (ready) में सेट करता है:
सफलता के मामले में बिना किसी तर्क (argument) के set_value() को कॉल करके ([SWS_CORE_06345])।
त्रुटि के मामले में SetError के माध्यम से किसी त्रुटि को संग्रहीत करके, या तो Move ([SWS_CORE_06353]) द्वारा या Copy ([SWS_CORE_06354]) द्वारा।
वैकल्पिक रूप से Copy ([SWS_CORE_06355]) या Move ([SWS_CORE_06356]) द्वारा SetResult का उपयोग करके एक पूर्ण Result< void, E > स्थानांतरित करके।
समाधान (Resolution): जैसे ही स्थिति तैयार हो जाती है, उपभोक्ता Future के माध्यम से परिणाम का उपभोग कर सकता है; Promise ऑब्जेक्ट अपने स्कोप के अंत में मुक्त हो जाता है ([SWS_CORE_06349])।
पूर्वापेक्षित शर्तों (preconditions) के उल्लंघन से परिभाषित त्रुटि स्थितियाँ (Violations) उत्पन्न होती हैं:
IsoStdFutureErrcFutureAlreadyRetrievedViolation: तब ट्रिगर होता है जब get_future() को उसी साझा स्थिति के लिए कई बार कॉल किया जाता है ([SWS_CORE_06344])।
IsoStdFutureErrcNoStateViolation: तब घटित होता है जब Promise के पास साझा स्थिति उपलब्ध न होने पर get_future() को कॉल किया जाता है ([SWS_CORE_06344]), उदाहरण के लिए Move ऑपरेशन के बाद ([SWS_CORE_06342])।
अपवाद सुरक्षा (Exception Safety) के संबंध में, मेथड SetError और SetResult सशर्त रूप से अपवाद-सुरक्षित (conditionally exception safe) हैं: वे केवल तभी noexcept की गारंटी देते हैं जब प्रकार E को nothrow-move-constructible या nothrow-copy-constructible के रूप में वर्गीकृत किया गया हो ([SWS_CORE_06353], [SWS_CORE_06354], [SWS_CORE_06355], [SWS_CORE_06356])।
यह क्लास गाइड विनिर्देश AUTOSAR Adaptive Platform R25-11 पर आधारित है और इसे स्वचालित रूप से तैयार किया गया था।
Return an associated Future with the same shared state as *this The returned Future is set as soon as this Promise receives the result, value, or an error. This fuction must only be called once as it is not allowed to have multiple Futures per Promise.
IsoStdFutureEr- If the shared state already has a stored value or error. rcPromiseAl- readySatisfiedVio- lation PromiseNoShared- If *this has no shared state. StateToSetViola- tion
Parameter (in)
Parameter
Beschreibung
error
the error to store
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
IsoStdFutureEr- If the shared state already has a stored value or error. rcPromiseAl- readySatisfiedVio- lation PromiseNoShared- If *this has no shared state. StateToSetViola- tion
Parameter (in)
Parameter
Beschreibung
error
the error to store
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
IsoStdFutureEr- If the shared state already has a stored value or error. rcPromiseAl- readySatisfiedVio- lation PromiseNoShared- If *this has no shared state. StateToSetViola- tion
Parameter (in)
Parameter
Beschreibung
result
the result to store
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
IsoStdFutureEr- If the shared state already has a stored value or error. rcPromiseAl- readySatisfiedVio- lation PromiseNoShared- If *this has no shared state. StateToSetViola- tion
Parameter (in)
Parameter
Beschreibung
result
the result to store
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Return an associated Future with the same shared state as *this The returned Future is set as soon as this Promise receives the result, value, or an error. This fuction must only be called once as it is not allowed to have multiple Futures per Promise.
IsoStdFutureErrc- If the function is called more than once on the same shared FutureAlreadyRe- state. trievedViolation IsoStdFutureErrc- If *this has no shared state. NoStateViolation
IsoStdFutureEr- If the shared state already has a stored value or error. rcPromiseAl- readySatisfiedVio- lation PromiseNoShared- If *this has no shared state. StateToSetViola- tion
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल