przepływ tensorowy:: porcja:: Uprząż ładowarki

#include <loader_harness.h>

LoaderHarness jest widget z Menedżera zastosowań trzymać się i rozmowa do ładowarki , gdy to jest jej właścicielem.

Streszczenie

Śledzi całkowitą państwowe o Servable takie, że menedżer może określić, które państwo przejścia, aby w jakich godzinach.

Implementacja menedżera może również dodać dodatkowy stan do każdej wiązki. Na przykład menedżer może umieścić tutaj metadane listy ACL lub cyklu życia. Własność utrzymuje uprząż.

Ta klasa jest bezpieczna wątkowo.

Konstruktory i destruktory

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)
Konstruktor do stworzenia uprzęży z dodatkowym stanem, którego potrzebuje manager.
~LoaderHarness ()
Dozwolone jest zniszczenie, jeśli bieżący stan jest jednym z kNew, kDisabled lub kError.

Typy publiczne

State {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
wyliczenie
Stan servable bazowych, z perspektywy LoaderHarness oraz do celów komunikacji pomiędzy nim i menedżera .

Funkcje publiczne

DoneQuiescing ()
Status
Zmienia stan na kQuiesced, co oznacza, że ​​w interfejsie użytkownika nie ma już aktywnych uchwytów do tego serwowalnego.
Error (const Status & status)
void
Zmienia stan na kError i wywołuje 'options_.error_callback'.
Load ()
Status
Przejścia do kLoading delegaci do Servable :: load (), a następnie przejścia albo kReady jeśli load () się powiedzie, lub kError (i options_ powołuje.
LoadApproved ()
Status
Przejścia do kLoadApproved.
LoadRequested ()
Status
Zmienia stan wiązki na kLoadRequested, jeśli jej bieżący stan to kNew.
StartQuiescing ()
Status
Przełącza stan na kQuiescing, co oznacza, że ​​nie chcielibyśmy udostępniać więcej uchwytów temu serwowalnemu.
Unload ()
Status
Przejścia do kUnloading delegaci do Servable :: rozładować (), a następnie przejść do kDisabled gdy Unload () jest wykonywana.
UnloadRequested ()
Status
Zmienia stan wiązki na kUnloadRequested, jeśli jej bieżący stan to kReady.
additional_state ()
T *
Pobiera dodatkowy stan.
cancel_load_retry ()
bool
id () const
ServableId
Zwraca identyfikator podstawowego elementu udostępnianego.
loader () const
Zwraca wskaźnik do opakowanego modułu ładującego.
loader_state_snapshot ()
ServableStateSnapshot< T >
Zwraca bieżącą migawkę stanu ogólnego podstawowego elementu udostępnianego.
loader_state_snapshot () const
ServableStateSnapshot< std::nullptr_t >
set_cancel_load_retry (bool value)
void
Anuluje ponawianie próby załadowania elementu do wyświetlenia.
state ()
Zwraca bieżący stan podstawowego elementu udostępnianego.
status ()
Status
Czy coś poszło nie tak z tym serwowalnym.

Publiczne funkcje statyczne

StateDebugString ( State state)
string

Struktury

tensorflow :: służąc :: LoaderHarness :: Opcje

Opcje , aby skonfigurować LoaderHarness .

Typy publiczne

Państwo

 State

Stan servable bazowych, z perspektywy LoaderHarness oraz do celów komunikacji pomiędzy nim i menedżera .

Nie jest to odpowiednik semantycznych stanów serwowalnych w servable_state.h.

Poprawne przejścia: kNew>kLoading>kReady>kQuiescing>kQuiesced>kUnloading>kDisabled oraz: any_state>kError.

Nieruchomości
kDisabled

'ładowarka _-> Unload () ' zostało zakończone.

kError

Wystąpił błąd, albo podczas „ładowarka _-> load () ” lub na zewnątrz uprzęży (i został zgłoszony do uprzęży za pomocą wywołania błędu () ).

kLoadApproved

Serwowalny element został zatwierdzony do wczytania, np.

przeznaczono na to środki.

kLoadRequested

Menedżer został poproszony o załadowanie tego elementu do wyświetlenia.

kLoading

'ładowarka _-> load () ' została wywołana.

kNew

Stan początkowy.

kQuiesced

Element do wyświetlenia został wyłączony do wyświetlania.

kQuiescing

To, co można wyświetlać, stanie się niedostępne do serwowania.

kReady

'ładowarka _-> load () ' udało.

kUnloadRequested

Menedżer został poproszony o usunięcie tego elementu do wyświetlenia.

kUnloading

'ładowarka _-> Unload () ' została wywołana.

Funkcje publiczne

GotoweWyciszenie

Status DoneQuiescing()

Zmienia stan na kQuiesced, co oznacza, że ​​w interfejsie użytkownika nie ma już aktywnych uchwytów do tego serwowalnego.

W tym momencie możemy rozładować ten obiekt.

WYMAGANIA: Stan jest kQuiescing po wywołaniu. W przeciwnym razie DCHECK-nie powiedzie się, przechodzi do stanu kError i wywołuje 'options_.error_callback'.

Błąd

void Error(
  const Status & status
)

Zmienia stan na kError i wywołuje 'options_.error_callback'.

Obciążenie

Status Load()

Przejścia do kLoading delegaci do Servable :: load (), a następnie przejścia albo kReady jeśli load () się powiedzie, lub kError (i options_ powołuje.

error_callback ') jeśli load () nie powiedzie się. Ta rozmowa może zająć dużo czasu.

Ponawiamy próbę Servable::Load() zgodnie z opcjami ustawionymi podczas konstruowania tej klasy. Przerywamy ponawianie próby i poddajemy się, jeśli 1. osiągnęliśmy max_num_load_retries lub 2. jeśli cancel_load() jest ustawione na true.

WYMAGA: Po wywołaniu stan jest kLoadApproved. W przeciwnym razie DCHECK-nie powiedzie się, przechodzi do stanu kError i wywołuje 'options_.error_callback'.

Ładowanie zatwierdzone

Status LoadApproved()

Przejścia do kLoadApproved.

WYMAGANIA: Stan to kLoadRequested po wywołaniu. W przeciwnym razie DCHECK-nie powiedzie się, przechodzi do stanu kError i wywołuje 'options_.error_callback'.

Żądanie obciążenia

Status LoadRequested()

Zmienia stan wiązki na kLoadRequested, jeśli jej bieżący stan to kNew.

Test i-transakcyjnie zmiana jest wykonywana, więc sposób ten może być stosowany w celu zapewnienia, że co najwyżej jeden obciążenia (), żądanie może być kontynuowana.

Uprząż ładowarki

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  const Options & options
)

Uprząż ładowarki

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  std::unique_ptr< T > additional_state,
  const Options & options
)

Konstruktor do stworzenia uprzęży z dodatkowym stanem, którego potrzebuje manager.

Rozpocznij Quieting

Status StartQuiescing()

Przełącza stan na kQuiescing, co oznacza, że ​​nie chcielibyśmy udostępniać więcej uchwytów temu serwowalnemu.

WYMAGANIA: Stan to kUnloadRequested po wywołaniu. W przeciwnym razie DCHECK-nie powiedzie się, przechodzi do stanu kError i wywołuje 'options_.error_callback'.

Rozładować

Status Unload()

Przejścia do kUnloading delegaci do Servable :: rozładować (), a następnie przejść do kDisabled gdy Unload () jest wykonywana.

WYMAGANIA: Stan jest kQuiesced po wywołaniu. W przeciwnym razie DCHECK-nie powiedzie się, przechodzi do stanu kError i wywołuje 'options_.error_callback'.

Żądanie wyładowania

Status UnloadRequested()

Zmienia stan wiązki na kUnloadRequested, jeśli jej bieżący stan to kReady.

Test i-transakcyjnie zmiana jest wykonywana, więc sposób ten może być stosowany w celu zapewnienia, że co najwyżej jeden obciążenia (), żądanie może być kontynuowana.

dodatkowy_stan

T * additional_state()

Pobiera dodatkowy stan.

Zwraca nullptr, jeśli typ jest niezgodny lub nie został ustawiony.

cancel_load_retry

bool cancel_load_retry()

ID

ServableId id() const 

Zwraca identyfikator podstawowego elementu udostępnianego.

ładowarka

Loader * loader() const 

Zwraca wskaźnik do opakowanego modułu ładującego.

Własność pozostaje w tej klasie.

loader_state_snapshot

ServableStateSnapshot< T > loader_state_snapshot()

Zwraca bieżącą migawkę stanu ogólnego podstawowego elementu udostępnianego.

loader_state_snapshot

ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const 

set_cancel_load_retry

void set_cancel_load_retry(
  bool value
)

Anuluje ponawianie próby załadowania elementu do wyświetlenia.

To jest best-effort, a nie wywłaszczyć z load () , która jest już dzieje, tylko kolejnych połączeń.

Jeśli prób są anulowane, servable przechodzi w stan zależny od ostatniej load () o nazwie na nim. Jeżeli ostatni load () zakończy się sukcesem, będzie to w państwowej kReady, jeszcze w kError.

Państwo

State state()

Zwraca bieżący stan podstawowego elementu udostępnianego.

status

Status status()

Czy coś poszło nie tak z tym serwowalnym.

Jeśli stan to kError, to nie będzie OK. Jeśli nie jest OK, błąd może być coś, co miało miejsce w Źródło lub SourceAdapter w Loader , w Menedżerze , czy gdzie indziej. W tym miejscu są zgłaszane wszystkie błędy dotyczące elementu udostępnianego, niezależnie od ich pochodzenia.

~Uprząż ładowarki

 ~LoaderHarness()

Dozwolone jest zniszczenie, jeśli bieżący stan jest jednym z kNew, kDisabled lub kError.

Sprawdzanie nie powiedzie się, jeśli zostanie naruszone.

Publiczne funkcje statyczne

StateDebugCiąg

string StateDebugString(
  State state
)