انضم إلى مجتمع SIG TFX-Addons وساعد في جعل TFX أفضل! انضم إلى SIG TFX-Addons

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

#include <loader_harness.h>

LoaderHarness هو القطعة من مدير الاستخدامات على التمسك والحديث ل ودر في الوقت الذي تمتلك فيه.

ملخص

يتتبع الحالة العامة للخدمة بحيث يمكن للمدير تحديد انتقالات الحالة التي يجب إجراؤها في أي وقت.

يمكن أن يضيف تطبيق المدير أيضًا بعض الحالات الإضافية مع كل أداة. على سبيل المثال ، يمكن للمدير وضع بيانات تعريف قائمة التحكم بالوصول (ACL) أو دورة الحياة هنا. يتم الحفاظ على الملكية بواسطة الحزام.

هذه الفئة هي خيط آمن.

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

LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, const Options & options)
LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options)
المُنشئ لإنشاء حزام مع حالة إضافية يحتاجها المدير.
~LoaderHarness ()
قانوني لتدمير iff الحالة الحالية هي حالة kNew أو kDisabled أو kError.

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

State {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
تعداد
حالة الخدمة الأساسية ، من منظور LoaderHarness ولغرض الاتصال بينه وبين المدير .

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

DoneQuiescing ()
Status
ينتقل الحالة إلى kQuiesced ، مما يعني أنه لم يعد هناك المزيد من المقابض الحية لهذه الخدمة المتوفرة في الواجهة الأمامية.
Error (const Status & status)
void
ينقل الحالة إلى kError ويستدعي "options_.error_callback"
Load ()
Status
الانتقالات إلى kLoading ، والتفويضات إلى Servable :: Load () ، ثم الانتقال إما إلى kReady إذا نجح Load () ، أو إلى kError (واستدعاء options_.
LoadApproved ()
Status
انتقالات إلى kLoadApproved.
LoadRequested ()
Status
ينتقل حالة الأداة إلى kLoadRequested iff حالتها الحالية هي kNew.
StartQuiescing ()
Status
ينتقل الحالة إلى kQuiescing ، مما يعني أننا نرغب في عدم إعطاء المزيد من المقابض لهذه الخدمة.
Unload ()
Status
الانتقالات إلى kUnloading ، والتفويضات إلى Servable :: Unload () ، ثم الانتقال إلى kDisabled عند تنفيذ Unload () .
UnloadRequested ()
Status
ينتقل حالة الأداة إلى kUnloadRequested iff حالتها الحالية هي kReady.
additional_state ()
T *
يحصل على الحالة الإضافية.
cancel_load_retry ()
bool
id () const
ServableId
إرجاع معرف الخدمة الأساسي.
loader () const
إرجاع المؤشر إلى المحمل المغلف.
loader_state_snapshot ()
ServableStateSnapshot< T >
تُرجع لقطة الحالة الإجمالية الحالية للخدمة الأساسية.
loader_state_snapshot () const
ServableStateSnapshot< std::nullptr_t >
set_cancel_load_retry (bool value)
void
يلغي إعادة محاولة تحميل الخدمة.
state ()
تُرجع الحالة الحالية للخدمة الأساسية.
status ()
Status
ما إذا كان هناك أي خطأ مع هذه الخدمة.

وظائف ثابتة عامة

StateDebugString ( State state)
string

الهياكل

tensorflow :: التقديم :: LoaderHarness :: Options

خيارات لتكوين LoaderHarness .

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

حالة

 State

حالة الخدمة الأساسية ، من منظور LoaderHarness ولغرض الاتصال بينه وبين المدير .

لا يعادل الحالات الدلالية القابلة للخدمة في servable_state.h.

الانتقالات الصالحة: kNew> kLoading> kReady> kQuiescing> kQuiesced> kUnloading> kDisabled وكذلك: any_state> kError.

الخصائص
kDisabled

انتهى تحميل "_-> Unload () ".

kError

حدث خطأ ، إما أثناء " Load _-> Load () " أو خارج الأداة (وتم إبلاغ الأداة عن طريق استدعاء Error () ).

kLoadApproved

تمت الموافقة على الجهاز القابل للخدمة للتحميل ، على سبيل المثال

الموارد المخصصة لذلك.

kLoadRequested

طُلب من المدير تحميل هذه الخدمة.

kLoading

تم استدعاء " Load _-> Load () ".

kNew

الحالة الأولية.

kQuiesced

تم جعل الخدمة غير متاحة للخدمة.

kQuiescing

ستكون الخدمة غير متاحة للخدمة.

kReady

نجح " Load _-> Load () ".

kUnloadRequested

طُلب من المدير تفريغ هذه الخدمة.

kUnloading

تم استدعاء "Load _-> Unload () ".

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

تم الاستفسار

Status DoneQuiescing()

ينتقل الحالة إلى kQuiesced ، مما يعني أنه لم يعد هناك المزيد من المقابض الحية لهذه الخدمة المتوفرة في الواجهة الأمامية.

في هذه المرحلة ، يمكننا تفريغ هذا الكائن.

يتطلب: الحالة kQuiescing عند استدعائها. خلاف ذلك ، فشل DCHECK ، انتقالات إلى حالة kError واستدعاء 'options_.error_callback'.

خطأ

void Error(
  const Status & status
)

ينقل الحالة إلى kError ويستدعي "options_.error_callback".

حمل

Status Load()

الانتقالات إلى kLoading ، والتفويضات إلى Servable :: Load () ، ثم انتقالات إما إلى kReady إذا نجح Load () ، أو إلى kError (واستدعاء options_.

error_callback ') إذا فشل التحميل () . قد تستغرق هذه المكالمة وقتًا طويلاً.

نعيد محاولة Servable :: Load () وفقًا للخيارات المحددة أثناء إنشاء هذه الفئة. نتوقف عن إعادة المحاولة ونتوقف عن المحاولة إذا 1. وصلنا إلى max_num_load_retries أو 2. إذا تم تعيين إلغاء_ تحميل () على القيمة الحقيقية.

المتطلبات: الحالة هي kLoad تمت الموافقة عليها عند استدعائها. خلاف ذلك ، فشل DCHECK ، انتقالات إلى حالة kError واستدعاء 'options_.error_callback'.

تمت الموافقة على التحميل

Status LoadApproved()

انتقالات إلى kLoadApproved.

المتطلبات: الحالة هي kLoadRequested عند استدعائها. خلاف ذلك ، فشل DCHECK ، انتقالات إلى حالة kError واستدعاء 'options_.error_callback'.

طلب التحميل

Status LoadRequested()

ينتقل حالة الأداة إلى kLoadRequested iff حالتها الحالية هي kNew.

يتم إجراء الاختبار والتغيير بطريقة معاملة ، لذلك يمكن استخدام هذه الطريقة لضمان إمكانية متابعة طلب Load () واحد على الأكثر.

محمل

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  const Options & options
)

محمل

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  std::unique_ptr< T > additional_state,
  const Options & options
)

المُنشئ لإنشاء حزام مع حالة إضافية يحتاجها المدير.

StartQuiescing

Status StartQuiescing()

ينتقل الحالة إلى kQuiescing ، مما يعني أننا نرغب في عدم إعطاء المزيد من المقابض لهذه الخدمة.

يتطلب: الحالة هي kUnloadRequested عند استدعائها. خلاف ذلك ، فشل DCHECK ، انتقالات إلى حالة kError واستدعاء 'options_.error_callback'.

تفريغ

Status Unload()

الانتقالات إلى kUnloading ، والتفويضات إلى Servable :: Unload () ، ثم الانتقال إلى kDisabled عند تنفيذ Unload () .

يتطلب: الحالة kQuiesced عند استدعائها. خلاف ذلك ، فشل DCHECK ، انتقالات إلى حالة kError واستدعاء 'options_.error_callback'.

تفريغ الطلب

Status UnloadRequested()

ينتقل حالة الأداة إلى kUnloadRequested iff حالتها الحالية هي kReady.

يتم إجراء الاختبار والتغيير بطريقة معاملة ، لذلك يمكن استخدام هذه الطريقة لضمان إمكانية متابعة طلب Load () واحد على الأكثر.

حالة_إضافية

T * additional_state()

يحصل على الحالة الإضافية.

تُرجع القيمة nullptr إذا كان النوع غير متطابق أو إذا لم يتم تعيينه.

Cancel_load_retry

bool cancel_load_retry()

هوية شخصية

ServableId id() const 

إرجاع معرف الخدمة الأساسي.

محمل

Loader * loader() const 

إرجاع المؤشر إلى المحمل المغلف.

تبقى الملكية مع هذه الفئة.

Load_state_snapshot

ServableStateSnapshot< T > loader_state_snapshot()

تُرجع لقطة الحالة الإجمالية الحالية للخدمة الأساسية.

Load_state_snapshot

ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const 

set_cancel_load_retry

void set_cancel_load_retry(
  bool value
)

يلغي إعادة محاولة تحميل الخدمة.

هذا هو أفضل جهد ، ولا يستبق التحميل () الذي يحدث بالفعل ، فقط المكالمات اللاحقة.

إذا تم إلغاء عمليات إعادة المحاولة ، ينتقل الجهاز القابل للخدمة إلى حالة تعتمد على آخر تحميل () يتم استدعاؤه عليه. إذا كان التحميل الأخير () ناجحًا ، فسيكون في حالة kReady ، وإلا في kError.

حالة

State state()

تُرجع الحالة الحالية للخدمة الأساسية.

الحالة

Status status()

ما إذا كان هناك أي خطأ مع هذه الخدمة.

إذا كانت الحالة kError ، فسيكون هذا غير مقبول. إذا لم يكن الأمر جيدًا ، فقد يكون الخطأ شيئًا ما حدث في Source أو SourceAdapter أو في Loader أو في Manager أو في أي مكان آخر. يتم الإبلاغ عن جميع الأخطاء المتعلقة بالخدمة هنا ، بغض النظر عن الأصل.

~ محمل

 ~LoaderHarness()

قانوني لتدمير iff الحالة الحالية هي حالة kNew أو kDisabled أو kError.

تحقق من فشل إذا انتهكت.

وظائف ثابتة عامة

StateDebugString

string StateDebugString(
  State state
)