mFrame
載入中...
搜尋中...
無符合項目
PFuture.h
1
7#ifndef MFRAME_1C1490D6_E331_4C8B_A1CC_49D7A5549037
8#define MFRAME_1C1490D6_E331_4C8B_A1CC_49D7A5549037
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../lang/Object.h"
18#include "./../sys/Thread.h"
19#include "./../util/Future.h"
20
21/* ***************************************************************************************
22 * Namespace
23 */
24namespace ufm::util {
25 class PFuture;
26} // namespace ufm::util
27
28/* ***************************************************************************************
29 * Class/Interface/Struct/Enum
30 */
31
42 /* *************************************************************************************
43 * Variable
44 */
45 private:
46 int vResult;
48 ufm::sys::Thread* vThread;
49
50 /* *************************************************************************************
51 * Abstract Method
52 */
53
54 /* *************************************************************************************
55 * Construct Method
56 */
57 public:
63 PFuture(void);
64
70 virtual ~PFuture(void) override;
71
72 /* *************************************************************************************
73 * Operator Method
74 */
75 public:
84 template <typename E>
85 inline operator const Future<E>&(void) const {
86 const Future<>* src = this;
87 return *reinterpret_cast<const Future<E>*>(src);
88 }
89
98 template <typename E>
99 inline operator Future<E>&(void) {
100 Future<>* src = this;
101 return *reinterpret_cast<Future<E>*>(src);
102 }
103
104 /* *************************************************************************************
105 * Override Method - ufm::util::Future<>
106 */
107 public:
108 virtual bool get(int& result, int timeout) override;
109
110 virtual bool setWait(void) override;
111
112 virtual bool waitDone(int timeout) override;
113
114 virtual void clear(void) override;
115
116 virtual ufm::util::FutureStatus getStatus(void) override;
117
118 /* *************************************************************************************
119 * Override Method - ufm::util::Future<>
120 */
121 public:
122 virtual void completed(int& result, void* attachment) override;
123
124 virtual void failed(void* attachment) override;
125
126 /* *************************************************************************************
127 * Public Method
128 */
129
130 /* *************************************************************************************
131 * Protected Method
132 */
133 protected:
139 void setCompleted(void);
140
146 void setFailed(void);
147
148 /* *************************************************************************************
149 * Private Method
150 */
151
152 /* *************************************************************************************
153 * Static Variable
154 */
155
156 /* *************************************************************************************
157 * Static Method
158 */
159};
160
161/* ***************************************************************************************
162 * End of file
163 */
164
165#endif /* MFRAME_1C1490D6_E331_4C8B_A1CC_49D7A5549037 */
物件基底類別
Definition Object.h:63
執行緒類別
Definition Thread.h:49
可處理 Future 的類別
Definition PFuture.h:41
virtual bool waitDone(int timeout) override
等待非同步操作完成
virtual void completed(int &result, void *attachment) override
當非同步操作成功完成時呼叫
PFuture(void)
構造一個新的 PFuture 物件
virtual ~PFuture(void) override
銷毀 PFuture 物件
void setFailed(void)
將 Future 標記為失敗狀態
virtual ufm::util::FutureStatus getStatus(void) override
獲取當前Future的狀態
virtual void failed(void *attachment) override
當非同步操作失敗時呼叫
virtual bool setWait(void) override
設置為等待狀態
virtual void clear(void) override
清除當前狀態和結果
void setCompleted(void)
將 Future 標記為已完成狀態
virtual bool get(int &result, int timeout) override
獲取非同步操作的結果
Definition Iterable.h:28
FutureStatus
Definition FutureStatus.h:38
[Interface] 非同步操作結果介面
Definition Future.h:43