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 {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
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
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

State state()

Restituisce lo stato corrente del Servable sottostante.

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
)