STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Concurrency::details::_ThenImplOptions Struct Reference

#include <ppltasks.h>

Public Member Functions

 _ThenImplOptions (_CancellationTokenState *_Token_state, const task_continuation_context *_Continuation_context, scheduler_ptr _PScheduler, _TaskCreationCallstack _Creation_stack, _TaskInliningMode_t _Inlining_mode=_NoInline)
 

Static Public Member Functions

static _ThenImplOptions _CreateOptions (const task_options &_Task_Options, const task_continuation_context &_ContinuationContext, const scheduler_ptr &impl_scheduler)
 

Public Attributes

_CancellationTokenState_PTokenState
 
scheduler_ptr _Scheduler
 
_TaskCreationCallstack _CreationStack
 
_TaskInliningMode_t _InliningMode
 
task_continuation_context_PContinuationContext
 

Detailed Description

_ThenImplOptions contains state variables used when calling the internal _ThenImpl function. This is a non-templated object that was introduced to reduce the generated code size of PPLTasks continuations.

Constructor & Destructor Documentation

Concurrency::details::_ThenImplOptions::_ThenImplOptions ( _CancellationTokenState _Token_state,
const task_continuation_context _Continuation_context,
scheduler_ptr  _PScheduler,
_TaskCreationCallstack  _Creation_stack,
_TaskInliningMode_t  _Inlining_mode = _NoInline 
)
inline
1240  :
1241  _PTokenState(_Token_state), _PContinuationContext(const_cast<task_continuation_context*>(_Continuation_context)), _Scheduler(_PScheduler),
1242  _CreationStack(_Creation_stack), _InliningMode(_Inlining_mode) {}
task_continuation_context * _PContinuationContext
Definition: ppltasks.h:1248
_CancellationTokenState * _PTokenState
Definition: ppltasks.h:1244
_TaskInliningMode_t _InliningMode
Definition: ppltasks.h:1247
_TaskCreationCallstack _CreationStack
Definition: ppltasks.h:1246
scheduler_ptr _Scheduler
Definition: ppltasks.h:1245

Member Function Documentation

static _ThenImplOptions Concurrency::details::_ThenImplOptions::_CreateOptions ( const task_options _Task_Options,
const task_continuation_context _ContinuationContext,
const scheduler_ptr impl_scheduler 
)
inlinestatic
1252  {
1253  _CancellationTokenState *_TokenState = _Task_Options.has_cancellation_token() ?
1254  _Task_Options.get_cancellation_token()._GetImplValue() : nullptr;
1255  auto _Scheduler = _Task_Options.has_scheduler() ? _Task_Options.get_scheduler() : impl_scheduler;
1256  auto _InliningMode = _Task_Options.get_continuation_context()._ForceInline() ? details::_ForceInline : details::_NoInline;
1257 
1258  auto _Task_Options_Int = details::_get_internal_task_options(_Task_Options);
1259  auto _CreationStack = _Task_Options_Int._M_hasPresetCreationCallstack ?
1260  _Task_Options_Int._M_presetCreationCallstack : details::_TaskCreationCallstack();
1261 
1262  return _ThenImplOptions(_TokenState, &_ContinuationContext, _Scheduler, _CreationStack,_InliningMode);
1263  }
_ThenImplOptions(_CancellationTokenState *_Token_state, const task_continuation_context *_Continuation_context, scheduler_ptr _PScheduler, _TaskCreationCallstack _Creation_stack, _TaskInliningMode_t _Inlining_mode=_NoInline)
Definition: ppltasks.h:1239
Definition: pplinterface.h:228
_Internal_task_options & _get_internal_task_options(task_options &_Options)
Definition: ppltasks.h:1266
Definition: pplinterface.h:224
_TaskInliningMode_t _InliningMode
Definition: ppltasks.h:1247
_TaskCreationCallstack _CreationStack
Definition: ppltasks.h:1246
scheduler_ptr _Scheduler
Definition: ppltasks.h:1245

Member Data Documentation

_TaskCreationCallstack Concurrency::details::_ThenImplOptions::_CreationStack
_TaskInliningMode_t Concurrency::details::_ThenImplOptions::_InliningMode
task_continuation_context* Concurrency::details::_ThenImplOptions::_PContinuationContext
_CancellationTokenState* Concurrency::details::_ThenImplOptions::_PTokenState
scheduler_ptr Concurrency::details::_ThenImplOptions::_Scheduler

The documentation for this struct was generated from the following file: