The class TimeBase is a pseudo-clock. The class TimeBase is a pseudo-clock that is used as the first template argument to std::chrono::time_point to indicate that the time point represents local time with respect of a not-yet-specified timeBaseResource.
تعمل كساعة وهمية (Pseudo-Clock) لـ std::chrono::time_point لتمثيل نقاط زمنية محلية لمورد قاعدة زمنية.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f515350f98f7المصدرأسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تعمل كساعة وهمية (Pseudo-Clock) لـ std::chrono::time_point لتمثيل نقاط زمنية محلية لمورد قاعدة زمنية.
تعمل الفئة ara::tsync::TimeBase كساعة وهمية في نظام مكتبة C++ القياسية وتُستخدم كمعامل قالب ساعة لـ std::chrono::time_point لتمثيل الأوقات المحلية بالنسبة إلى مورد قاعدة زمنية [SWS_TS_01264]. ومن أجل استيفاء متطلبات الساعة، توفر أسماء بديلة موحدة للأنواع (Type Aliases) بدقة النانو ثانية والمدة. وكشرط حدي أساسي، تم تحديد الساعة عبر is_steady = false على أنها غير رتيبة (non-steady)، مما يتيح مراعاة القفزات الزمنية الناتجة عن عمليات المزامنة [SWS_TS_01265].
السياق
تتولى الفئة أو البنية ara::tsync::TimeBase في الوحدة tsync من AUTOSAR Adaptive Platform دور ساعة وهمية (Pseudo-Clock). وتُستخدم على مستوى C++ بصفة أساسية كمعامل قالب أول لـ std::chrono::time_point، لتحديد دلالي بأن طابع الوقت يمثل الوقت المحلي بالنسبة إلى مورد قاعدة زمنية لم يتم تحديده بدقة بعد (timeBaseResource) [SWS_TS_01264]. وبدلاً من أن تعمل بنفسها كمصدر وقت نشط يتيح استعلاماً زمنياً ثابتاً، تعمل TimeBase كحلقة وصل شكلية ضمن المكتبة القياسية std::chrono.
من خلال توفير تعريفات الأنواع الموحدة، تربط TimeBase الآليات العامة لقياس الوقت في C++ بوحدة المزامنة. وتستخدم الكيانات المستهلكة والمكونات التي تتعامل مع نقاط زمنية أو فترات زمنية أنواع الأسماء البديلة للبنية من أجل تبادل طوابع زمنية محددة النوع. وبهذه الطريقة يُضمن تعيين قيم الوقت عبر std::chrono::time_point بصورة لا لبس فيها لقاعدة زمنية محلية، وعدم خلطها عن طريق الخطأ بساعات النظام المطلقة أو بمصادر وقت مغايرة.
مخطط سياقي: تضمين TimeBase كساعة وهمية في نظام أنواع C++-Chrono لربط النقاط الزمنية بمورد قاعدة زمنية. المصادر: [SWS_TS_01263]، [SWS_TS_01264]
دورة الحياة
بصفتها بنية بيانات وأنواع صرفة (تم التصريح عنها كـ struct TimeBase في ملف الترويسة ara/tsync/timestamp.h)، لا تمتلك ara::tsync::TimeBase مراحل دورة حياة ديناميكية بمفهوم مكون وقت التشغيل المهيأ أو المشغل. ولا يُعد إنشاء كائنات من هذه البنية أمراً ضرورياً للوظيفة المخصصة لها؛ فهي موجودة أساساً على مستوى نظام أنواع C++ في وقت التصريف (Compile-Time).
لاستيفاء المتطلبات الشكلية لساعة C++ (متطلبات C++ Clock Requirements)، تُعرّف TimeBase جميع الأسماء البديلة للأنواع والثوابت المطلوبة. ويتضمن ذلك نوع العداد الأساسي rep كـ std::int64_t لتمثيل عدد دقات الوقت (Time Ticks) [SWS_TS_01261]، وفترة دقة الوقت period كـ std::nano[SWS_TS_01262]، وهو ما يقابل دقة في نطاق النانو ثانية. ويتم توفير المدة المخصصة لقياس الوقت المنقضي منذ حقبة زمنية (Epoch) عبر الاسم البديل للنوع duration كـ std::chrono::duration<rep, period>[SWS_TS_01263].
فيما يتعلق بالتزامن والسلوك في النظام أثناء التشغيل، تصرّح البنية عن الثابت الاستاتيكي is_steady بالقيمة المنطقية (Boolean) false[SWS_TS_01265]. ويشير ذلك لإطار عمل C++-Chrono إلى أن الساعة الأساسية غير رتيبة (غير steady). تفسير: من المرجح أن يعود ذلك إلى أن عمليات مزامنة الوقت في الوحدة tsync قد تُحدث تعديلات أو قفزات في القاعدة الزمنية المحلية، ولهذا لا تضمن القياسات المتتالية رتابة صارمة. سؤال Q-93a56c0eb2d35c7b (مفتوح) ونظراً لأن البنية ذاتها لا تغلف أي حالة قابلة للتعديل، فإن كافة استخدامات الأنواع والوصول إلى الثوابت تُعد بطبيعتها آمنة تزامنيّاً.
مسار الاستخدام
يكمن مسار الاستخدام النموذجي لـ ara::tsync::TimeBase في التصريح عن قيم الوقت ومعالجتها وتمريرها داخل التطبيقات المتزامنة. ولا يقوم المطورون والمكونات البرمجية التكيفية بإنشاء نسخة من الساعة ذاتها، بل يصلون إلى الاسم البديل للنوع المركزي time_point، المعرّف كـ std::chrono::time_point<TimeBase>[SWS_TS_01264].
تعريف النوع ومواصفة الواجهة: يضمن التطبيق ترويسة ara/tsync/timestamp.h ويستخدم ara::tsync::TimeBase::time_point[SWS_TS_01264] للتصريح عن تواقيع لطوابع الوقت. تفسير: يضمن ذلك بقاء النقاط الزمنية مقترنة دلاليّاً بالقاعدة الزمنية المحلية المحددة. سؤال Q-549e2d377c0a6845 (مفتوح)
الحساب وإيجاد الفروق: إذا طُرحت نقطتان زمنيتان من بعضهما البعض، ينتج عن التعبير تلقائياً النوع ara::tsync::TimeBase::duration[SWS_TS_01263]. ويعتمد هذا على خطوات بالنانو ثانية (period) [SWS_TS_01262] وأعداد صحيحة 64 بت (rep) [SWS_TS_01261]، مما يتيح حسابات مدد متوافقة مع المعايير وتحويلات إلى وحدات زمنية أخرى.
قابلية التشغيل البيني مع الخوارزميات القياسية: بفضل الاستيفاء الكامل لمتطلبات أنواع الساعة (Clock Types)، يمكن تمرير النقاط الزمنية والفترات الزمنية بسلاسة إلى دوال المكتبة القياسية لـ std::chrono، دون الحاجة إلى استخدام بنى وقت خاصة (Proprietary).
تفسير: نظراً لأن TimeBase مصممة كساعة وهمية، فإنها لا توفر بنفسها دالة عضو ثابتة now()؛ ومن المرجح أن يتم التحديد الفعلي لقيمة الوقت لمثل هذا time_point[SWS_TS_01264] عبر خدمات أو واجهات أخرى للوحدة tsync، والمرتبطة بـ timeBaseResource المشار إليها. سؤال Q-2a528a99023dad41 (مفتوح)
يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive Platform R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني