tensorflow:: servindo:: LoaderHarness
#include <loader_harness.h>
LoaderHarness é um widget as Gerente usos para segurar e falar com um carregador enquanto ele possui.
Resumo
Ele rastreia o estado geral de um veiculável tal que Gestor pode determinar quais as transições de estado para fazer em que épocas.
Uma implementação de gerente também pode adicionar algum estado adicional a cada chicote. Por exemplo, um gerente pode colocar ACL ou metadados de ciclo de vida aqui. A propriedade é mantida pelo arnês.
Esta classe é segura para thread.
Construtores e Destruidores | |
---|---|
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) Construtor para criar um chicote com estado adicional, de que um gerente precisa. | |
~LoaderHarness () Legal para destruir se o estado atual for kNew, kDisabled ou kError. |
Tipos públicos | |
---|---|
State { | enum Estado do que possa ser veiculado subjacente, a partir da perspectiva do LoaderHarness e para efeitos de comunicação entre ele e um gerente . |
Funções públicas | |
---|---|
DoneQuiescing () | Status Faz a transição do estado para kQuiesced, o que significa que não há mais identificadores ativos para este serviço disponíveis no frontend. |
Error (const Status & status) | void Faz a transição do estado para kError e invoca 'options_.error_callback'. |
Load () | Status Transições para kLoading, delegados para veiculável :: Load (), então transições quer para kReady se load () for bem sucedida, ou para kError (e options_' invoca. |
LoadApproved () | Status Transições para kLoadApproved. |
LoadRequested () | Status Faz a transição do estado do chicote para kLoadRequested se seu estado atual for kNew. |
StartQuiescing () | Status Faz a transição do estado para kQuiescing, o que significa que gostaríamos de não fornecer mais identificadores para este serviço. |
Unload () | Status Transições para kUnloading, delegados veiculável :: Unload (), então as transições para kDisabled quando Unload () é feito. |
UnloadRequested () | Status Faz a transição do estado do chicote para kUnloadRequested se seu estado atual for kReady. |
additional_state () | T * Obtém o estado adicional. |
cancel_load_retry () | bool |
id () const | ServableId Retorna o identificador do Servable subjacente. |
loader () const | Loader * Retorna um ponteiro para o carregador empacotado. |
loader_state_snapshot () | ServableStateSnapshot< T > Retorna o instantâneo do estado geral atual do Servable subjacente. |
loader_state_snapshot () const | ServableStateSnapshot< std::nullptr_t > |
set_cancel_load_retry (bool value) | void Cancela a nova tentativa de carregar o servable. |
state () | Retorna o estado atual do Servable subjacente. |
status () | Status Se algo deu errado com este serviço. |
Funções estáticas públicas | |
---|---|
StateDebugString ( State state) | string |
Structs | |
---|---|
tensorflow :: servindo :: LoaderHarness :: Opções | Opções para configurar um LoaderHarness . |
Tipos públicos
Estado
State
Estado do que possa ser veiculado subjacente, a partir da perspectiva do LoaderHarness e para efeitos de comunicação entre ele e um gerente .
Não é equivalente aos estados de serviço semântico em servable_state.h.
Transições válidas: kNew> kLoading> kReady> kQuiescing> kQuiesced> kUnloading> kDisabled, bem como: any_state> kError.
Propriedades | |
---|---|
kDisabled | 'loader _-> Unload () ' foi concluída. |
kError | Ocorreu um erro, quer durante 'loader _-> Load () ' ou fora do arnês (e foi relatado para o cinto através de uma chamada para Error () ). |
kLoadApproved | O servable foi aprovado para carregamento, por exemplo recursos foram reservados para isso. |
kLoadRequested | O gerenciador foi solicitado a carregar este serviço. |
kLoading | 'loader _-> Load () ' foi chamado. |
kNew | Estado inicial. |
kQuiesced | A veiculação ficou indisponível para veiculação. |
kQuiescing | O servable ficará indisponível para veiculação. |
kReady | 'loader _-> Load () ' foi bem sucedido. |
kUnloadRequested | O gerente foi solicitado a descarregar este serviço. |
kUnloading | 'loader _-> Unload () ' foi chamado. |
Funções públicas
DoneQuiescing
Status DoneQuiescing()
Faz a transição do estado para kQuiesced, o que significa que não há mais identificadores ativos para este serviço disponíveis no frontend.
Neste ponto, podemos descarregar este objeto.
REQUER: O estado é kQuiescing quando chamado. Caso contrário, DCHECK falha, faz a transição para o estado kError e invoca 'options_.error_callback'.
Erro
void Error( const Status & status )
Faz a transição do estado para kError e invoca 'options_.error_callback'.
Carga
Status Load()
Transições para kLoading, delegados para veiculável :: Load (), então transições quer para kReady se load () for bem sucedida, ou para kError (e options_' invoca.
error_callback ') se Load () falhar. Esta chamada pode demorar muito.
Tentamos novamente Servable :: Load () de acordo com as opções definidas durante a construção desta classe. Paramos de tentar novamente e desistimos se 1. atingirmos max_num_load_retries ou 2. se cancel_load () for definido como verdadeiro.
REQUER: O estado é kLoadApproved quando chamado. Caso contrário, DCHECK falha, faz a transição para o estado kError e invoca 'options_.error_callback'.
LoadApproved
Status LoadApproved()
Transições para kLoadApproved.
REQUER: o estado é kLoadRequested quando chamado. Caso contrário, DCHECK falha, faz a transição para o estado kError e invoca 'options_.error_callback'.
LoadRequested
Status LoadRequested()
Faz a transição do estado do chicote para kLoadRequested se seu estado atual for kNew.
O teste-e-Mudança é feito transactionally, de modo que este método pode ser usado para garantir que no máximo um Load () pedido pode prosseguir.
LoaderHarness
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, const Options & options )
LoaderHarness
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options )
Construtor para criar um chicote com estado adicional, de que um gerente precisa.
StartQuiescing
Status StartQuiescing()
Faz a transição do estado para kQuiescing, o que significa que gostaríamos de não fornecer mais identificadores para este serviço.
REQUER: O estado é kUnloadRequested quando chamado. Caso contrário, DCHECK falha, faz a transição para o estado kError e invoca 'options_.error_callback'.
Descarregar
Status Unload()
Transições para kUnloading, delegados veiculável :: Unload (), então as transições para kDisabled quando Unload () é feito.
REQUER: O estado é kQuiesced quando chamado. Caso contrário, DCHECK falha, faz a transição para o estado kError e invoca 'options_.error_callback'.
UnloadRequested
Status UnloadRequested()
Faz a transição do estado do chicote para kUnloadRequested se seu estado atual for kReady.
O teste-e-Mudança é feito transactionally, de modo que este método pode ser usado para garantir que no máximo um Load () pedido pode prosseguir.
estado_adicional
T * additional_state()
Obtém o estado adicional.
Retorna nullptr se o tipo for incompatível ou se não tiver sido definido.
cancel_load_retry
bool cancel_load_retry()
identificação
ServableId id() const
Retorna o identificador do Servable subjacente.
carregador
Loader * loader() const
Retorna um ponteiro para o carregador empacotado.
A propriedade permanece com esta classe.
loader_state_snapshot
ServableStateSnapshot< T > loader_state_snapshot()
Retorna o instantâneo do estado geral atual do Servable subjacente.
loader_state_snapshot
ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const
set_cancel_load_retry
void set_cancel_load_retry( bool value )
Cancela a nova tentativa de carregar o servable.
Este é melhor esforço, e não antecipar um Load () que já está acontecendo, somente chamadas subsequentes.
Se as tentativas forem cancelados, o que possa ser veiculado vai para um dependente do último estado Load () chamado sobre ele. Se o último Load () foi bem sucedida, será no estado kReady, outra coisa na kError.
status
Status status()
Se algo deu errado com este serviço.
Se o estado for kError, não estará OK. Se não for OK, o erro poderia ser algo que ocorreu em uma Fonte ou SourceAdapter , no carregador , na Gestor , ou em outro lugar. Todos os erros relativos ao serviço são relatados aqui, independentemente da origem.
~ LoaderHarness
~LoaderHarness()
Legal para destruir se o estado atual for kNew, kDisabled ou kError.
Falha na verificação se violada.
Funções estáticas públicas
StateDebugString
string StateDebugString( State state )