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 TerminationEntry;
24 struct TerminationData;
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
34 struct TerminationEntry {
35 public:
36 // member variables
37 // NOLINTBEGIN
43 // NOLINTEND
44
45 public:
46 // prevent constructor by default
47 TerminationEntry& operator=(TerminationEntry const&);
48 TerminationEntry(TerminationEntry const&);
49 TerminationEntry();
50 };
51
52 struct TerminationData {
53 public:
54 // member variables
55 // NOLINTBEGIN
60 // NOLINTEND
61
62 public:
63 // prevent constructor by default
64 TerminationData& operator=(TerminationData const&);
65 TerminationData(TerminationData const&);
66 TerminationData();
67 };
68
69public:
70 // member variables
71 // NOLINTBEGIN
79 // NOLINTEND
80
81public:
82 // prevent constructor by default
83 TaskQueueImpl& operator=(TaskQueueImpl const&);
84 TaskQueueImpl(TaskQueueImpl const&);
85
86public:
87 // virtual functions
88 // NOLINTBEGIN
89 virtual ~TaskQueueImpl() /*override*/ = default;
90
91 virtual ::XTaskQueueObject* GetHandle() /*override*/;
92
93 virtual HRESULT GetPortContext(::XTaskQueuePort port, ::ITaskQueuePortContext** portContext) /*override*/;
94
95 virtual HRESULT RegisterWaitHandle(
96 ::XTaskQueuePort port,
97 void* waitHandle,
98 void* callbackContext,
99 void (*callback)(void*, bool),
101 ) /*override*/;
102
103 virtual void UnregisterWaitHandle(::XTaskQueueRegistrationToken token) /*override*/;
104
105 virtual HRESULT RegisterSubmitCallback(
106 void* context,
107 void (*callback)(void*, ::XTaskQueueObject*, ::XTaskQueuePort),
109 ) /*override*/;
110
111 virtual void UnregisterSubmitCallback(::XTaskQueueRegistrationToken token) /*override*/;
112
113 virtual bool CanTerminate() /*override*/;
114
115 virtual bool CanClose() /*override*/;
116
117 virtual HRESULT Terminate(bool wait, void* callbackContext, void (*callback)(void*)) /*override*/;
118
119 virtual void RundownObject() /*override*/;
120 // NOLINTEND
121
122public:
123 // member functions
124 // NOLINTBEGIN
125 MCNAPI long Initialize(::XTaskQueuePortObject* workPort, ::XTaskQueuePortObject* completionPort);
126
127 MCNAPI long Initialize(
128 ::XTaskQueueDispatchMode workMode,
129 ::XTaskQueueDispatchMode completionMode,
130 bool allowTermination,
131 bool allowClose
132 );
133
135 // NOLINTEND
136
137public:
138 // static functions
139 // NOLINTBEGIN
140 MCNAPI static void OnTerminationCallback(void* context);
141 // NOLINTEND
142
143public:
144 // constructor thunks
145 // NOLINTBEGIN
146 MCNAPI void* $ctor();
147 // NOLINTEND
148
149public:
150 // virtual function thunks
151 // NOLINTBEGIN
152 MCNAPI ::XTaskQueueObject* $GetHandle();
153
154 MCNAPI HRESULT $GetPortContext(::XTaskQueuePort port, ::ITaskQueuePortContext** portContext);
155
156 MCNAPI HRESULT $RegisterWaitHandle(
157 ::XTaskQueuePort port,
158 void* waitHandle,
159 void* callbackContext,
160 void (*callback)(void*, bool),
162 );
163
165
167 void* context,
168 void (*callback)(void*, ::XTaskQueueObject*, ::XTaskQueuePort),
170 );
171
173
174 MCNAPI bool $CanTerminate();
175
176 MCNAPI bool $CanClose();
177
178 MCNAPI HRESULT $Terminate(bool wait, void* callbackContext, void (*callback)(void*));
179
180 MCNAPI void $RundownObject();
181 // NOLINTEND
182
183public:
184 // vftables
185 // NOLINTBEGIN
186 MCNAPI static void** $vftable();
187 // NOLINTEND
188};
Definition Api.h:6
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