C++ Rest SDK
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
|
The implementation of a first-class task. This structure contains the task group used to execute the task function and handles the scheduling. The _Task_impl is created as a shared_ptr member of the the public task class, so its destruction is handled automatically. More...
#include <pplxtasks.h>
Public Member Functions | |
_Task_impl (_CancellationTokenState *_Ct, scheduler_ptr _Scheduler_arg) | |
virtual bool | _CancelAndRunContinuations (bool _SynchronousCancel, bool _UserException, bool _PropagatedFromAncestor, const std::shared_ptr< _ExceptionHolder > &_ExceptionHolder_arg) |
Requests cancellation on the task and schedules continuations if the task can be transitioned to a terminal state. More... | |
void | _FinalizeAndRunContinuations (_ReturnType _Result) |
bool | _TransitionedToStarted () |
bool | _IsDone () |
_ReturnType | _GetResult () |
Public Member Functions inherited from pplx::details::_Task_impl_base | |
_Task_impl_base (_CancellationTokenState *_PTokenState, scheduler_ptr _Scheduler_arg) | |
task_status | _Wait () |
bool | _Cancel (bool _SynchronousCancel) |
bool | _CancelWithExceptionHolder (const std::shared_ptr< _ExceptionHolder > &_ExHolder, bool _PropagatedFromAncestor) |
bool | _CancelWithException (const std::exception_ptr &_Exception) |
void | _RegisterCancellation (std::weak_ptr< _Task_impl_base > _WeakPtr) |
void | _DeregisterCancellation () |
bool | _IsCreated () |
bool | _IsStarted () |
bool | _IsPendingCancel () |
bool | _IsCompleted () |
bool | _IsCanceled () |
bool | _HasUserException () |
const std::shared_ptr< _ExceptionHolder > & | _GetExceptionHolder () |
bool | _IsApartmentAware () |
void | _SetAsync (bool _Async=true) |
_TaskCreationCallstack | _GetTaskCreationCallstack () |
void | _SetTaskCreationCallstack (const _TaskCreationCallstack &_Callstack) |
void | _ScheduleTask (_UnrealizedChore_t *_PTaskHandle, _TaskInliningMode_t _InliningMode) |
Helper function to schedule the task on the Task Collection. More... | |
void | _RunContinuation (_ContinuationTaskHandleBase *_PTaskHandle) |
Function executes a continuation. This function is recorded by a parent task implementation when a continuation is created in order to execute later. More... | |
void | _ScheduleContinuationTask (_ContinuationTaskHandleBase *_PTaskHandle) |
void | _ScheduleContinuation (_ContinuationTaskHandleBase *_PTaskHandle) |
Schedule the actual continuation. This will either schedule the function on the continuation task's implementation if the task has completed or append it to a list of functions to execute when the task actually does complete. More... | |
void | _RunTaskContinuations () |
scheduler_ptr | _GetScheduler () const |
Public Attributes | |
_ResultHolder< _ReturnType > | _M_Result |
Public Attributes inherited from pplx::details::_Task_impl_base | |
volatile _TaskInternalState | _M_TaskState |
bool | _M_fFromAsync |
bool | _M_fUnwrappedTask |
std::shared_ptr< _ExceptionHolder > | _M_exceptionHolder |
::pplx::extensibility::critical_section_t | _M_ContinuationsCritSec |
_CancellationTokenState * | _M_pTokenState |
_CancellationTokenRegistration * | _M_pRegistration |
_ContinuationList | _M_Continuations |
::pplx::details::_TaskCollection_t | _M_TaskCollection |
_TaskCreationCallstack | _M_pTaskCreationCallstack |
_TaskEventLogger | _M_taskEventLogger |
Additional Inherited Members | |
Public Types inherited from pplx::details::_Task_impl_base | |
enum | _TaskInternalState { _Created, _Started, _PendingCancel, _Completed, _Canceled } |
typedef _ContinuationTaskHandleBase * | _ContinuationList |
Static Public Member Functions inherited from pplx::details::_Task_impl_base | |
template<typename _ReturnType , typename _InternalReturnType > | |
static void | _AsyncInit (const typename _Task_ptr< _ReturnType >::_Type &_OuterTask, const task< _InternalReturnType > &_UnwrappedTask) |
The implementation of a first-class task. This structure contains the task group used to execute the task function and handles the scheduling. The _Task_impl is created as a shared_ptr member of the the public task class, so its destruction is handled automatically.
_ReturnType | The result type of this task. |
|
inlinevirtual |
Requests cancellation on the task and schedules continuations if the task can be transitioned to a terminal state.
_SynchronousCancel | Set to true if the cancel takes place as a result of the task body encountering an exception, or because an ancestor or task_completion_event the task was registered with were canceled with an exception. A synchronous cancel is one that assures the task could not be running on a different thread at the time the cancellation is in progress. An asynchronous cancel is one where the thread performing the cancel has no control over the thread that could be executing the task, that is the task could execute concurrently while the cancellation is in progress. |
_UserException | Whether an exception other than the internal runtime cancellation exceptions caused this cancellation. |
_PropagatedFromAncestor | Whether this exception came from an ancestor task or a task_completion_event as opposed to an exception that was encountered by the task itself. Only valid when _UserException is set to true. |
_ExHolder | The exception holder that represents the exception. Only valid when _UserException is set to true. |
Implements pplx::details::_Task_impl_base.