Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
[AP_SWS_SHWA_00401] لم يُستورد النص بعدUpstream: RS_SHWA_00006
class DeviceSelector {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
يُستخدم كواجهة مجردة لتقييم الأجهزة واختيارها استنادًا إلى استراتيجية اختيار محددة.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4c64c523c424المصدرأسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يُستخدم كواجهة مجردة لتقييم الأجهزة واختيارها استنادًا إلى استراتيجية اختيار محددة.
يعرّف الصنف المجرد ara::shwa::DeviceSelector واجهة استراتيجية لتقييم الأجهزة الهدف واختيارها في النظام الفرعي shwa. ويتيح عبر SelectDevice() التحديد المباشر لجهاز مثالي، وعبر operator() التقييم المقارن لمرشحي الأجهزة المنفردين [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00404]. ويضمن المدمر الافتراضي القياسي تدميرًا آمنًا لكائنات الاستراتيجية المشتقة. وتشمل الشروط الحدية الأساسية أن الاستدعاءات ليست آمنة خيطيًا، وأنه لا تنطبق دلالات تراجع تلقائي عند الإخفاق.
السياق
يوفّر الصنف ara::shwa::DeviceSelector في الوحدة shwa واجهة مجردة لاختيار أجهزة العتاد أو الأجهزة الوظيفية (Device) أو تقييمها استنادًا إلى استراتيجية اختيار محددة. ويعمل كطبقة فصل بين تطبيق تحكم أعلى مستوى وإجراءات الاختيار الفعلية. وتشمل أطراف التفاعل المشاركة كلاً من التطبيق المستدعي، والتنفيذ الفعلي لاستراتيجية الاختيار، بالإضافة إلى الكائنات الهدف من النوع Device. وتعرّف الواجهة عمليتين رئيسيتين: الاختيار المباشر لجهاز عبر SelectDevice()[AP_SWS_SHWA_00403]، والتقييم الفردي المقارن لجهاز عبر عامل استدعاء الدالة operator()[AP_SWS_SHWA_00404].
بصفته صنفًا أساسيًا مجردًا ذا دوال افتراضية بحتة، لا يمكن إنشاء كائنات من DeviceSelector مباشرة. ويُرجَّح تنفيذ استراتيجيات اختيار فعلية كأصناف مشتقة وإنشاؤها بواسطة مكون التطبيق. سؤال Q-4e22b2e57ef141e9 (مفتوح) وتقع إدارة علاقات الملكية عادةً على عاتق التطبيق، على سبيل المثال عبر مؤشرات ذكية مثل std::unique_ptr<DeviceSelector>. ولإجراء تدمير متعدد الأشكال نظيف للأصناف المتخصصة، تعلن الواجهة عن مدمر افتراضي قياسي ~DeviceSelector()[AP_SWS_SHWA_00402]. أُعلن عن هذا المدمر صراحة كـ noexcept، وبذلك يلبي متطلبات أمان الاستثناءات (exception safe) عند تفكيك الكائنات [AP_SWS_SHWA_00402].
فيما يتعلق بالتزامن وانتقالات الحالة، صُنفت عمليات الواجهة على أنها غير آمنة خيطيًا (not thread-safe) [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00404]. ورغم أن دوال الأعضاء مزودة بتعليق توضيحي const، إلا أنه لا يجوز إجراء وصول متزامن إلى نفس النسخة من خيوط مختلفة دون مزامنة خارجية. علاوة على ذلك، لا تنص المواصفة على تراجع تلقائي للاستدعاءات الخاطئة (no_rollback_semantics) [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00404].
مسار الاستخدام
يتضمن مسار الاستخدام النموذجي تهيئة كائن استراتيجية فعلي يليه تقييم مرشحي الأجهزة أو اختيارهم. وتوجد هنا مسارا استدعاء أساسيان:
الاختيار المباشر للجهاز: يستدعي التطبيق الدالة غير المحددة بمعاملات SelectDevice()[AP_SWS_SHWA_00403]. تحدد الاستراتيجية الفعلية بشكل ذاتي الجهاز الأكثر ملاءمة وتُرجع ara::core::Result<Device>.
التقييم الفردي التكراري: في خوارزميات تصفية عدة مرشحين أو فرزهم، يمرر التطبيق النسخ المعنية تباعًا إلى operator()(const Device &device)[AP_SWS_SHWA_00404]. يُرجَّح أن يحلل التقييم عبر operator() داخليًا الخصائص ذات الصلة أو حالات التشغيل للجهاز المُمرَّر. سؤال Q-8ba0b9b900196d50 (مفتوح) ويُرجَّح أن تعكس قيمة int المُرجعة في ara::core::Result<int> مؤشر ملاءمة أو أولوية تتخذ جهة الاستدعاء بناءً عليه قرار الاختيار.
أُعلن عن كلتا دالتي الاختيار كـ noexcept ولا ترميان أي استثناءات ++C (exception safe). وعوضًا عن ذلك، تشيران إلى الإخفاقات عبر قناة الأخطاء الخاصة بـ ara::core::Result. يجب على التطبيقات دائمًا فحص القيمة المُرجعة بحثًا عن أخطاء قبل الوصول إلى النتيجة. وحالات الخطأ التالية محددة لـ SelectDevice() وoperator():
ShwaErrorCode::kResourceBusy: تعذر تنفيذ العملية المطلوبة لأن المورد المطلوب مشغول حاليًا [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00404]. وفي هذه الحالة، يمكن للتطبيق تكرار الاستدعاء في وقت لاحق أو اختيار استراتيجية بديلة.
ShwaErrorCode::kFeatureNotSupported: تُرجع إذا كانت الوظيفة المطلوبة للاختيار أو التقييم غير مدعومة من قِبل التنفيذ الأساسي [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00404].
نظرًا لعدم وجود دلالات تراجع (no_rollback_semantics) [AP_SWS_SHWA_00403]، [AP_SWS_SHWA_00404]، يظل النظام في حالة الخطأ ضمن الحالة الحالية، وتكون جهة الاستدعاء مسؤولة عن تدابير التعويض المناسبة. وشرط مسبق لـ operator() ينص أيضًا على وجوب بقاء مرجع الجهاز المُمرَّر صالحًا طوال مدة الاستدعاء بالكامل.
يستند دليل الصنف هذا إلى مواصفة AUTOSAR Adaptive R25-11 (الوحدة shwa) وتم تنقيحه آليًا.
Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.
Scope
class ara::shwa::DeviceSelector
Thread Safety
not thread-safe no_rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy no_rollback_semantics
Exception Safety
exception safe
Errors
ShwaErrorCode::k FeatureNotSupported Used when a requested feature isn’t supported
Request a governed re-review of this record. The record is not changed immediately.
virtual ara::core::Result< int > operator() (const Device &device) const noexcept=0;
Bewertet beziehungsweise selektiert ein Device entsprechend der Selektor-Strategie.
Scope
class ara::shwa::DeviceSelector
Thread Safety
not thread-safe no_rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy no_rollback_semantics
Exception Safety
exception safe
Errors
ShwaErrorCode::k FeatureNotSupported Used when a requested feature isn’t supported
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني