27 template<
typename T>
friend class CYITask;
129 CYITaskBase(std::unique_ptr<CYIAbstractFuture> pFuture);
132 void ExclusiveLock()
const;
133 void ExclusiveUnlock()
const;
134 void DisconnectFromFuture();
135 bool SetCancelledNonLocking();
138 std::unique_ptr<CYIAbstractFuture> m_pOwnedFuture;
140 std::atomic<bool> m_bCancellationRequested;
141 bool m_bCancellationRequestSucceeded;
167 template <
typename ResultType =
void>
203 virtual ResultType Run() = 0;
237 bool SetFuture(std::unique_ptr<
CYIFuture<>> pFuture);
246 virtual void Run() = 0;
256 template <
typename ResultType>
294 virtual ResultType*
Run() = 0;
300 template <
typename ResultType>
312 #include "YiTask.inl"
Definition: YiMutex.h:110
virtual void CleanUpAfterCancellation()
Definition: YiTask.h:120
void RequestCancellation()
virtual ResultType Run()=0
bool IsFutureOwner() const
Definition: YiFuture.h:22
CYIMutex m_mutex
Definition: YiTask.h:120
friend class CYITask
Definition: YiTask.h:27
TASK_STATE GetState() const
bool MarkPendingExecution()
bool SetFuture(CYIFuture< ResultType > &rFuture)
Definition: YiFuture.h:218
virtual void RunAndAssignResult()=0
Executes this task and assigns its result to the associated future object, if it exists.
TASK_STATE
Definition: YiTask.h:33
bool IsCancellationRequested() const
void SetCancellationRequestSucceeded()
Definition: YiFuture.h:139
virtual bool TakeOwnershipOfFuture(std::unique_ptr< CYIAbstractFuture > pFuture)
Definition: YiFuture.h:250