تينسورفلو :: خدمة:: مصدر

هذه فئة مجردة.

#include <source.h>

تجريد لوحدة نمطية تقوم بمصادر الخدمات لتحميلها ، أو بشكل أكثر دقة ، تتعامل مع البيانات التي يمكن استخدامها لتحميل تلك الخدمات.

ملخص

أمثلة على معالجات البيانات هذه هي:

  • مسار نظام الملفات لخريطة مفردات متسلسلة
  • مقبض إلى RPC وارد يحدد نموذجًا تم تعلمه آليًا ليتم تحميله
  • ل ودر (انظر loader.h ) ويفترض أن يعالج البيانات عموما إلى أن تكون صغيرة.

A المصدر تراقب بعض الموارد الخارجية (مثل نظام الملفات، والمكالمات RPC) لمعرفة المزيد عن servables جديدة و / أو إصدارات جديدة من servables و / أو الحاجة لتفريغ الإصدارات قابل للعرض. ويستخدم الاستدعاء المقدم للإرشاد وحدة الهدف (على سبيل المثال AspiredVersionsManager ) أي إصدار (ق) من قابل للعرض نظرا لتحميل. وعلاوة على ذلك، اعتمادا على دلالات وحدة الهدف و المصدر ضمنا يرشد ذلك أي منها لتفريغ بحذف تلك servables.

وهناك حالة مشتركة هي أن المصدر تنبعث إصدارات لقابل للعرض واحد بالضبط. أبسط حالة هي أن للخدمة نسخة واحدة ثابتة طوال عمر الخادم.

يمكن أن تحتوي المصادر على حالة مشتركة بين العديد من الخوادم المنبعثة ، على سبيل المثال

  1. تجمع مؤشرات ترابط مشترك أو مورد آخر تستخدمه عدة خوادم.
  2. هيكل بيانات مشترك للقراءة فقط يستخدمه العديد من الخوادم ، لتجنب الوقت والمساحة لتكرار بنية البيانات في كل مثيل قابل للخدمة. يمكن إنشاء الحالة المشتركة التي يكون وقت التهيئة فيها وحجمها ضئيلًا (مثل تجمعات سلاسل الرسائل) بشغف بواسطة المصدر ، والذي يقوم بعد ذلك بتضمين مؤشر لها في كل عنصر ServableData تم إصداره. يجب تأجيل اقامة دولة مشتركة مكلفة أو كبيرة لأول المطبقة محمل :: تحميل () مكالمة، أي تحكمها المدير. متناظر، و محمل :: تفريغ () استدعاء قابل للعرض النهائي باستخدام دولة مشتركة مكلفة / كبير يجب هدمه.

البنائين والمدمرين

~Source ()

الأنواع العامة

AspiredVersionsCallback استخدام
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
A الاستدعاء ل المصدر إلى الإصدار العرض (ق) من قابل للعرض على الهدف، ليتم تحميلها.

الوظائف العامة

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
تزود AspiredVersionsCallback لاستخدامها. يمكن استدعاؤه مرة واحدة على الأكثر.

الأنواع العامة

AspiredVersions الاتصال

std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)> AspiredVersionsCallback

A الاستدعاء ل المصدر إلى الإصدار العرض (ق) من قابل للعرض على الهدف، ليتم تحميلها.

يتعلق استدعاء واحد لرد الاتصال بتدفق واحد قابل للخدمة (يتم توفيره بواسطة 'servable_name'). يجب أن تكون جميع الإصدارات المقدمة في المكالمة للخدمة المحددة في 'servable_name'. الدعوات على تيارات مختلفة قابلة للخدمة متعامدة مع بعضها البعض.

قد تزود الاستدعاءات المتعددة كائنات بيانات قابلة للخدمة بمعرفات متطابقة (أي نفس الاسم والإصدار القابل للخدمة). يتم التعامل مع كائنات البيانات القابلة للخدمة على أنها مكافئة لغويًا. سيحتفظ المستلم في النهاية بواحد ويتجاهل الباقي.

إذا تم توفير إصدار قابل للخدمة V في استدعاء أول ، ثم تم حذفه لاحقًا من الاحتجاج الثاني ، فإن الآثار المترتبة على حذف V تعتمد على دلالات هدف رد الاتصال. ستفسر بعض الأهداف حذف V على أنه تعليمات ضمنية لتفريغ V. يجب على كل هدف توثيق دلالاته في هذا الصدد.

الوظائف العامة

SetAspiredVersionsCallback

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

تزود AspiredVersionsCallback لاستخدامها. يمكن استدعاؤه مرة واحدة على الأكثر.

~ المصدر

virtual  ~Source()=default