![]() |
mFrame
|
[Class] 可處理的 Future 實作類別 更多...
#include <PFuture.h>
公開方法(Public Methods) | |
| PFuture (void) | |
| 構造一個新的 PFuture 物件 | |
| virtual | ~PFuture (void) override |
| 銷毀 PFuture 物件 | |
| template<typename E > | |
| operator const Future< E > & (void) const | |
| 將 PFuture 轉換為 Future<E> 的常量引用 | |
| template<typename E > | |
| operator Future< E > & (void) | |
| 將 PFuture 轉換為 Future<E> 的引用 | |
| virtual bool | get (int &result, int timeout) override |
| 獲取異步操作的結果 | |
| virtual bool | setWait (void) override |
| 將 Future 設置為等待狀態 | |
| virtual bool | waitDone (int timeout) override |
| 等待異步操作完成 | |
| virtual void | clear (void) override |
| 清除 Future 的狀態 | |
| virtual ufm::util::FutureStatus | getStatus (void) override |
| 獲取當前 Future 的狀態 | |
| virtual void | completed (int &result, void *attachment) override |
| 處理異步操作完成的回調 | |
| virtual void | failed (void *attachment) override |
| 處理異步操作失敗的回調 | |
| bool | isBusy (void) const |
| 檢查 Future 是否處於忙碌狀態 | |
| int | syncWrite (ufm::io::OutputStream &outputStream, ufm::lang::Readable &readable, int timeoutMs=5000) |
| 執行帶超時的同步寫入操作 | |
公開方法(Public Methods) 繼承自 ufm::lang::Object | |
| void * | operator new (size_t n) |
| 使用運算子 new 分配記憶體 | |
| void * | operator new (size_t n, void *p) |
| 在指定記憶體上調用運算子 new | |
| virtual ufm::lang::Object & | getObject (void) override |
| 取得對應的 Object 物件 | |
| void | delay (int milliseconds) const |
| 延遲指定的毫秒數進行執行緒等待 | |
| bool | equals (Object *object) const |
| 判斷與另一物件是否為相同參照(指標型態比較) | |
| bool | equals (Object &object) const |
| 判斷與另一物件是否為相同參照(參照型態比較) | |
| void | wait (void) const |
| 使當前線程等待直到被通知 | |
| bool | wait (int timeout) const |
| 等待通知或超時 | |
| bool | yield (void) const |
| 讓執行緒讓渡控制權給同優先權的下一個執行緒 | |
| int | lock (void) const |
| 核心鎖定,鎖定期間禁止線程切換 | |
| int | unlock (void) const |
| 核心解鎖 | |
| ufm::sys::Thread * | currentThread (void) const |
| 取得當前執行緒指標 | |
| virtual int | hashcode (void) const |
| 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
公開方法(Public Methods) 繼承自 ufm::lang::Interface | |
| virtual | ~Interface (void)=default |
| 虛擬析構函式 | |
公開方法(Public Methods) 繼承自 ufm::util::Future< int > | |
| bool | get (int &result) |
| 獲取非同步操作結果,無超時限制 | |
| bool | waitDone (void) |
| 等待非同步操作完成,無超時限制 | |
| bool | isDone (void) |
| 檢查操作是否已完成(無論成功或失敗) | |
| bool | isCompleted (void) |
| 檢查操作是否已成功完成 | |
| bool | isFailed (void) |
| 檢查操作是否已失敗 | |
| bool | isIdle (void) |
| 檢查操作是否處於閒置狀態 | |
| bool | isBusy (void) |
| 檢查操作是否處於忙碌(等待)狀態 | |
保護方法(Protected Methods) | |
| void | setCompleted (void) |
| 將 Future 標記為已完成狀態 | |
| void | setFailed (void) |
| 將 Future 標記為失敗狀態 | |
[Class] 可處理的 Future 實作類別
PFuture 提供了異步操作結果處理的具體實作,繼承自 Future<int> 介面。 它管理異步操作的狀態、結果值和執行緒,支援完成回呼和失敗處理機制。
此類別實作了 CompletionHandler<int> 介面,可以作為異步操作的回呼處理器使用, 同時提供等待、超時和狀態查詢等功能,適用於 I/O 操作和其他異步任務的結果管理。
| ufm::util::PFuture::PFuture | ( | void | ) |
|
overridevirtual |
銷毀 PFuture 物件
釋放相關資源並執行清理操作,不會影響關聯的執行緒
|
overridevirtual |
|
overridevirtual |
處理異步操作完成的回調
當異步操作成功完成時,此方法會被調用。 它會設置結果值並更新 Future 的狀態為 COMPLETED。
| result | 操作的結果值 |
| attachment | 附加數據(可為 nullptr) |
|
overridevirtual |
處理異步操作失敗的回調
當異步操作失敗時,此方法會被調用。 它會更新 Future 的狀態為 FAILURE,並進行相應的清理。
| attachment | 附加數據(可為 nullptr) |
|
overridevirtual |
獲取異步操作的結果
嘗試獲取 Future 的執行結果,如果操作尚未完成,會等待指定的超時時間
| result | 用於存儲結果的引用 |
| timeout | 等待超時時間(毫秒) |
|
overridevirtual |
獲取當前 Future 的狀態
| bool ufm::util::PFuture::isBusy | ( | void | ) | const |
|
inline |
|
inline |
|
overridevirtual |
| int ufm::util::PFuture::syncWrite | ( | ufm::io::OutputStream & | outputStream, |
| ufm::lang::Readable & | readable, | ||
| int | timeoutMs = 5000 ) |
執行帶超時的同步寫入操作
提供便利方法來執行 OutputStream 的同步寫入,並等待指定時間
| outputStream | 目標輸出流 |
| readable | 要寫入的數據源 |
| timeoutMs | 等待超時時間(毫秒) |
|
overridevirtual |
等待異步操作完成
阻塞當前執行緒直到異步操作完成或達到指定的超時時間
| timeout | 等待超時時間(毫秒) |