tensorflow :: portion:: ChargeurHarnais
#include <loader_harness.h>
LoaderHarness est un widget le gestionnaire utilise pour tenir et parler à un chargeur alors qu'il est propriétaire.
Résumé
Il suit l'état général d'un tel diffusable que directeur peut déterminer les transitions entre les états à faire à quel moment.
Une implémentation de gestionnaire peut également ajouter un état supplémentaire avec chaque harnais. Par exemple, un responsable peut placer ici des métadonnées ACL ou de cycle de vie. La propriété est maintenue par le harnais.
Cette classe est thread-safe.
Constructeurs et destructeurs | |
---|---|
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) Constructeur pour créer un harnais avec un état supplémentaire, dont un gestionnaire a besoin. | |
~LoaderHarness () Légal pour détruire si l'état actuel est l'un des kNew, kDisabled ou kError. |
Types publics | |
---|---|
State { | énumérer État de la diffusable sous - jacente, du point de vue de la LoaderHarness et aux fins de la communication entre lui et un directeur . |
Fonctions publiques | |
---|---|
DoneQuiescing () | Status Fait passer l'état à kQuiesced, ce qui signifie qu'il n'y a plus de descripteurs dynamiques pour ce serveur disponible dans le frontend. |
Error (const Status & status) | void Fait passer l'état à kError et appelle 'options_.error_callback'. |
Load () | Status Transitions à kLoading, les délégués à diffusables :: Load (), puis des transitions soit à kReady si Load () réussit, ou à kError (et la options_ de invoque. |
LoadApproved () | Status Transitions vers kLoadApproved. |
LoadRequested () | Status Fait passer l'état du harnais à kLoadRequested si son état actuel est kNew. |
StartQuiescing () | Status Fait passer l'état à kQuiescing, ce qui signifie que nous aimerions ne plus donner de descripteurs à ce serveur. |
Unload () | Status Transitions à kUnloading, les délégués à diffusables :: Unload (), puis la transition vers kDisabled quand Unload () est fait. |
UnloadRequested () | Status Fait passer l'état du harnais à kUnloadRequested si son état actuel est kReady. |
additional_state () | T * Obtient l'état supplémentaire. |
cancel_load_retry () | bool |
id () const | ServableId Renvoie l'identifiant du Servable sous-jacent. |
loader () const | Loader * Renvoie un pointeur vers le chargeur encapsulé. |
loader_state_snapshot () | ServableStateSnapshot< T > Renvoie l'instantané de l'état global actuel du Servable sous-jacent. |
loader_state_snapshot () const | ServableStateSnapshot< std::nullptr_t > |
set_cancel_load_retry (bool value) | void Annule la nouvelle tentative de chargement du serveur. |
state () | Renvoie l'état actuel du Servable sous-jacent. |
status () | Status Si quelque chose s'est mal passé avec cette servable. |
Fonctions statiques publiques | |
---|---|
StateDebugString ( State state) | string |
Structures | |
---|---|
tensorflow :: :: service LoaderHarness :: options | Options pour configurer un LoaderHarness . |
Types publics
État
State
État de la diffusable sous - jacente, du point de vue de la LoaderHarness et aux fins de la communication entre lui et un directeur .
Non équivalent aux états sémantiques servables dans servable_state.h.
Transitions valides : kNew>kLoading>kReady>kQuiescing>kQuiesced>kUnloading>kDisabled ainsi que : any_state>kError.
Propriétés | |
---|---|
kDisabled | 'loader _-> Unload () ' est terminé. |
kError | Une erreur a été commise, soit au cours de « loader _-> Load () » ou à l' extérieur du faisceau (et a été rapporté au harnais par l' intermédiaire d' un appel à l' erreur () ). |
kLoadApproved | La servante a été approuvée pour le chargement, par ex. des ressources lui ont été réservées. |
kLoadRequested | Le gestionnaire a été invité à charger ce serveur. |
kLoading | 'chargeur _-> Load () ' a été appelé. |
kNew | Etat initial. |
kQuiesced | Le service a été rendu indisponible pour le service. |
kQuiescing | Le service va être rendu indisponible pour le service. |
kReady | 'chargeur _-> Load () ' a réussi. |
kUnloadRequested | Le gestionnaire a été invité à décharger ce serveur. |
kUnloading | 'chargeur _-> Unload () ' a été appelé. |
Fonctions publiques
TerminéQuiescing
Status DoneQuiescing()
Fait passer l'état à kQuiesced, ce qui signifie qu'il n'y a plus de descripteurs dynamiques pour ce serveur disponible dans le frontend.
À ce stade, nous pouvons décharger cet objet.
REQUIS : l'état est kQuiescing lorsqu'il est appelé. Sinon, DCHECK échoue, passe à l'état kError et appelle 'options_.error_callback'.
Erreur
void Error( const Status & status )
Fait passer l'état à kError et appelle 'options_.error_callback'.
Charger
Status Load()
Transitions à kLoading, les délégués à diffusables :: Load (), puis des transitions soit à kReady si Load () réussit, ou à kError (et la options_ de invoque.
error_callback ') si Load () échoue. Cet appel peut prendre du temps.
Nous réessayons le Servable::Load() en fonction des options définies lors de la construction de cette classe. Nous arrêtons de réessayer et abandonnons si 1. nous avons atteint max_num_load_retries ou, 2. si cancel_load() est défini sur true.
REQUIS : l'état est kLoadApproved lorsqu'il est appelé. Sinon, DCHECK échoue, passe à l'état kError et appelle 'options_.error_callback'.
ChargeApprouvé
Status LoadApproved()
Transitions vers kLoadApproved.
REQUIS : l'état est kLoadRequested lorsqu'il est appelé. Sinon, DCHECK échoue, passe à l'état kError et appelle 'options_.error_callback'.
ChargerDemandé
Status LoadRequested()
Fait passer l'état du harnais à kLoadRequested si son état actuel est kNew.
Le test et le changement se fait transactionnellement, cette méthode peut être utilisée pour faire en sorte que tout au plus une charge () demande peut se poursuivre.
ChargeurHarnais
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, const Options & options )
ChargeurHarnais
LoaderHarness( const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options )
Constructeur pour créer un harnais avec un état supplémentaire, dont un gestionnaire a besoin.
DémarrerQuiescing
Status StartQuiescing()
Fait passer l'état à kQuiescing, ce qui signifie que nous aimerions ne plus donner de descripteurs à ce serveur.
REQUIS : l'état est kUnloadRequested lorsqu'il est appelé. Sinon, DCHECK échoue, passe à l'état kError et appelle 'options_.error_callback'.
Décharger
Status Unload()
Transitions à kUnloading, les délégués à diffusables :: Unload (), puis la transition vers kDisabled quand Unload () est fait.
REQUIS : l'état est kQuiesced lorsqu'il est appelé. Sinon, DCHECK échoue, passe à l'état kError et appelle 'options_.error_callback'.
Déchargement demandé
Status UnloadRequested()
Fait passer l'état du harnais à kUnloadRequested si son état actuel est kReady.
Le test et le changement se fait transactionnellement, cette méthode peut être utilisée pour faire en sorte que tout au plus une charge () demande peut se poursuivre.
état_supplémentaire
T * additional_state()
Obtient l'état supplémentaire.
Renvoie nullptr si le type ne correspond pas ou s'il n'a pas été défini.
cancel_load_retry
bool cancel_load_retry()
identifiant
ServableId id() const
Renvoie l'identifiant du Servable sous-jacent.
chargeur
Loader * loader() const
Renvoie un pointeur vers le chargeur encapsulé.
La propriété reste avec cette classe.
loader_state_snapshot
ServableStateSnapshot< T > loader_state_snapshot()
Renvoie l'instantané de l'état global actuel du Servable sous-jacent.
loader_state_snapshot
ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const
set_cancel_load_retry
void set_cancel_load_retry( bool value )
Annule la nouvelle tentative de chargement du serveur.
Il est préférable de l' effort, et ne préempte pas Load () qui est déjà le cas, les appels que ultérieurs.
Si les relances sont annulées, l'diffusable passe dans un état dépendant de la dernière charge () a appelé à ce sujet . Si la dernière charge () a réussi, il sera dans l' état kReady, sinon dans kError.
statut
Status status()
Si quelque chose s'est mal passé avec cette servable.
Si l'état est kError, ce ne sera pas OK. Sinon, l'erreur pourrait être quelque chose qui a eu lieu dans une source ou SourceAdapter , dans le chargeur , dans le Gestionnaire , ou ailleurs. Toutes les erreurs relatives à la servable sont signalées ici, quelle que soit leur origine.
~ChargeurHarnais
~LoaderHarness()
Légal pour détruire si l'état actuel est l'un des kNew, kDisabled ou kError.
Le contrôle échoue en cas de violation.
Fonctions statiques publiques
StateDebugString
string StateDebugString( State state )