template <typename T> class SharedHandle final {...};
Handle to a File Storage or Key-Value Storage. A SharedHandle is returned by the functions OpenFileStorage() and OpenKeyValueStorage() and can be passed between threads as needed. It provides the abstraction that is necessary to allow thread-safe implementation of OpenFile Storage() and OpenKeyValueStorage().
يُمكّن من الوصول الآمن خيطيًا إلى مخازن الملفات ومخازن المفتاح-القيمة عبر حدود الخيوط.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 7420a4e54761المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يُمكّن من الوصول الآمن خيطيًا إلى مخازن الملفات ومخازن المفتاح-القيمة عبر حدود الخيوط.
تُستخدم فئة القالب ara::per::SharedHandle كتجريد مؤشر ذكي لمخازن الملفات ومخازن المفتاح-القيمة لتمكين الوصول الآمن خيطيًا عبر حدود الخيوط. وبعد الحصول عليه عبر دوال المصنع، يجب التحقق من حالة صلاحية المقبض عبر operator bool()[SWS_PER_00398]، لأن استدعاء عوامل تشغيل أخرى على مقبض فارغ أو تم إبطال صلاحيته بواسطة عمليات النقل يؤدي إلى سلوك غير معرّف. وفي حين أن إلغاء إسناد الكائن المغلف آمن خيطيًا، فإن عمليات الإسناد وتدمير المقبض [SWS_PER_00568] على النسخة نفسها تتطلب مزامنة خارجية.
السياق
تمثل فئة القالب ara::per::SharedHandle في الوحدة per (Persistency) التابعة لـ AUTOSAR Adaptive Platform تجريد مؤشر ذكي لموارد التخزين الدائمة. وتُستخدم كنوع إرجاع موحد لدوال المصنع OpenFileStorage() وOpenKeyValueStorage(). وتتمثل المسؤولية الرئيسية للفئة في تنسيق الوصول إلى مخازن الملفات ومخازن المفتاح-القيمة عبر حدود الخيوط وتوفير التغليف المطلوب لتمكين تنفيذ آمن خيطيًا لإجراءات فتح التخزين والوصول إليه. وأطراف التفاعل هي خيوط التنفيذ من جانب التطبيق، وإدارة الاستدامة، بالإضافة إلى مورد التخزين المغلف في كل حالة T.
دورة الحياة
ينشأ SharedHandle عادةً عند فتح نسخة تخزين عبر واجهات المصنع لـ per. ومن خلال منشئ النسخ [SWS_PER_00369] وكذلك عامل إسناد النسخ [SWS_PER_00370]، يمكن مضاعفة المقبض، مما يمنح نُسخ مقابض متعددة وصولاً مشتركًا إلى الكائن الهدف نفسه. وإذا تم نقل مقبض باستخدام منشئ النقل [SWS_PER_00367] أو إسناد النقل [SWS_PER_00368]، فإن المقبض المصدر ينتقل إلى حالة غير صالحة ولا يجوز استخدامه بعد ذلك لعمليات الوصول إلى التخزين.
يحدد عامل التحويل الصريح operator bool()[SWS_PER_00398] الحالة الحالية للمقبض: فهو يُرجع true إذا تمت الإشارة إلى نسخة تخزين صالحة، وfalse إذا كان المقبض فارغًا. ويتم تحرير موارد المقبض عبر المدمر ~SharedHandle()[SWS_PER_00568]. تفسير: من المرجح أن يتم تحرير مورد التخزين الأساسي بمجرد تدمير آخر SharedHandle يشير إليه. سؤال Q-00a1798cf43e0ee6 (مفتوح)
تحدث حالات الخطأ الحرجة بشكل أساسي عند إجراء عمليات غير مسموح بها على مقابض فارغة أو ملغاة الصلاحية. ووفقاً لـ [SWS_PER_00398]، فإن استدعاء أي معاملات بخلاف operator bool() على مقبض فارغ يؤدي مباشرة إلى سلوك غير محدد (Undefined Behavior). وينطبق هذا بشكل خاص على مقابض المصدر بعد إجراء إنشاء بالنقل [SWS_PER_00367] أو تعيين بالنقل [SWS_PER_00368]، حيث يتم إلغاء صلاحيتها ويحظر الاستمرار في استخدامها.
Move constructor for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Move assignment operator for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Handle state. True if the handle represents a valid object of the templated class, False if the handle is empty (e.g. after a move operation). Using other operators than bool() of an empty handle will result in undefined behavior.
Move constructor for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Move assignment operator for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Handle state. True if the handle represents a valid object of the templated class, False if the handle is empty (e.g. after a move operation). Using other operators than bool() of an empty handle will result in undefined behavior.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني