टेंसरफ़्लो:: सेवारत:: लोडर हार्नेस
#include <loader_harness.h>
LoaderHarness एक विजेट है प्रबंधक एक करने के लिए करने के लिए और बात करते हैं पर पकड़ करने के लिए उपयोग करता है लोडर , जबकि यह यह मालिक है।
सारांश
यह एक servable इस तरह के समग्र राज्य कि पटरियों प्रबंधक निर्धारित कर सकते हैं जो राज्य संक्रमण क्या समय पर बनाने के लिए।
एक प्रबंधक कार्यान्वयन प्रत्येक हार्नेस के साथ कुछ अतिरिक्त स्थिति भी जोड़ सकता है। उदाहरण के लिए, एक प्रबंधक एसीएल या जीवनचक्र मेटाडेटा यहां रख सकता है। स्वामित्व हार्नेस द्वारा बनाए रखा जाता है।
यह वर्ग थ्रेड-सुरक्षित है।
निर्माता और विनाशक | |
---|---|
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 () यदि वर्तमान स्थिति kNew, kDisabled या kError में से एक है, तो नष्ट करने के लिए कानूनी। |
सार्वजनिक प्रकार | |
---|---|
State { | एन्यूम अंतर्निहित servable के राज्य, के नजरिए से LoaderHarness और यह और एक के बीच संचार के प्रयोजन के लिए प्रबंधक । |
सार्वजनिक समारोह | |
---|---|
DoneQuiescing () | Status राज्य को kQuiesced में स्थानांतरित करता है, जिसका अर्थ है कि फ़्रंटएंड में उपलब्ध इस सेवा योग्य के लिए कोई और लाइव हैंडल नहीं हैं। |
Error (const Status & status) | void राज्य को kError में स्थानांतरित करता है और 'options_.error_callback' को आमंत्रित करता है। |
Load () | Status KLoading के संक्रमण, servable प्रतिनिधियों :: लोड (), तो संक्रमण या तो kReady के लिए अगर लोड () सफल होता है, या kError (और आह्वान 'options_। |
LoadApproved () | Status kLoad में संक्रमणस्वीकृत. |
LoadRequested () | Status यदि इसकी वर्तमान स्थिति kNew है, तो हार्नेस की स्थिति को kLoadRequested में परिवर्तित करें। |
StartQuiescing () | Status राज्य को kQuiescing में स्थानांतरित करता है, जिसका अर्थ है कि हम इस सेवा योग्य को कोई और हैंडल नहीं देना चाहेंगे। |
Unload () | Status KUnloading के संक्रमण,) servable :: अनलोड (प्रतिनिधियों, तो kDisabled को संक्रमण जब अनलोड () किया जाता है। |
UnloadRequested () | Status हार्नेस की स्थिति को kUnloadRequested में परिवर्तित करता है यदि इसकी वर्तमान स्थिति kReady है। |
additional_state () | T * अतिरिक्त राज्य मिलता है। |
cancel_load_retry () | bool |
id () const | ServableId अंतर्निहित सर्व करने योग्य का पहचानकर्ता लौटाता है। |
loader () const | Loader * लिपटे लोडर को एक पॉइंटर लौटाता है। |
loader_state_snapshot () | ServableStateSnapshot< T > अंतर्निहित सर्व करने योग्य का वर्तमान समग्र स्थिति स्नैपशॉट देता है। |
loader_state_snapshot () const | ServableStateSnapshot< std::nullptr_t > |
set_cancel_load_retry (bool value) | void सर्व करने योग्य के लोड का पुनः प्रयास रद्द करता है। |
state () | अंतर्निहित Servable की वर्तमान स्थिति लौटाता है। |
status () | Status क्या इस सेवा योग्य के साथ कुछ गलत हुआ है। |
सार्वजनिक स्थैतिक कार्य | |
---|---|
StateDebugString ( State state) | string |
स्ट्रक्चर्स | |
---|---|
tensorflow :: की सेवा :: LoaderHarness :: विकल्प | विकल्प एक कॉन्फ़िगर करने के लिए LoaderHarness । |
सार्वजनिक प्रकार
राज्य
State
अंतर्निहित servable के राज्य, के नजरिए से LoaderHarness और यह और एक के बीच संचार के प्रयोजन के लिए प्रबंधक ।
servable_state.h में सिमेंटिक सर्व करने योग्य अवस्थाओं के बराबर नहीं है।
मान्य ट्रांज़िशन: kNew>kLoading>kReady>kQuiescing>kQuiesced>kUnloading>kDisabled और साथ ही: any_state>kError।
गुण | |
---|---|
kDisabled | 'लोडर _-> अनलोड () ' समाप्त हो गया है। |
kError | कोई त्रुटि, आ गई है या तो 'लोडर _-> दौरान लोड () ' या दोहन के बाहर (और के लिए एक कॉल के माध्यम से दोहन की सूचना मिली थी त्रुटि () )। |
kLoadApproved | सर्व करने योग्य को लोड करने के लिए स्वीकृत किया गया है, उदाहरण के लिए इसके लिए संसाधन अलग रखे गए हैं। |
kLoadRequested | प्रबंधक से अनुरोध किया गया है कि इस सेवा योग्य को लोड करें। |
kLoading | 'लोडर _-> लोड () ' कहा गया है। |
kNew | प्रारम्भिक अवस्था। |
kQuiesced | सर्व करने योग्य सेवा के लिए अनुपलब्ध बना दिया गया है। |
kQuiescing | सर्व करने योग्य को परोसने के लिए अनुपलब्ध बनाया जा रहा है। |
kReady | 'लोडर _-> लोड () ' सफल रहा है। |
kUnloadRequested | प्रबंधक से अनुरोध किया गया है कि इस सेवा योग्य को उतार दें। |
kUnloading | 'लोडर _-> अनलोड () ' कहा गया है। |
सार्वजनिक समारोह
हो गयाप्रश्नोत्तरी
Status DoneQuiescing()
राज्य को kQuiesced में स्थानांतरित करता है, जिसका अर्थ है कि फ़्रंटएंड में उपलब्ध इस सेवा योग्य के लिए कोई और लाइव हैंडल नहीं हैं।
इस बिंदु पर, हम इस वस्तु को उतार सकते हैं।
आवश्यकताएँ: कॉल किए जाने पर राज्य kQuiescing है। अन्यथा DCHECK-विफल हो जाता है, राज्य kError में संक्रमण और 'options_.error_callback' को आमंत्रित करता है।
त्रुटि
void Error( const Status & status )
राज्य को kError में स्थानांतरित करता है और 'options_.error_callback' को आमंत्रित करता है।
भार
Status Load()
KLoading के संक्रमण, servable प्रतिनिधियों :: लोड (), तो संक्रमण या तो kReady के लिए अगर लोड () सफल होता है, या kError (और आह्वान 'options_।
error_callback ') यदि लोड () विफल रहता है। इस कॉल में लंबा समय लग सकता है।
हम इस वर्ग के निर्माण के दौरान निर्धारित विकल्पों के अनुसार Servable::Load() का पुनः प्रयास करते हैं। हम पुनः प्रयास करना बंद कर देते हैं और यदि 1. हम max_num_load_retrys पर पहुंच गए हैं या, 2. यदि रद्द_लोड () सत्य पर सेट है, तो हम छोड़ देते हैं।
आवश्यकताएँ: कॉल किए जाने पर राज्य को kLoad स्वीकृत किया जाता है। अन्यथा DCHECK-विफल हो जाता है, राज्य kError में संक्रमण और 'options_.error_callback' को आमंत्रित करता है।
लोड स्वीकृत
Status LoadApproved()
kLoad में संक्रमणस्वीकृत.
आवश्यकताएँ: कॉल किए जाने पर राज्य को kLoadRequested किया जाता है। अन्यथा DCHECK-विफल हो जाता है, राज्य kError में संक्रमण और 'options_.error_callback' को आमंत्रित करता है।
लोडअनुरोधित
Status LoadRequested()
यदि इसकी वर्तमान स्थिति kNew है, तो हार्नेस की स्थिति को kLoadRequested में परिवर्तित करें।
परीक्षण और परिवर्तन transactionally किया जाता है, तो इस विधि सुनिश्चित करना है कि अधिक से अधिक एक प्रयोग किया जा सकता लोड () अनुरोध आगे बढ़ सकते हैं।
लोडर हार्नेस
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 )
अतिरिक्त राज्य के साथ एक हार्नेस बनाने के लिए निर्माता, जिसकी एक प्रबंधक को आवश्यकता होती है।
प्रारंभ क्विज़िंग
Status StartQuiescing()
राज्य को kQuiescing में स्थानांतरित करता है, जिसका अर्थ है कि हम इस सेवा योग्य को कोई और हैंडल नहीं देना चाहेंगे।
आवश्यकताएँ: कॉल किए जाने पर राज्य kUnloadRequested है। अन्यथा DCHECK-विफल हो जाता है, राज्य kError में संक्रमण और 'options_.error_callback' को आमंत्रित करता है।
अनलोड
Status Unload()
KUnloading के संक्रमण,) servable :: अनलोड (प्रतिनिधियों, तो kDisabled को संक्रमण जब अनलोड () किया जाता है।
आवश्यकताएँ: कॉल करने पर राज्य kQuiesced होता है। अन्यथा DCHECK-विफल हो जाता है, राज्य kError में संक्रमण और 'options_.error_callback' को आमंत्रित करता है।
अनलोडअनुरोधित
Status UnloadRequested()
हार्नेस की स्थिति को kUnloadRequested में परिवर्तित करता है यदि इसकी वर्तमान स्थिति kReady है।
परीक्षण और परिवर्तन transactionally किया जाता है, तो इस विधि सुनिश्चित करना है कि अधिक से अधिक एक प्रयोग किया जा सकता लोड () अनुरोध आगे बढ़ सकते हैं।
अतिरिक्त_राज्य
T * additional_state()
अतिरिक्त राज्य मिलता है।
यदि प्रकार बेमेल है या यदि यह सेट नहीं किया गया है, तो nullptr लौटाता है।
रद्द_लोड_पुनः प्रयास करें
bool cancel_load_retry()
पहचान
ServableId id() const
अंतर्निहित सर्व करने योग्य का पहचानकर्ता लौटाता है।
लोडर_स्टेट_स्नैपशॉट
ServableStateSnapshot< T > loader_state_snapshot()
अंतर्निहित सर्व करने योग्य का वर्तमान समग्र स्थिति स्नैपशॉट देता है।
लोडर_स्टेट_स्नैपशॉट
ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const
set_cancel_load_retry
void set_cancel_load_retry( bool value )
सर्व करने योग्य के लोड का पुनः प्रयास रद्द करता है।
यह सबसे अच्छा प्रयास है, और एक जगह ले लेना नहीं करता लोड () जो पहले से ही हो रहा है, केवल आगामी कॉल।
पुनः रद्द कर रहे हैं, servable एक राज्य पिछले पर निर्भर में चला जाता है लोड () इस पर कहा जाता है। अगर पिछले लोड () सफल रहा था, उस में राज्य kReady हो जाएगा, kError में सब।
स्थिति
Status status()
क्या इस सेवा योग्य के साथ कुछ गलत हुआ है।
यदि राज्य kError है, तो यह ठीक नहीं होगा। तो ठीक नहीं, त्रुटि कुछ है कि एक में हुई हो सकता है स्रोत या SourceAdapter , में लोडर , में प्रबंधक , या कहीं और। सर्व करने योग्य से संबंधित सभी त्रुटियां यहां बताई गई हैं, चाहे उत्पत्ति कुछ भी हो।
~ लोडर हार्नेस
~LoaderHarness()
यदि वर्तमान स्थिति kNew, kDisabled या kError में से एक है, तो नष्ट करने के लिए कानूनी।
उल्लंघन होने पर चेक-फेल हो जाता है।
सार्वजनिक स्थैतिक कार्य
स्टेटडिबगस्ट्रिंग
string StateDebugString( State state )