Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-safe context. The execute(...) method in [SWS_CORE_00024] returns a ara::core::Future object to the caller for further result/error extraction or management of the asynchronous-context; the execute_oneway(...) method in [SWS_CORE_00025] imply fire-and-forget semantics and thus no asynchronous-context (ara::core::Future) is returned.
Literaturverzeichnis SWS Core: [4] ISO/IEC 14882:2014, Information technology – Programming languages – C++ – www.iso.org
يتيح التنفيذ غير المتزامن والآمن خيطيًا للكائنات القابلة للاستدعاء مع إرجاع اختياري عبر الوعود المستقبلية (Futures).
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 690890643de1المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يتيح التنفيذ غير المتزامن والآمن خيطيًا للكائنات القابلة للاستدعاء مع إرجاع اختياري عبر الوعود المستقبلية (Futures).
تُوفّر الفئة ara::core::Executor واجهة للتنفيذ غير المتزامن للكائنات القابلة للاستدعاء في سياق مضمون الأمان خيطيًا. يتم إطلاق المهام إما بشكل موجه نحو النتائج عبر execute[SWS_CORE_00024] مع إرجاع ara::core::Future للقيم أو رموز الأخطاء، أو تسليمها بشكل مستقل عن الحالة عبر oneway_execute[SWS_CORE_00025] بنمط «أرسل وانسَ» (Fire-and-Forget). وكشرط حدي أساسي، تجدر الإشارة إلى أن execute نفسها ليست آمنة خيطيًا، ويجب مزامنة الاستدعاءات المتوازية على نفس المثيل خارجيًا، بينما يتم تنفيذ الكائن القابل للاستدعاء في الخلفية بأمان خيطي.
السياق
تُوفّر الفئة ara::core::Executor واجهة لسياق تنفيذ يقوم بتشغيل الوحدات القابلة للاستدعاء (Callables) بشكل غير متزامن في بيئة مضمونة وآمنة خيطيًا. وهي بمثابة طبقة تجريد بين الخيط المُستدعي والمعالجة غير المتزامنة في الخلفية. وتتوفر آليتان لتسليم المهام: تُسلّم الدالة execute[SWS_CORE_00024] مهمة موجهة نحو النتائج وتُرجع كائن ara::core::Future، يمكن من خلاله مزامنة القيمة المُرجعة لاحقًا أو رمز الخطأ والاستعلام عنهما. وبالنسبة للإشعارات البحتة أو عمليات الخلفية المستقلة عن الحالة، تُوفّر الفئة الدالة oneway_execute[SWS_CORE_00025]، والتي تتبع دلالات «أرسل وانسَ» (Fire-and-Forget) ولا تُرجع أي سياق غير متزامن للمُستدعي. ومن المحتمل أن يغلّف التنفيذ الملموس في الخلفية إدارة للخيوط أو قائمة انتظار للمهام لتنسيق المعالجة المتزامنة. سؤال Q-068fe33f2900d6cf (مفتوح)
دورة الحياة
يخضع إنشاء مثيل ara::core::Executor وفترة بقائه لقواعد متمايزة فيما يتعلق بالأمان من الاستثناءات والأمان الخيطي:
النسخ: تم تحديد منشئ النسخ [SWS_CORE_00009] ومُعامل تعيين النسخ [SWS_CORE_00017] بأنهما آمنان خيطيًا، إلا أنهما لم يُصنّفا كآمنين من الاستثناءات (not exception safe). وبالتالي، قد تفشل عملية النسخ إذا تعذر تخصيص الموارد اللازمة.
النقل: تم إعلان منشئ النقل [SWS_CORE_00015] وتعيين النقل [SWS_CORE_00018] كـ noexcept وبالتالي فهما آمنان من الاستثناءات. ومع ذلك، فإن عمليات النقل ليست آمنة خيطيًا (not thread-safe)، ولهذا السبب يجب على المُستدعي مزامنة عمليات الوصول المتزامنة أثناء النقل.
الإتلاف: تم تنفيذ الهادم [SWS_CORE_00019] كـ noexcept وبشكل آمن خيطيًا، مما يتيح إنهاء دورة حياة المثيل بأمان.
فيما يتعلق بالتزامن أثناء التشغيل، يظهر انقسام جوهري: في حين أن oneway_execute[SWS_CORE_00025] آمن خيطيًا، تم تصنيف execute[SWS_CORE_00024] كغير آمن خيطيًا. ويُرجّح أن عدم توفر الأمان الخيطي في execute يعود إلى الإنشاء والإدارة الداخليين لكائن الحالة الأساسي للـ Future الناتج، ولهذا يجب مزامنة الاستدعاءات المتزامنة لـ execute على نفس المثيل خارجيًا. سؤال Q-4425e6b07758230e (مفتوح)
مسار الاستخدام
ينقسم استخدام ara::core::Executor إلى مسارين رئيسيين، اعتمادًا على ما إذا كانت هناك حاجة إلى قيمة مُرجعة أم لا:
المسار الموجه نحو النتائج (execute): يمرر المُستدعي كائنًا قابلاً للاستدعاء f بالإضافة إلى معاملات اختيارية p... إلى execute[SWS_CORE_00024]. وتُرجع الدالة مباشرة ara::core::Future، ويستند نوع نتيجته إلى نوع الإرجاع المُستنتج للاستدعاء. يتم تنفيذ الكائن القابل للاستدعاء بشكل غير متزامن في السياق المضمون. وبمجرد اكتمال المعالجة، يمكن للمُستدعي استخراج قيمة النتيجة أو رمز خطأ محتمل من الـ Future.
المسار أحادي الاتجاه (oneway_execute): إذا كان المُستدعي لا يحتاج إلى إفادة أو مزامنة، يتم استدعاء oneway_execute[SWS_CORE_00025]. ويتم تنفيذ الكائن القابل للاستدعاء أيضًا بشكل غير متزامن، إلا أنه لا توجد قيمة مُرجعة (void).
مخطط تسلسلي: معالجة المهام غير المتزامنة عبر execute والاستعلام عن النتائج عبر Future. المصادر: [SWS_CORE_00024]
سيناريوهات الأخطاء
دوال الاستدعاء execute[SWS_CORE_00024] وoneway_execute[SWS_CORE_00025] لا تطرح استثناءات C++؛ وكلاهما محدد صراحةً كـ noexcept. وبالمثل، لا تحدد المواصفة لـ execute أي رموز خطأ قياسية لاستدعاء التسليم نفسه [SWS_CORE_00024].
ومع ذلك، إذا حدث خطأ أثناء المعالجة غير المتزامنة للكائن القابل للاستدعاء، فإنه يُنشر عبر ara::core::Future المُرجع من execute: في حالة الخطأ، يغلّف الـ Future رمز خطأ، بينما يُتاح في حالة النجاح النوع ara::core::Result::value_type مع نتيجة الدالة [SWS_CORE_00024]. وفي حالة oneway_execute[SWS_CORE_00025]، لا توجد إمكانية بحكم التصميم لإرجاع الخطأ إلى المُستدعي؛ وتظل الأخطاء في السياق غير المتزامن.
تم إعداد هذا الدليل وتنسيقه بواسطة ذكاء اصطناعي ويستند حصريًا إلى مواصفة AUTOSAR Adaptive R25-11.
Asynchronously invoke F with the provided arguments P....
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 9d31d266cefdالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة execute للفئة ara::core::Executor لتنفيذ كائن دالة مُمرَّر f بشكل غير متزامن مع الوسائط p... ([SWS_CORE_00024]). وكقيمة إرجاع، فإنها تقدّم ara::core::Future، والذي يغلّف نتيجة الاستدعاء في حالة النجاح أو يوفّر رمز الخطأ المقابل في حالة حدوث خطأ ([SWS_CORE_00024]). تم إعلان الدالة نفسها باستخدام المحدد noexcept.
لم يتم تحديد رموز أخطاء قياسية لاستدعاء الدالة ([SWS_CORE_00024]). وفيما يتعلق بالتزامن، على الرغم من تصنيف execute على أنه exception safe، إلا أنه يُعتبر صراحةً not thread-safe ([SWS_CORE_00024]). ولذلك، يُرجّح أن تتطلب عمليات الوصول المتوازية إلى نفس النسخة من ara::core::Executor مزامنة على مستوى المستخدم. سؤال Q-6b839826a7d9742f (مفتوح)
يتجلى التفاعل مع تدفقات التحكم غير المتزامنة بشكل خاص في التسلسلات عبر then ([SWS_CORE_00337]، [SWS_CORE_06237]). هناك يتم تمرير سياق منفّذ، حيث تُنفّذ دوال المتابعة اللاحقة في سياقه مع ara::core::Result الذي تم الحصول عليه.
تم إنشاء هذا النص تلقائيًا. وتستند جميع المعلومات الفنية إلى مواصفة AUTOSAR Adaptive R25-11.
ara::core::Future<std::invoke_result_t<std::decay_t< F >, std::decay_t< P >... > >
• If successful: an ara::core::Future containing a ara:: core::Result::value_type containing the result of the callable F • If unsuccessful: an ara::core::Future containing an Error Code
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Request a governed re-review of this record. The record is not changed immediately.
Asynchronously invoke F with the provided arguments P....
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 1e96ad32e48dالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام والدلالات
تُستخدم دالة القالب oneway_execute للفئة ara::core::Executor للتنفيذ غير المتزامن لوحدة قابلة للاستدعاء f (Callable) مع الوسائط الممررة p...[SWS_CORE_00025]. نظرًا لأن الدالة لا تُرجع أي قيمة (نوع الإرجاع void) ويتم التنفيذ بشكل غير متزامن، فإن الاستدعاء يعود فورًا إلى المستدعي دون انتظار انتهاء التنفيذ أو الحصول على نتيجة [SWS_CORE_00025].
معالجة الأخطاء والأمان من حيث الاستثناءات
تم التصريح عن الدالة كـ noexcept وحُددت بأنها آمنة من الاستثناءات (exception safe) [SWS_CORE_00025]. وبالتالي، من المفترض أنه يجب التقاط ومعالجة الأخطاء أو الاستثناءات المحتملة داخل الوحدة القابلة للاستدعاء الممررة داخليًا في الوحدة نفسها، حيث لا يمكن تمرير أي إشعار خطأ أو استثناء إلى السياق المستدعي. سؤال Q-c8d31cfa9c2e3ab9 (مفتوح)
التزامن والقيود
وفقًا للمواصفة، تم تصنيف oneway_execute على أنها آمنة لمؤشرات الترابط (thread-safe) [SWS_CORE_00025]. وبالتالي، يمكن استدعاء الدالة بشكل متزامن من مؤشرات ترابط مختلفة على نفس النسخة من ara::core::Executor. ويتم التضمين عبر ملف الترويسة #include "ara/core/executor.h"[SWS_CORE_00025].
تم إنشاء ملاحظة الاستخدام هذه آليًا بناءً على AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني