dòng chảy :: phục vụ :: LoaderHarness
#include <loader_harness.h>
LoaderHarness là một widget quản lý sử dụng để giữ trên đến và nói chuyện với một Loader trong khi nó sở hữu nó.
Bản tóm tắt
Nó theo dõi tình trạng tổng thể của một thể phân phát như vậy mà quản lý có thể xác định trạng thái chuyển tiếp để làm vào những gì lần.
Việc triển khai trình quản lý cũng có thể thêm một số trạng thái bổ sung với mỗi bộ khai thác. Ví dụ: một người quản lý có thể đặt ACL hoặc siêu dữ liệu vòng đời ở đây. Quyền sở hữu được duy trì bởi dây nịt.
Lớp này an toàn theo luồng.
Người xây dựng và Người phá hủy | |
---|---|
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 để tạo một bộ khai thác có trạng thái bổ sung, mà người quản lý cần. | |
~LoaderHarness () Hợp pháp để hủy iff trạng thái hiện tại là một trong kNew, kDisabled hoặc kError. |
Các loại công khai | |
---|---|
State { | enum Nhà nước của thể phân phát cơ bản, từ quan điểm của các LoaderHarness và với mục đích giao tiếp giữa nó và một quản lý . |
Chức năng công cộng | |
---|---|
DoneQuiescing () | Status Chuyển trạng thái thành kQuiesced, có nghĩa là không còn xử lý trực tiếp nào nữa cho khả năng phục vụ này trong giao diện người dùng. |
Error (const Status & status) | void Chuyển trạng thái thành kError và gọi 'options_.error_callback'. |
Load () | Status Chuyển tiếp để kLoading, các đại biểu để thể phân phát :: Load (), sau đó chuyển tiếp hoặc để kReady nếu Load () thành công, hoặc để kError (và options_ gọi'. |
LoadApproved () | Status Chuyển đổi sang kLoadApproved. |
LoadRequested () | Status Chuyển trạng thái của khai thác thành kLoadRequested iff trạng thái hiện tại của nó là kNew. |
StartQuiescing () | Status Chuyển trạng thái thành kQuiescing, có nghĩa là chúng tôi không muốn cung cấp thêm bất kỳ xử lý nào cho dịch vụ này. |
Unload () | Status Chuyển tiếp để kUnloading, các đại biểu để thể phân phát :: Unload (), sau đó chuyển tiếp đến kDisabled khi Unload () được thực hiện. |
UnloadRequested () | Status Chuyển trạng thái của bộ khai thác thành kUnloadRequested iff trạng thái hiện tại của nó là kReady. |
additional_state () | T * Có được trạng thái bổ sung. |
cancel_load_retry () | bool |
id () const | ServableId Trả về mã định danh của Có thể phục vụ bên dưới. |
loader () const | Loader * Trả về một con trỏ cho bộ tải được bao bọc. |
loader_state_snapshot () | ServableStateSnapshot< T > Trả về ảnh chụp nhanh trạng thái tổng thể hiện tại của Có thể phục vụ bên dưới. |
loader_state_snapshot () const | ServableStateSnapshot< std::nullptr_t > |
set_cancel_load_retry (bool value) | void Hủy thử lại tải của dịch vụ. |
state () | Trả về trạng thái hiện tại của Có thể phục vụ bên dưới. |
status () | Status Cho dù bất cứ điều gì đã xảy ra với dịch vụ này. |
Các chức năng tĩnh công khai | |
---|---|
StateDebugString ( State state) | string |
Cấu trúc | |
---|---|
tensorflow :: phục vụ :: LoaderHarness :: Tùy chọn | Tùy chọn để cấu hình một LoaderHarness . |
Các loại công khai
Trạng thái
State
Nhà nước của thể phân phát cơ bản, từ quan điểm của các LoaderHarness và với mục đích giao tiếp giữa nó và một quản lý .
Không tương đương với các trạng thái có thể phục vụ theo ngữ nghĩa trong servable_state.h.
Các chuyển đổi hợp lệ: kNew> kLoading> kReady> kQuiescing> kQuiesced> kUnloading> kDisabled cũng như: any_state> kError.
Tính chất | |
---|---|
kDisabled | 'nạp _-> Unload () ' đã kết thúc. |
kError | Đã xảy ra lỗi, hoặc trong quá trình 'nạp _-> Load () ' hoặc bên ngoài khai thác (và đã được báo cáo đến khai thác thông qua một cuộc gọi đến Lỗi () ). |
kLoadApproved | Dịch vụ đã được phê duyệt để tải, ví dụ: nguồn lực đã được dành riêng cho nó. |
kLoadRequested | Người quản lý đã được yêu cầu tải dịch vụ này. |
kLoading | 'nạp _-> Load () ' đã được gọi. |
kNew | Trạng thái ban đầu. |
kQuiesced | Dịch vụ đã được làm cho không có sẵn để phục vụ. |
kQuiescing | Dịch vụ sẽ không có sẵn để phục vụ. |
kReady | 'nạp _-> Load () ' đã thành công. |
kUnloadRequested | Người quản lý đã được yêu cầu dỡ bỏ dịch vụ này. |
kUnloading | 'nạp _-> Unload () ' đã được gọi. |
Chức năng công cộng
DoneQuiescing
Status DoneQuiescing()
Chuyển trạng thái thành kQuiesced, có nghĩa là không còn xử lý trực tiếp nào nữa cho khả năng phục vụ này trong giao diện người dùng.
Tại thời điểm này, chúng ta có thể dỡ bỏ đối tượng này.
YÊU CẦU: Trạng thái là kQuiescing khi được gọi. Nếu không, DCHECK-fail, chuyển sang trạng thái kError và gọi 'options_.error_callback'.
Lỗi
void Error( const Status & status )
Chuyển trạng thái thành kError và gọi 'options_.error_callback'.
Trọng tải
Status Load()
Chuyển tiếp để kLoading, các đại biểu để thể phân phát :: Load (), sau đó chuyển tiếp hoặc để kReady nếu Load () thành công, hoặc để kError (và options_ gọi'.
error_callback ') nếu Load () thất bại. Cuộc gọi này có thể mất nhiều thời gian.
Chúng tôi thử lại Servable :: Load () theo các tùy chọn được đặt trong quá trình xây dựng lớp này. Chúng tôi ngừng thử lại và từ bỏ nếu 1. chúng tôi đã đạt đến max_num_load_retries hoặc, 2. nếu hủy_load () được đặt thành true.
YÊU CẦU: Trạng thái là kLoadApproved khi được gọi. Nếu không, DCHECK-fail, chuyển sang trạng thái kError và gọi 'options_.error_callback'.
LoadApproved
Status LoadApproved()
Chuyển đổi sang kLoadApproved.
YÊU CẦU: Trạng thái là kLoadRequested khi được gọi. Nếu không, DCHECK-fail, chuyển sang trạng thái kError và gọi 'options_.error_callback'.
LoadRequested
Status LoadRequested()
Chuyển trạng thái của khai thác thành kLoadRequested iff trạng thái hiện tại của nó là kNew.
Các thử nghiệm và thay đổi được thực hiện transactionally, vì vậy phương pháp này có thể được sử dụng để đảm bảo rằng nhiều nhất là một Load () yêu cầu có thể tiến hành.
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 )
Constructor để tạo một bộ khai thác có trạng thái bổ sung, mà người quản lý cần.
StartQuiescing
Status StartQuiescing()
Chuyển trạng thái thành kQuiescing, có nghĩa là chúng tôi không muốn cung cấp thêm bất kỳ xử lý nào cho dịch vụ này.
YÊU CẦU: Trạng thái là kUnloadRequested khi được gọi. Nếu không, DCHECK-fail, chuyển sang trạng thái kError và gọi 'options_.error_callback'.
Dỡ hàng
Status Unload()
Chuyển tiếp để kUnloading, các đại biểu để thể phân phát :: Unload (), sau đó chuyển tiếp đến kDisabled khi Unload () được thực hiện.
YÊU CẦU: Trạng thái là kQuiesced khi được gọi. Nếu không, DCHECK-fail, chuyển sang trạng thái kError và gọi 'options_.error_callback'.
UnloadRequested
Status UnloadRequested()
Chuyển trạng thái của bộ khai thác thành kUnloadRequested iff trạng thái hiện tại của nó là kReady.
Các thử nghiệm và thay đổi được thực hiện transactionally, vì vậy phương pháp này có thể được sử dụng để đảm bảo rằng nhiều nhất là một Load () yêu cầu có thể tiến hành.
bổ sung_state
T * additional_state()
Có được trạng thái bổ sung.
Trả về nullptr nếu kiểu không khớp hoặc nếu kiểu đó không được đặt.
cel_load_retry
bool cancel_load_retry()
Tôi
ServableId id() const
Trả về mã định danh của Có thể phục vụ bên dưới.
người nạp
Loader * loader() const
Trả về một con trỏ cho bộ tải được bao bọc.
Quyền sở hữu vẫn thuộc về lớp này.
loader_state_snapshot
ServableStateSnapshot< T > loader_state_snapshot()
Trả về ảnh chụp nhanh trạng thái tổng thể hiện tại của Có thể phục vụ bên dưới.
loader_state_snapshot
ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const
set_cancel_load_retry
void set_cancel_load_retry( bool value )
Hủy thử lại tải của dịch vụ.
Đây là nỗ lực tốt nhất, và không Ðể tránh một Load () mà đã xảy ra, thực hiện cuộc gọi tiếp theo.
Nếu lần thử lại bị huỷ bỏ, các thể phân phát đi vào trạng thái phụ thuộc vào người cuối cùng Load () được gọi vào nó. Nếu cuối cùng Load () đã thành công, nó sẽ được ở trạng thái kReady, khác trong kError.
trạng thái
Status status()
Cho dù bất cứ điều gì đã xảy ra với dịch vụ này.
Nếu trạng thái là kError, điều này sẽ không OK. Nếu không OK, lỗi có thể là một cái gì đó đã xảy ra trong một Nguồn hoặc SourceAdapter , trong Loader , trong quản lý , hoặc ở nơi khác. Tất cả các lỗi liên quan đến dịch vụ được báo cáo ở đây, bất kể nguồn gốc.
~ LoaderHarness
~LoaderHarness()
Hợp pháp để hủy iff trạng thái hiện tại là một trong kNew, kDisabled hoặc kError.
Kiểm tra không thành công nếu vi phạm.
Các chức năng tĩnh công khai
StateDebugString
string StateDebugString( State state )