LeviLamina
Loading...
Searching...
No Matches
TaskQueueImpl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/comprehensive/Api.h"
7#include "mc/deps/core/threading/ITaskQueue.h"
8#include "mc/deps/core/threading/XTaskQueueDispatchMode.h"
9#include "mc/deps/core/threading/XTaskQueuePort.h"
10
11// auto generated forward declare list
12// clang-format off
14struct XTaskQueueObject;
17// clang-format on
18
19class TaskQueueImpl : public ::Api<2, ::ITaskQueue> {
20public:
21 // TaskQueueImpl inner types declare
22 // clang-format off
23 struct TerminationData;
24 struct TerminationEntry;
25 // clang-format on
26
27 // TaskQueueImpl inner types define
28 enum class TerminationLevel : int {
29 None = 0,
30 Work = 1,
31 Completion = 2,
32 };
33
35 public:
36 // member variables
37 // NOLINTBEGIN
43 // NOLINTEND
44
45 public:
46 // prevent constructor by default
47 TerminationEntry& operator=(TerminationEntry const&);
50 };
51
53 public:
54 // member variables
55 // NOLINTBEGIN
60 // NOLINTEND
61
62 public:
63 // prevent constructor by default
64 TerminationData& operator=(TerminationData const&);
67 };
68
69public:
70 // member variables
71 // NOLINTBEGIN
79 // NOLINTEND
80
81public:
82 // prevent constructor by default
83 TaskQueueImpl& operator=(TaskQueueImpl const&);
85
86public:
87 // virtual functions
88 // NOLINTBEGIN
89 // vIndex: 12
90 virtual ~TaskQueueImpl() /*override*/ = default;
91
92 // vIndex: 3
93 virtual ::XTaskQueueObject* GetHandle() /*override*/;
94
95 // vIndex: 4
96 virtual HRESULT GetPortContext(::XTaskQueuePort port, ::ITaskQueuePortContext** portContext) /*override*/;
97
98 // vIndex: 5
99 virtual HRESULT RegisterWaitHandle(
100 ::XTaskQueuePort port,
101 void* waitHandle,
102 void* callbackContext,
103 void (*callback)(void*, bool),
105 ) /*override*/;
106
107 // vIndex: 6
108 virtual void UnregisterWaitHandle(::XTaskQueueRegistrationToken token) /*override*/;
109
110 // vIndex: 7
111 virtual HRESULT RegisterSubmitCallback(
112 void* context,
113 void (*callback)(void*, ::XTaskQueueObject*, ::XTaskQueuePort),
115 ) /*override*/;
116
117 // vIndex: 8
118 virtual void UnregisterSubmitCallback(::XTaskQueueRegistrationToken token) /*override*/;
119
120 // vIndex: 9
121 virtual bool CanTerminate() /*override*/;
122
123 // vIndex: 10
124 virtual bool CanClose() /*override*/;
125
126 // vIndex: 11
127 virtual HRESULT Terminate(bool wait, void* callbackContext, void (*callback)(void*)) /*override*/;
128
129 // vIndex: 14
130 virtual void RundownObject() /*override*/;
131 // NOLINTEND
132
133public:
134 // member functions
135 // NOLINTBEGIN
136 MCNAPI long Initialize(::XTaskQueuePortObject* workPort, ::XTaskQueuePortObject* completionPort);
137
138 MCNAPI long Initialize(
139 ::XTaskQueueDispatchMode workMode,
140 ::XTaskQueueDispatchMode completionMode,
141 bool allowTermination,
142 bool allowClose
143 );
144
146 // NOLINTEND
147
148public:
149 // static functions
150 // NOLINTBEGIN
151 MCNAPI static void OnTerminationCallback(void* context);
152 // NOLINTEND
153
154public:
155 // constructor thunks
156 // NOLINTBEGIN
157 MCNAPI void* $ctor();
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163 MCNAPI ::XTaskQueueObject* $GetHandle();
164
165 MCNAPI HRESULT $GetPortContext(::XTaskQueuePort port, ::ITaskQueuePortContext** portContext);
166
167 MCNAPI HRESULT $RegisterWaitHandle(
168 ::XTaskQueuePort port,
169 void* waitHandle,
170 void* callbackContext,
171 void (*callback)(void*, bool),
173 );
174
176
178 void* context,
179 void (*callback)(void*, ::XTaskQueueObject*, ::XTaskQueuePort),
181 );
182
184
185 MCNAPI bool $CanTerminate();
186
187 MCNAPI bool $CanClose();
188
189 MCNAPI HRESULT $Terminate(bool wait, void* callbackContext, void (*callback)(void*));
190
191 MCNAPI void $RundownObject();
192 // NOLINTEND
193
194public:
195 // vftables
196 // NOLINTBEGIN
197 MCNAPI static void** $vftable();
198 // NOLINTEND
199};
Definition Api.h:6
Definition TaskQueueImpl.h:19
static MCAPI void OnTerminationCallback(void *context)
MCAPI bool $CanClose()
static MCAPI void ** $vftable()
MCAPI HRESULT $Terminate(bool wait, void *callbackContext, void(*callback)(void *))
MCAPI long Initialize(::XTaskQueueDispatchMode workMode, ::XTaskQueueDispatchMode completionMode, bool allowTermination, bool allowClose)
MCAPI::XTaskQueueObject * $GetHandle()
MCAPI void $UnregisterSubmitCallback(::XTaskQueueRegistrationToken token)
MCAPI HRESULT $GetPortContext(::XTaskQueuePort port, ::ITaskQueuePortContext **portContext)
MCAPI TaskQueueImpl()
MCAPI void * $ctor()
MCAPI HRESULT $RegisterWaitHandle(::XTaskQueuePort port, void *waitHandle, void *callbackContext, void(*callback)(void *, bool), ::XTaskQueueRegistrationToken *token)
MCAPI void $UnregisterWaitHandle(::XTaskQueueRegistrationToken token)
MCAPI HRESULT $RegisterSubmitCallback(void *context, void(*callback)(void *, ::XTaskQueueObject *, ::XTaskQueuePort), ::XTaskQueueRegistrationToken *token)
MCAPI long Initialize(::XTaskQueuePortObject *workPort, ::XTaskQueuePortObject *completionPort)
MCAPI bool $CanTerminate()
MCAPI void $RundownObject()
Definition ITaskQueuePortContext.h:16
Definition TaskQueueImpl.h:52
Definition TaskQueueImpl.h:34
Definition XTaskQueueObject.h:5
Definition XTaskQueuePortObject.h:5
Definition XTaskQueueRegistrationToken.h:5
Definition context.h:5
Definition Alias.h:14