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 mframe::util {
25 class PFuture;
26}
27
28/* ***************************************************************************************
29 * Class/Interface/Struct/Enum
30 */
32 public mframe::util::Future<int> {
33 /* *************************************************************************************
34 * Variable
35 */
36 private:
37 int vResult;
38 mframe::util::FutureStatus vStatus;
39 mframe::sys::Thread* vThread;
40
41 /* *************************************************************************************
42 * Abstract Method
43 */
44
45 /* *************************************************************************************
46 * Construct Method
47 */
48 public:
53 PFuture(void);
54
59 virtual ~PFuture(void) override;
60
61 /* *************************************************************************************
62 * Operator Method
63 */
64 public:
71 template <typename E>
72 inline operator const Future<E>&(void) const {
73 const Future<>* src = this;
74 return *reinterpret_cast<const Future<E>*>(src);
75 }
76
82 template <typename E>
83 inline operator Future<E>&(void) {
84 Future<>* src = this;
85 return *reinterpret_cast<Future<E>*>(src);
86 }
87
88 /* *************************************************************************************
89 * Public Method <Override> - mframe::util::Future<>
90 */
91 public:
92 virtual bool get(int& result, int timeout) override;
93
94 virtual bool setWait(void) override;
95
96 virtual bool waitDone(int timeout) override;
97
98 virtual void clear(void) override;
99
100 virtual mframe::util::FutureStatus getStatus(void) override;
101
102 /* *************************************************************************************
103 * Public Method <Override> - mframe::util::Future<>
104 */
105 public:
106 virtual void completed(int& result, void* attachment) override;
107
108 virtual void failed(void* attachment) override;
109
110 /* *************************************************************************************
111 * Public Method
112 */
113
114 /* *************************************************************************************
115 * Protected Method
116 */
117 protected:
118 void setCompleted(void);
119
120 void setFailed(void);
121
122 /* *************************************************************************************
123 * Private Method
124 */
125
126 /* *************************************************************************************
127 * Static Variable
128 */
129
130 /* *************************************************************************************
131 * Static Method
132 */
133};
134
135/* ***************************************************************************************
136 * End of file
137 */
138
139#endif /* MFRAME_1C1490D6_E331_4C8B_A1CC_49D7A5549037 */
Definition Object.h:34
Definition Thread.h:33
Definition PFuture.h:32
PFuture(void)
Construct a new object.
virtual void completed(int &result, void *attachment) override
Invoked when an operation has completed.
virtual void failed(void *attachment) override
Invoked when an operation fails.
virtual ~PFuture(void) override
Destroy the object.
Definition Array.h:22
Definition Future.h:33