LeviLamina
Loading...
Searching...
No Matches
TaskQueuePortImpl.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/ITaskQueuePort.h"
8#include "mc/deps/core/threading/LocklessQueue.h"
9#include "mc/deps/core/threading/XTaskQueueDispatchMode.h"
10
11// auto generated forward declare list
12// clang-format off
16namespace OS { struct ThreadPoolActionStatus; }
17// clang-format on
18
19class TaskQueuePortImpl : public ::Api<1, ::ITaskQueuePort> {
20public:
21 // TaskQueuePortImpl inner types declare
22 // clang-format off
23 struct QueueEntry;
24 struct TerminationEntry;
25 struct WaitRegistration;
26 // clang-format on
27
28 // TaskQueuePortImpl inner types define
30 public:
31 // member variables
32 // NOLINTBEGIN
41 // NOLINTEND
42
43 public:
44 // prevent constructor by default
45 WaitRegistration& operator=(WaitRegistration const&);
48 };
49
50 struct QueueEntry {
51 public:
52 // member variables
53 // NOLINTBEGIN
60 // NOLINTEND
61
62 public:
63 // prevent constructor by default
64 QueueEntry& operator=(QueueEntry const&);
65 QueueEntry(QueueEntry const&);
66 QueueEntry();
67 };
68
70 public:
71 // member variables
72 // NOLINTBEGIN
77 // NOLINTEND
78
79 public:
80 // prevent constructor by default
81 TerminationEntry& operator=(TerminationEntry const&);
84 };
85
86public:
87 // member variables
88 // NOLINTBEGIN
107 // NOLINTEND
108
109public:
110 // prevent constructor by default
111 TaskQueuePortImpl& operator=(TaskQueuePortImpl const&);
113
114public:
115 // virtual functions
116 // NOLINTBEGIN
117 // vIndex: 19
118 virtual ~TaskQueuePortImpl() /*override*/;
119
120 // vIndex: 3
121 virtual ::XTaskQueuePortObject* GetHandle() /*override*/;
122
123 // vIndex: 4
124 virtual HRESULT QueueItem(
125 ::ITaskQueuePortContext* portContext,
126 uint waitMs,
127 void* callbackContext,
128 void (*callback)(void*, bool)
129 ) /*override*/;
130
131 // vIndex: 5
132 virtual HRESULT RegisterWaitHandle(
133 ::ITaskQueuePortContext* portContext,
134 void* waitHandle,
135 void* callbackContext,
136 void (*callback)(void*, bool),
138 ) /*override*/;
139
140 // vIndex: 6
141 virtual void UnregisterWaitHandle(::XTaskQueueRegistrationToken token) /*override*/;
142
143 // vIndex: 7
144 virtual HRESULT PrepareTerminate(
145 ::ITaskQueuePortContext* portContext,
146 void* callbackContext,
147 void (*callback)(void*),
148 void** token
149 ) /*override*/;
150
151 // vIndex: 8
152 virtual void CancelTermination(void* token) /*override*/;
153
154 // vIndex: 9
155 virtual void Terminate(void* token) /*override*/;
156
157 // vIndex: 10
158 virtual HRESULT Attach(::ITaskQueuePortContext* portContext) /*override*/;
159
160 // vIndex: 11
161 virtual void Detach(::ITaskQueuePortContext* portContext) /*override*/;
162
163 // vIndex: 12
164 virtual bool Dispatch(::ITaskQueuePortContext* portContext, uint timeoutInMs) /*override*/;
165
166 // vIndex: 13
167 virtual bool IsEmpty() /*override*/;
168
169 // vIndex: 14
170 virtual void WaitForUnwind() /*override*/;
171
172 // vIndex: 15
173 virtual HRESULT SuspendTermination(::ITaskQueuePortContext* portContext) /*override*/;
174
175 // vIndex: 16
176 virtual void ResumeTermination(::ITaskQueuePortContext* portContext) /*override*/;
177
178 // vIndex: 17
179 virtual void SuspendPort() /*override*/;
180
181 // vIndex: 18
182 virtual void ResumePort() /*override*/;
183 // NOLINTEND
184
185public:
186 // member functions
187 // NOLINTBEGIN
188 MCNAPI bool AppendEntry(::TaskQueuePortImpl::QueueEntry const& entry, uint64 node);
189
191
192 MCNAPI void CancelPendingEntries(::ITaskQueuePortContext* portContext, bool appendToQueue);
193
195
196 MCNAPI long Initialize(::XTaskQueueDispatchMode mode);
197
199
200 MCNAPI void NotifyItemQueued();
201
203
205
207
209
210 MCNAPI bool Wait(::ITaskQueuePortContext* portContext, uint timeout);
211 // NOLINTEND
212
213public:
214 // static functions
215 // NOLINTBEGIN
217
218 MCNAPI static void
219 WaitCallback(::_TP_CALLBACK_INSTANCE* instance, void* context, ::_TP_WAIT* wait, ulong waitResult);
220 // NOLINTEND
221
222public:
223 // constructor thunks
224 // NOLINTBEGIN
225 MCNAPI void* $ctor();
226 // NOLINTEND
227
228public:
229 // destructor thunk
230 // NOLINTBEGIN
231 MCNAPI void $dtor();
232 // NOLINTEND
233
234public:
235 // virtual function thunks
236 // NOLINTBEGIN
237 MCNAPI ::XTaskQueuePortObject* $GetHandle();
238
239 MCNAPI HRESULT
240 $QueueItem(::ITaskQueuePortContext* portContext, uint waitMs, void* callbackContext, void (*callback)(void*, bool));
241
242 MCNAPI HRESULT $RegisterWaitHandle(
243 ::ITaskQueuePortContext* portContext,
244 void* waitHandle,
245 void* callbackContext,
246 void (*callback)(void*, bool),
248 );
249
251
252 MCNAPI HRESULT $PrepareTerminate(
253 ::ITaskQueuePortContext* portContext,
254 void* callbackContext,
255 void (*callback)(void*),
256 void** token
257 );
258
259 MCNAPI void $CancelTermination(void* token);
260
261 MCNAPI void $Terminate(void* token);
262
263 MCNAPI HRESULT $Attach(::ITaskQueuePortContext* portContext);
264
265 MCNAPI void $Detach(::ITaskQueuePortContext* portContext);
266
267 MCNAPI bool $Dispatch(::ITaskQueuePortContext* portContext, uint timeoutInMs);
268
269 MCNAPI bool $IsEmpty();
270
271 MCNAPI void $WaitForUnwind();
272
273 MCNAPI HRESULT $SuspendTermination(::ITaskQueuePortContext* portContext);
274
276
277 MCNAPI void $SuspendPort();
278
279 MCNAPI void $ResumePort();
280 // NOLINTEND
281
282public:
283 // vftables
284 // NOLINTBEGIN
285 MCNAPI static void** $vftable();
286 // NOLINTEND
287};
Definition Api.h:6
Definition LocklessQueue.h:6
Definition TaskQueuePortImpl.h:19
static MCAPI void ** $vftable()
MCAPI HRESULT $QueueItem(::ITaskQueuePortContext *portContext, uint waitMs, void *callbackContext, void(*callback)(void *, bool))
MCAPI bool AppendEntry(::TaskQueuePortImpl::QueueEntry const &entry, uint64 node)
MCAPI bool $Dispatch(::ITaskQueuePortContext *portContext, uint timeoutInMs)
MCAPI void $CancelTermination(void *token)
MCAPI::XTaskQueuePortObject * $GetHandle()
MCAPI HRESULT $SuspendTermination(::ITaskQueuePortContext *portContext)
MCAPI HRESULT $Attach(::ITaskQueuePortContext *portContext)
static MCAPI void WaitCallback(::_TP_CALLBACK_INSTANCE *instance, void *context, ::_TP_WAIT *wait, ulong waitResult)
MCAPI bool Wait(::ITaskQueuePortContext *portContext, uint timeout)
MCAPI void $ResumeTermination(::ITaskQueuePortContext *portContext)
MCAPI void $ResumePort()
MCAPI long InitializeWaitRegistration(::TaskQueuePortImpl::WaitRegistration *waitReg)
MCAPI void CancelPendingEntries(::ITaskQueuePortContext *portContext, bool appendToQueue)
MCAPI void $SuspendPort()
MCAPI void $WaitForUnwind()
MCAPI HRESULT $PrepareTerminate(::ITaskQueuePortContext *portContext, void *callbackContext, void(*callback)(void *), void **token)
MCAPI bool AppendWaitRegistrationEntry(::TaskQueuePortImpl::WaitRegistration *waitReg)
MCAPI bool $IsEmpty()
MCAPI HRESULT $RegisterWaitHandle(::ITaskQueuePortContext *portContext, void *waitHandle, void *callbackContext, void(*callback)(void *, bool), ::XTaskQueueRegistrationToken *token)
MCAPI TaskQueuePortImpl()
MCAPI void ProcessThreadPoolCallback(::OS::ThreadPoolActionStatus &status)
MCAPI void $UnregisterWaitHandle(::XTaskQueueRegistrationToken token)
MCAPI long Initialize(::XTaskQueueDispatchMode mode)
MCAPI void SubmitPendingCallback()
MCAPI void $Detach(::ITaskQueuePortContext *portContext)
MCAPI void ScheduleTermination(::TaskQueuePortImpl::TerminationEntry *term)
MCAPI void NotifyItemQueued()
MCAPI void $Terminate(void *token)
MCAPI void * $ctor()
static MCAPI void EraseQueue(::LocklessQueue<::TaskQueuePortImpl::QueueEntry > *queue)
MCAPI bool DrainOneItem(::OS::ThreadPoolActionStatus &status)
MCAPI void $dtor()
Definition ITaskQueuePortContext.h:16
Definition ThreadPoolActionStatus.h:7
Definition TaskQueuePortImpl.h:50
Definition TaskQueuePortImpl.h:69
Definition TaskQueuePortImpl.h:29
Definition XTaskQueuePortObject.h:5
Definition XTaskQueueRegistrationToken.h:5
Definition context.h:5
Definition Alias.h:14