جریان تنسور:: خدمت:: منبع

این یک کلاس انتزاعی است.

#include <source.h>

یک انتزاع برای یک ماژول که منابع قابل ارائه را برای بارگذاری یا به طور دقیق تر، به داده هایی می پردازد که می توانند برای بارگذاری آن سرویس پذیرها استفاده شوند.

خلاصه

نمونه هایی از این دسته داده ها عبارتند از:

  • یک مسیر سیستم فایل به یک نقشه واژگان سریالی
  • یک دسته برای یک RPC ورودی که یک مدل یادگیری ماشینی را برای بارگذاری مشخص می کند
  • لودر (نگاه کنید به loader.h ) دستگیره اطلاعات بطور کلی تصور می شود کوچک است.

منبع مانیتور برخی از منابع خارجی (به عنوان مثال سیستم فایل، تماس RPC) برای پیدا کردن در مورد servables جدید و / یا نسخه های جدید از servables و / یا نیاز به خالی کردن نسخه های servable. آن استفاده می کند پاسخ به تماس ارائه شده به دستور یک ماژول هدف (به عنوان مثال AspiredVersionsManager ) که نسخه (بازدید کنندگان) یک servable داده شده به بار. علاوه بر این، بسته به معناشناسی ماژول هدف، منبع به طور ضمنی آن را دستور آنهایی که به خالی کردن و حذف آن servables.

مورد شایع است که منبع ساطع می کند نسخه برای دقیقا یک servable. یک مورد ساده‌تر این است که یک سرویس‌پذیر یک نسخه واحد و ثابت برای طول عمر سرور دارد.

منابع می توانند حالتی را در خود جای دهند که بین چندین سرویس منتشر شده به اشتراک گذاشته شده است، به عنوان مثال

  1. یک مخزن رشته مشترک یا منابع دیگری که چندین سرویس‌پذیر از آن استفاده می‌کنند.
  2. یک ساختار داده مشترک فقط خواندنی که چندین سرویس‌پذیر از آن استفاده می‌کنند تا از هزینه‌های زمانی و فضایی ناشی از تکرار ساختار داده در هر نمونه قابل سرویس‌گیری جلوگیری شود. حالت مشترکی که زمان و اندازه مقداردهی اولیه آن ناچیز است (مثلاً مخزن های نخ) می تواند مشتاقانه توسط منبع ایجاد شود، که سپس یک اشاره گر به آن در هر آیتم ServableData منتشر شده تعبیه می شود. ایجاد دولت گران قیمت و یا بزرگ به اشتراک گذاشته باید به اولین اجرا به تعویق افتاده لودر :: بار () پاسخ، یعنی حکومت بدهید. متقارن، لودر :: خالی کردن () پاسخ به servable نهایی با استفاده از دولت گران / بزرگ به اشتراک گذاشته شده باید آن را پایین پاره شود.

سازندگان و تخریب کنندگان

~Source ()

انواع عمومی

AspiredVersionsCallback استفاده كردن
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
مخاطبین برای یک منبع به نسخه عرضه (بازدید کنندگان) یک servable به یک هدف، به لود شود.

توابع عمومی

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
یک AspiredVersionsCallback برای استفاده فراهم می کند. حداکثر یک بار می توان تماس گرفت.

انواع عمومی

AspiredVersionsCallback

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

مخاطبین برای یک منبع به نسخه عرضه (بازدید کنندگان) یک servable به یک هدف، به لود شود.

یک فراخوانی منفرد از تماس برگشتی مربوط به یک جریان قابل سرویس دهی است (که توسط 'servable_name' ارائه شده است). همه نسخه‌های ارائه شده در تماس باید برای سرویس‌پذیری باشد که در "servable_name" مشخص شده است. فراخوانی ها در جریان های مختلف قابل سرویس دهی متعامد با یکدیگر هستند.

فراخوان‌های چندگانه ممکن است اشیاء داده‌های قابل سرویس‌دهی را با شناسه‌های یکسان (یعنی نام و نسخه قابل سرویس‌دهی یکسان) عرضه کنند. چنین اشیاء داده قابل سرویس دهی از نظر معنایی معادل تلقی می شوند. گیرنده در نهایت یکی را نگه می دارد و بقیه را دور می اندازد.

اگر یک نسخه قابل خدمت V در فراخوانی اول ارائه شود، و متعاقباً از فراخوانی دوم حذف شود، مفهوم حذف V به معنایی هدف بازگشت به تماس بستگی دارد. برخی از اهداف حذف V را به عنوان یک دستورالعمل ضمنی برای تخلیه V تفسیر می کنند. هر هدف باید معنایی خود را در این زمینه مستند کند.

توابع عمومی

SetAspiredVersionsCallback

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

یک AspiredVersionsCallback برای استفاده فراهم می کند. حداکثر یک بار می توان تماس گرفت.

~منبع

virtual  ~Source()=default