flusso tensoriale:: servendo:: CaricatoreCablaggio
#include <loader_harness.h>
LoaderHarness è un widget le Gestore usi per mantenere il e parlare con un caricatore mentre si possiede.
Riepilogo
Traccia dello stato generale di tale pubblicabile che Gestore può determinare quali transizioni di stato per fare in quale momento.
Un'implementazione del gestore può anche aggiungere uno stato aggiuntivo con ogni cablaggio. Ad esempio, un manager potrebbe inserire qui i metadati ACL o del ciclo di vita. La proprietà è mantenuta dall'imbracatura.
Questa classe è thread-safe.
Costruttori e Distruttori | |
---|---|
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) Costruttore per creare un cablaggio con stato aggiuntivo, necessario a un manager. | |
~LoaderHarness () Legale da distruggere se lo stato corrente è uno tra kNew, kDisabled o kError. |
tipi pubblici | |
---|---|
State { | enum Stato della servibile sottostante, dal punto di vista della LoaderHarness e ai fini della comunicazione tra esso e un Gestore . |
Funzioni pubbliche | |
---|---|
DoneQuiescing () | Status Passa lo stato a kQuiesced, il che significa che non ci sono più handle live per questo servibile disponibili nel frontend. |
Error (const Status & status) | void Passa lo stato a kError e invoca 'options_.error_callback'. |
Load () | Status Transizioni kLoading, delega al pubblicabile :: Load (), quindi transizioni sia per kReady se Load () riesce, oppure kError (e options_ invoca. |
LoadApproved () | Status Transizioni a kLoadApproved. |
LoadRequested () | Status Passa lo stato del cablaggio a kLoadRequested se il suo stato attuale è kNew. |
StartQuiescing () | Status Passa lo stato a kQuiescing, il che significa che non vorremmo dare più handle a questo servibile. |
Unload () | Status Transizioni a kUnloading, delegati al pubblicabile :: Scarico (), quindi le transizioni a kDisabled quando Scarico () è fatto. |
UnloadRequested () | Status Passa lo stato del cablaggio a kUnloadRequested se il suo stato corrente è kReady. |
additional_state () | T * Ottiene lo stato aggiuntivo. |
cancel_load_retry () | bool |
id () const | ServableId Restituisce l'identificatore del Servebile sottostante. |
loader () const | Loader * Restituisce un puntatore al caricatore avvolto. |
loader_state_snapshot () | ServableStateSnapshot< T > Restituisce lo snapshot dello stato generale corrente del Servable sottostante. |
loader_state_snapshot () const | ServableStateSnapshot< std::nullptr_t > |
set_cancel_load_retry (bool value) | void Annulla il nuovo tentativo di caricamento del servibile. |
state () | Restituisce lo stato corrente del Servable sottostante. |
status () | Status Se qualcosa è andato storto con questo servibile. |
Funzioni statiche pubbliche | |
---|---|
StateDebugString ( State state) | string |
Strutture | |
---|---|
tensorflow :: :: servire LoaderHarness :: Opzioni | Opzioni per configurare un LoaderHarness . |
tipi pubblici
Stato
State
Stato della servibile sottostante, dal punto di vista della LoaderHarness e ai fini della comunicazione tra esso e un Gestore .
Non equivalente agli stati servibili semantici in servable_state.h.
Transizioni valide: kNew>kLoading>kReady>kQuiescing>kQuiesced>kUnloading>kDisabled nonché: any_state>kError.
Proprietà | |
---|---|
kDisabled | 'loader _-> scaricamento () ' ha finito. |
kError | Si è verificato un errore, sia durante 'loader _-> Load () ' o all'esterno del cablaggio (ed è stato riportato al cablaggio tramite una chiamata a errore () ). |
kLoadApproved | Il servibile è stato approvato per il caricamento, ad es risorse sono state stanziate per questo. |
kLoadRequested | Al gestore è stato richiesto di caricare questo pubblicabile. |
kLoading | 'loader _-> Load () ' è stato chiamato. |
kNew | Stato iniziale. |
kQuiesced | Il pubblicabile è stato reso non disponibile per la pubblicazione. |
kQuiescing | Il servibile verrà reso non disponibile per il servizio. |
kReady | 'loader _-> Load () ' è riuscito. |
kUnloadRequested | Al gestore è stato richiesto di scaricare questo servibile. |
kUnloading | 'loader _-> Unload () ' è stato chiamato. |
Funzioni pubbliche
FattoQuiescing
Status DoneQuiescing()
Passa lo stato a kQuiesced, il che significa che non ci sono più handle live per questo servibile disponibili nel frontend.
A questo punto possiamo scaricare questo oggetto.
RICHIEDE: lo stato è kQuiescing quando viene chiamato. Altrimenti DCHECK fallisce, passa allo stato kError e invoca 'options_.error_callback'.
Errore
void Error( const Status & status )
Passa lo stato a kError e invoca 'options_.error_callback'.
Caricare
Status Load()
Transizioni kLoading, delega al pubblicabile :: Load (), quindi transizioni sia per kReady se Load () riesce, oppure kError (e options_ invoca.
error_callback ') se Load () fallisce. Questa chiamata potrebbe richiedere molto tempo.
Riproviamo il Servable::Load() secondo le opzioni impostate durante la costruzione di questa classe. Smettiamo di riprovare e ci arrendiamo se 1. abbiamo raggiunto max_num_load_retries o, 2. se cancel_load() è impostato su true.
RICHIEDE: lo stato è kLoadApproved quando viene chiamato. Altrimenti DCHECK fallisce, passa allo stato kError e invoca 'options_.error_callback'.
LoadApproved
Status LoadApproved()
Transizioni a kLoadApproved.
RICHIEDE: lo stato è kLoadRequested quando viene chiamato. Altrimenti DCHECK fallisce, passa allo stato kError e invoca 'options_.error_callback'.
Carico richiesto
Status LoadRequested()
Passa lo stato del cablaggio a kLoadRequested se il suo stato attuale è kNew.
Il test-and-cambiamento avviene transazionale, quindi questo metodo può essere utilizzato per garantire che al massimo un carico () richiesta può procedere.
CaricatoreCablaggio
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, const Options & options )
CaricatoreCablaggio
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options )
Costruttore per creare un cablaggio con stato aggiuntivo, necessario a un manager.
StartQuiescing
Status StartQuiescing()
Passa lo stato a kQuiescing, il che significa che non vorremmo dare più handle a questo servibile.
RICHIEDE: lo stato è kUnloadRequested quando viene chiamato. Altrimenti DCHECK fallisce, passa allo stato kError e invoca 'options_.error_callback'.
Scaricare
Status Unload()
Transizioni a kUnloading, delegati al pubblicabile :: Scarico (), quindi le transizioni a kDisabled quando Scarico () è fatto.
RICHIEDE: lo stato è kQuiesced quando viene chiamato. Altrimenti DCHECK fallisce, passa allo stato kError e invoca 'options_.error_callback'.
Scarico richiesto
Status UnloadRequested()
Passa lo stato del cablaggio a kUnloadRequested se il suo stato corrente è kReady.
Il test-and-cambiamento avviene transazionale, quindi questo metodo può essere utilizzato per garantire che al massimo un carico () richiesta può procedere.
stato_aggiuntivo
T * additional_state()
Ottiene lo stato aggiuntivo.
Restituisce nullptr se il tipo non corrisponde o se non è stato impostato.
cancel_load_retry
bool cancel_load_retry()
ID
ServableId id() const
Restituisce l'identificatore del Servebile sottostante.
caricatore
Loader * loader() const
Restituisce un puntatore al caricatore avvolto.
La proprietà rimane con questa classe.
loader_state_snapshot
ServableStateSnapshot< T > loader_state_snapshot()
Restituisce lo snapshot dello stato generale corrente del Servable sottostante.
loader_state_snapshot
ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const
set_cancel_load_retry
void set_cancel_load_retry( bool value )
Annulla il nuovo tentativo di caricamento del servibile.
Si tratta di best-effort, e non prevenire una Load () che sta già accadendo, solo le chiamate successive.
Se i tentativi sono cancellate, la servibile entra in uno stato dipende dall'ultimo Load () chiamato su di esso. Se l'ultima Load () ha avuto successo, sarà in stato di kReady, il resto in kError.
stato
Status status()
Se qualcosa è andato storto con questo servibile.
Se lo stato è kError, questo non sarà OK. In caso contrario OK, l'errore potrebbe essere qualcosa che si è verificato in una sorgente o SourceAdapter , nel Loader , nel manager , o altrove. Tutti gli errori relativi al pubblicabile sono riportati qui, indipendentemente dall'origine.
~CaricatoreHarness
~LoaderHarness()
Legale da distruggere se lo stato corrente è uno tra kNew, kDisabled o kError.
Il controllo fallisce se violato.
Funzioni statiche pubbliche
Stringa di debug di stato
string StateDebugString( State state )