कनेक्शन स्वीकार करता है और मॉडल किए गए पोर्ट्स के लिए बाइनरी डेटा स्ट्रीम के ट्रांसमिशन और प्राप्ति को सक्षम बनाता है।
संदर्भ
क्लास ara::rds::RawDataStreamServer AUTOSAR Adaptive Platform (मॉड्यूल rds) में स्ट्रीम-उन्मुख डेटा ट्रांसमिशन के लिए सर्वर-साइड समकक्ष का प्रतिनिधित्व करती है SWS RawDataStream पृ. 1। इसका मुख्य कार्य एक मॉडल किए गए संचार पोर्ट पर आने वाले क्लाइंट कनेक्शन को स्वीकार करना और बाइनरी डेटा स्ट्रीम के माध्यम से असंरचित रॉ डेटा के बाद के द्विदिशीय आदान-प्रदान को संभालना है।
केंद्रीय इंटरैक्शन भागीदारों में शामिल हैं:
- उच्च-स्तरीय सर्वर एप्लिकेशन, जो इंस्टेंस बनाता है, कनेक्शन की प्रतीक्षा करता है और डेटा ट्रांसमिशन शुरू करता है,
- AUTOSAR रनटाइम सिस्टम, जिससे सर्वर एक मॉडल किए गए पोर्ट के लिए
ara::core::InstanceSpecifier के माध्यम से बाध्य (bound) होता है [SWS_RDS_11312],
- बाहरी क्लाइंट, जो सर्वर से कनेक्शन स्थापित करता है [SWS_RDS_11318] और पेलोड डेटा का आदान-प्रदान करता है [SWS_RDS_11322], [SWS_RDS_11324]।
जीवनचक्र
RawDataStreamServer का इंस्टैंशिएशन सामान्य कंस्ट्रक्टर्स के माध्यम से नहीं, बल्कि विशेष रूप से स्थिर फ़ैक्टरी मेथड Create [SWS_RDS_11312] के माध्यम से होता है। यह सर्वर को ara::core::InstanceSpecifier द्वारा निर्दिष्ट पोर्ट से बाँधता है।
स्वामित्व के संबंध में, क्लास सख्त केवल-मूव (move-only) सेमांटिक्स लागू करती है। कॉपी कंस्ट्रक्टर [SWS_RDS_11316] और कॉपी असाइनमेंट ऑपरेटर [SWS_RDS_11317] स्पष्ट रूप से हटा दिए गए हैं (delete)। इसलिए अन्य स्कोप में संसाधनों का स्थानांतरण केवल मूव कंस्ट्रक्टर [SWS_RDS_11314] या मूव असाइनमेंट ऑपरेटर [SWS_RDS_11315] के माध्यम से ही संभव है।
Interpretation: सफल निर्माण के बाद, सर्वर इंस्टेंस तत्परता की एक प्रारंभिक स्थिति में होता है, जिसमें अभी तक कोई सक्रिय कनेक्शन मौजूद नहीं होता है। प्रश्न Q-5d536f7c10a62342 (खुला) WaitForConnection [SWS_RDS_11318] या समय-निगरानी वाले वेरिएंट WaitForConnection(timeout) [SWS_RDS_11319] के माध्यम से सर्वर क्लाइंट की प्रतीक्षा करता है और सफल होने पर सक्रिय कनेक्शन की स्थिति में बदल जाता है। रनटाइम पर Shutdown को कॉल करके कनेक्शन को विशेष रूप से बंद किया जा सकता है [SWS_RDS_11320]।
सर्वर इंस्टेंस को नष्ट करते समय, डिस्ट्रक्टर ~RawDataStreamServer यह सुनिश्चित करता है कि अभी भी खुला हुआ कनेक्शन स्वचालित रूप से ठीक से शट डाउन और बंद हो जाए [SWS_RDS_11313]।
समवर्ती (concurrency) के संबंध में, निर्माण मेथड Create को थ्रेड-सुरक्षित निर्दिष्ट किया गया है [SWS_RDS_11312]। इसके विपरीत, स्थानांतरण संचालन (move operations) [SWS_RDS_11314], [SWS_RDS_11315] और डिस्ट्रक्टर [SWS_RDS_11313] को स्पष्ट रूप से गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में नामित किया गया है और एकाधिक थ्रेड्स से समवर्ती पहुँच के मामले में बाहरी सिंक्रोनाइज़ेशन सुरक्षा की आवश्यकता होती है।
स्थिति आरेख: निर्माण से लेकर कनेक्शन स्वीकृति और कनेक्शन समाप्ति तक एक सर्वर इंस्टेंस के चरण। स्रोत: [SWS_RDS_11312], [SWS_RDS_11318], [SWS_RDS_11320], [SWS_RDS_11313]
उपयोग पथ
किसी सर्वर एप्लिकेशन के विशिष्ट उपयोग पथ में आरंभीकरण, कनेक्शन की प्रतीक्षा, द्विदिशीय डेटा ट्रांसफ़र और कनेक्शन समाप्ति के चरण शामिल हैं:
- सर्वर बनाएँ: एप्लिकेशन कॉन्फ़िगर किए गए पोर्ट के लिए
ara::rds::RawDataStreamServer::Create(instance) के माध्यम से सर्वर को इंस्टैंशिएट करता है [SWS_RDS_11312]।
- कनेक्शन की प्रतीक्षा करें: एप्लिकेशन तब तक
WaitForConnection() [SWS_RDS_11318] का उपयोग करके या WaitForConnection(timeout) [SWS_RDS_11319] के माध्यम से कॉन्फ़िगर की गई अधिकतम अवधि के साथ ब्लॉक रहता है, जब तक कि कोई क्लाइंट कनेक्शन स्थापित नहीं कर लेता।
- डेटा प्राप्त करें और भेजें: सफल कनेक्शन के बाद, एप्लिकेशन
ReadData(maxLength) [SWS_RDS_11322] का उपयोग करके या ReadData(maxLength, timeout) [SWS_RDS_11323] के माध्यम से समय-निगरानी के साथ बाइनरी डेटा पढ़ता है। बाइनरी डेटा भेजने के लिए, WriteData को कॉल किया जाता है, वैकल्पिक रूप से बिना प्रतीक्षा समय सीमा [SWS_RDS_11324] के या समय-निगरानी [SWS_RDS_11325] के साथ। WriteData के माध्यम से भेजना संभवतः प्रदान किए गए बाइट बफ़र (std::unique_ptr<ara::core::Byte[]>) का स्वामित्व सर्वर को स्थानांतरित करता है। प्रश्न Q-eec0fea4a5ffaf40 (खुला)
- कनेक्शन डिस्कनेक्ट करें: डेटा ट्रांसमिशन पूरा होने पर, एप्लिकेशन सत्र को
Shutdown() [SWS_RDS_11320] के माध्यम से स्पष्ट रूप से समाप्त करता है।
अनुक्रम आरेख: निर्माण, कनेक्शन स्वीकृति, डेटा विनिमय और कनेक्शन बंद करने का क्रम। स्रोत: [SWS_RDS_11312], [SWS_RDS_11318], [SWS_RDS_11322], [SWS_RDS_11324], [SWS_RDS_11320]
त्रुटि परिदृश्य
RawDataStreamServer का त्रुटि प्रबंधन त्रुटि-सुरक्षित इंटरफ़ेस के लिए AUTOSAR Adaptive Platform के सिद्धांतों का पालन करता है:
कोई भी मेथड C++ अपवाद नहीं फेंकता है; सभी फ़ंक्शंस को noexcept के रूप में घोषित किया गया है SWS RawDataStream पृ. 1। त्रुटि स्थितियों को इसके बजाय रिटर्न प्रकार ara::core::Result के माध्यम से कॉलर को सूचित किया जाता है।
विशिष्ट त्रुटि परिदृश्यों में शामिल हैं:
- समय समाप्ति (Timeouts): टाइमआउट वाले मेथड्स
WaitForConnection [SWS_RDS_11319], ReadData [SWS_RDS_11323] और WriteData [SWS_RDS_11325] में, निर्दिष्ट समयावधि समाप्त होने से लौटाए गए ara::core::Result में एक त्रुटि स्थिति उत्पन्न होती है।
- कनेक्शन त्रुटियाँ और अमान्य स्थितियाँ: विधियाँ
ReadData, WriteData और WaitForConnection त्रुटि की स्थिति में (जैसे समय से पहले कटे कनेक्शन या आंतरिक संचार त्रुटियों के मामले में) ara::core::Result में संगत त्रुटि कोड लौटा सकती हैं। प्रश्न Q-0c6815ddde412d81 (खुला)
- पूर्व- और पश्च-शर्तें: ऑपरेशन की त्रुटि-रहित स्थिति सुनिश्चित करने के लिए कॉलर को डेटा मानों तक पहुँचने से पहले लौटाए गए
ara::core::Result की वैधता की हमेशा जाँच करनी चाहिए।
यह मार्गदर्शिका AUTOSAR Adaptive R25-11 विनिर्देश पर आधारित है और स्वचालित रूप से बनाई गई थी।
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल