tensorflow :: servicio:: CargadorArnés
#include <loader_harness.h>
LoaderHarness es un widget de los Administrador de usos de aferrarse a y hablar con un cargador , mientras que lo posee.
Resumen
Realiza un seguimiento de la situación general de un servable tal que el Administrador puede determinar qué transiciones de un estado a hacer en qué momento.
Una implementación de administrador también puede agregar algún estado adicional con cada arnés. Por ejemplo, un administrador podría colocar metadatos de ciclo de vida o ACL aquí. La propiedad es mantenida por el arnés.
Esta clase es segura para subprocesos.
Constructores y Destructores | |
---|---|
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) Constructor para crear un arnés con estado adicional, que necesita un administrador. | |
~LoaderHarness () Legal para destruir si el estado actual es uno de kNew, kDisabled o kError. |
Tipos públicos | |
---|---|
State { | enumeración Estado de la servable subyacente, desde la perspectiva de la LoaderHarness y para el propósito de la comunicación entre él y un Gestor . |
Funciones publicas | |
---|---|
DoneQuiescing () | Status Cambia el estado a kQuiesced, lo que significa que no hay más identificadores en vivo para este servidor disponibles en la interfaz. |
Error (const Status & status) | void Cambia el estado a kError e invoca 'options_.error_callback'. |
Load () | Status Las transiciones a kLoading, delega en servable :: Load (), entonces las transiciones ya sea a kReady si Load () tiene éxito, o para kError (y options_ invoca'. |
LoadApproved () | Status Transiciones a kLoadApproved. |
LoadRequested () | Status Cambia el estado del arnés a kLoadRequested si su estado actual es kNew. |
StartQuiescing () | Status Cambia el estado a kQuiescing, lo que significa que no nos gustaría dar más identificadores a este servicio. |
Unload () | Status Las transiciones a kUnloading, los delegados a servable :: Unload (), entonces las transiciones a la kDisabled cuando Unload () se hace. |
UnloadRequested () | Status Cambia el estado del arnés a kUnloadRequested si su estado actual es kReady. |
additional_state () | T * Obtiene el estado adicional. |
cancel_load_retry () | bool |
id () const | ServableId Devuelve el identificador del Servidor subyacente. |
loader () const | Loader * Devuelve un puntero al cargador envuelto. |
loader_state_snapshot () | ServableStateSnapshot< T > Devuelve la instantánea del estado general actual del Servidor subyacente. |
loader_state_snapshot () const | ServableStateSnapshot< std::nullptr_t > |
set_cancel_load_retry (bool value) | void Cancela el reintento de carga del servidor. |
state () | Devuelve el estado actual del Servidor subyacente. |
status () | Status Si algo salió mal con este servidor. |
Funciones estáticas públicas | |
---|---|
StateDebugString ( State state) | string |
Estructuras | |
---|---|
tensorflow :: :: servir LoaderHarness :: Opciones | Opciones para configurar un LoaderHarness . |
Tipos públicos
Expresar
State
Estado de la servable subyacente, desde la perspectiva de la LoaderHarness y para el propósito de la comunicación entre él y un Gestor .
No es equivalente a los estados de servicio semánticos en servible_state.h.
Transiciones válidas: kNew>kLoading>kReady>kQuiescing>kQuiesced>kUnloading>kDisabled así como: any_state>kError.
Propiedades | |
---|---|
kDisabled | 'cargador _-> Unload () ' ha terminado. |
kError | Se ha producido un error, ya sea durante 'loader _-> Load () ' o fuera del arnés (y se informó que el arnés a través de una llamada a Error () ). |
kLoadApproved | El servidor ha sido aprobado para la carga, por ejemplo se han destinado recursos para ello. |
kLoadRequested | Se ha solicitado al administrador que cargue este servidor. |
kLoading | 'cargador _-> Load () ' ha sido llamado. |
kNew | Estado inicial. |
kQuiesced | El servicio se ha hecho no disponible para servir. |
kQuiescing | El servidor no estará disponible para servir. |
kReady | 'cargador _-> Load () ' ha tenido éxito. |
kUnloadRequested | Se ha solicitado al administrador que descargue este servidor. |
kUnloading | 'cargador _-> Unload () ' que se ha llamado. |
Funciones publicas
DoneQuiescing
Status DoneQuiescing()
Cambia el estado a kQuiesced, lo que significa que no hay más identificadores en vivo para este servidor disponibles en la interfaz.
En este punto, podemos descargar este objeto.
REQUIERE: El estado está kQuiescing cuando se le llama. De lo contrario, DCHECK falla, pasa al estado kError e invoca 'options_.error_callback'.
Error
void Error( const Status & status )
Cambia el estado a kError e invoca 'options_.error_callback'.
Carga
Status Load()
Las transiciones a kLoading, delega en servable :: Load (), entonces las transiciones ya sea a kReady si Load () tiene éxito, o para kError (y options_ invoca'.
error_callback ') si Load () falla. Esta llamada puede tardar mucho tiempo.
Volvemos a intentar Servible::Load() de acuerdo con las opciones establecidas durante la construcción de esta clase. Dejamos de reintentar y nos damos por vencidos si 1. hemos llegado a max_num_load_retries o, 2. si cancel_load() se establece en verdadero.
REQUIERE: El estado es kLoadApproved cuando se llama. De lo contrario, DCHECK falla, pasa al estado kError e invoca 'options_.error_callback'.
Carga aprobada
Status LoadApproved()
Transiciones a kLoadApproved.
REQUIERE: El estado es kLoadRequested cuando se llama. De lo contrario, DCHECK falla, pasa al estado kError e invoca 'options_.error_callback'.
Carga solicitada
Status LoadRequested()
Cambia el estado del arnés a kLoadRequested si su estado actual es kNew.
La prueba-y-cambio se realiza transaccionalmente, por lo que este método se puede utilizar para asegurar que a lo sumo un Load () solicitud puede proceder.
CargadorArnés
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, const Options & options )
CargadorArnés
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options )
Constructor para crear un arnés con estado adicional, que necesita un administrador.
StartQuiescing
Status StartQuiescing()
Cambia el estado a kQuiescing, lo que significa que no nos gustaría dar más identificadores a este servicio.
REQUIERE: El estado es kUnloadRequested cuando se llama. De lo contrario, DCHECK falla, pasa al estado kError e invoca 'options_.error_callback'.
Descargar
Status Unload()
Las transiciones a kUnloading, los delegados a servable :: Unload (), entonces las transiciones a la kDisabled cuando Unload () se hace.
REQUIERE: El estado se kQuiesced cuando se le llama. De lo contrario, DCHECK falla, pasa al estado kError e invoca 'options_.error_callback'.
DescargarSolicitado
Status UnloadRequested()
Cambia el estado del arnés a kUnloadRequested si su estado actual es kReady.
La prueba-y-cambio se realiza transaccionalmente, por lo que este método se puede utilizar para asegurar que a lo sumo un Load () solicitud puede proceder.
estado_adicional
T * additional_state()
Obtiene el estado adicional.
Devuelve nullptr si el tipo no coincide o si no se configuró.
cancel_load_retry
bool cancel_load_retry()
identificación
ServableId id() const
Devuelve el identificador del Servidor subyacente.
cargador
Loader * loader() const
Devuelve un puntero al cargador envuelto.
La propiedad permanece con esta clase.
cargador_estado_instantánea
ServableStateSnapshot< T > loader_state_snapshot()
Devuelve la instantánea del estado general actual del Servidor subyacente.
cargador_estado_instantánea
ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const
set_cancel_load_reintentar
void set_cancel_load_retry( bool value )
Cancela el reintento de carga del servidor.
Este es el mejor esfuerzo, y no reemplaza una carga () que ya está sucediendo, sólo llamadas subsiguientes.
Si los reintentos se cancelan, la servable entra en un estado dependiente de la última carga () invocado. Si el último Load () se ha realizado correctamente, será en el estado kReady, más en kError.
estado
Status status()
Si algo salió mal con este servidor.
Si el estado es kError, no será correcto. De lo contrario, el error podría ser algo que ocurrió en una fuente o SourceAdapter , en el cargador , en el Administrador , o en otro lugar. Todos los errores relacionados con el servicio se informan aquí, independientemente de su origen.
~Arnés del cargador
~LoaderHarness()
Legal para destruir si el estado actual es uno de kNew, kDisabled o kError.
La verificación falla si se viola.
Funciones estáticas públicas
StateDebugString
string StateDebugString( State state )