ZFFramework
 
Loading...
Searching...
No Matches
ZFMethodInterfaceDeclare.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFMethodInterfaceDeclare_h_
7#define _ZFI_ZFMethodInterfaceDeclare_h_
8
9#include "ZFMethod.h"
11
12#define _ZFP_ZFMETHOD_IMPL_isInline()
13#define _ZFP_ZFMETHOD_IMPL_notInline() ;
14
15#define _ZFP_ZFMETHOD_IMPL_DECLARE(...) \
16 _ZFP_MtdD_EXPAND(_ZFP_ZFMETHOD_IMPL_DECLARE_(__VA_ARGS__))
17#define _ZFP_ZFMETHOD_IMPL_DECLARE_( \
18 inlineOrNot \
19 , ReturnType, MethodName \
20 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
21 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
22 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
23 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
24 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
25 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
26 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
27 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
28 ) \
29 public: \
30 virtual ReturnType MethodName( \
31 ParamExpandOrEmpty0( ParamType0 param0 DefaultValueFix0()) \
32 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1 DefaultValueFix1()) \
33 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2 DefaultValueFix2()) \
34 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3 DefaultValueFix3()) \
35 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4 DefaultValueFix4()) \
36 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5 DefaultValueFix5()) \
37 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6 DefaultValueFix6()) \
38 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7 DefaultValueFix7()) \
39 ) inlineOrNot()
40
41#define _ZFP_ZFMETHOD_IMPL_DEFINE(...) \
42 _ZFP_MtdD_EXPAND(_ZFP_ZFMETHOD_IMPL_DEFINE_(__VA_ARGS__))
43#define _ZFP_ZFMETHOD_IMPL_DEFINE_( \
44 OwnerClass, ReturnType, MethodName \
45 , ParamExpandOrEmpty0, ParamType0, param0, DefaultExpandOrEmpty0, DefaultValueFix0 \
46 , ParamExpandOrEmpty1, ParamType1, param1, DefaultExpandOrEmpty1, DefaultValueFix1 \
47 , ParamExpandOrEmpty2, ParamType2, param2, DefaultExpandOrEmpty2, DefaultValueFix2 \
48 , ParamExpandOrEmpty3, ParamType3, param3, DefaultExpandOrEmpty3, DefaultValueFix3 \
49 , ParamExpandOrEmpty4, ParamType4, param4, DefaultExpandOrEmpty4, DefaultValueFix4 \
50 , ParamExpandOrEmpty5, ParamType5, param5, DefaultExpandOrEmpty5, DefaultValueFix5 \
51 , ParamExpandOrEmpty6, ParamType6, param6, DefaultExpandOrEmpty6, DefaultValueFix6 \
52 , ParamExpandOrEmpty7, ParamType7, param7, DefaultExpandOrEmpty7, DefaultValueFix7 \
53 ) \
54 ReturnType OwnerClass::MethodName( \
55 ParamExpandOrEmpty0( ParamType0 param0) \
56 ParamExpandOrEmpty1(ZFM_COMMA() ParamType1 param1) \
57 ParamExpandOrEmpty2(ZFM_COMMA() ParamType2 param2) \
58 ParamExpandOrEmpty3(ZFM_COMMA() ParamType3 param3) \
59 ParamExpandOrEmpty4(ZFM_COMMA() ParamType4 param4) \
60 ParamExpandOrEmpty5(ZFM_COMMA() ParamType5 param5) \
61 ParamExpandOrEmpty6(ZFM_COMMA() ParamType6 param6) \
62 ParamExpandOrEmpty7(ZFM_COMMA() ParamType7 param7) \
63 )
64
65// ============================================================
66// 0 param method declare
68#define ZFMETHOD_INTERFACE_0(ReturnType, MethodName \
69 ) \
70 _ZFP_ZFMETHOD_DECLARE( \
71 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
72 ReturnType, MethodName \
73 , _ZFP_ZFMP_DUMMY() \
74 , _ZFP_ZFMP_DUMMY() \
75 , _ZFP_ZFMP_DUMMY() \
76 , _ZFP_ZFMP_DUMMY() \
77 , _ZFP_ZFMP_DUMMY() \
78 , _ZFP_ZFMP_DUMMY() \
79 , _ZFP_ZFMP_DUMMY() \
80 , _ZFP_ZFMP_DUMMY() \
81 )
83#define ZFMETHOD_INTERFACE_DEFINE_0(OwnerClass, \
84 ReturnType, MethodName \
85 ) \
86 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
87 ReturnType, MethodName \
88 , _ZFP_ZFMP_DUMMY() \
89 , _ZFP_ZFMP_DUMMY() \
90 , _ZFP_ZFMP_DUMMY() \
91 , _ZFP_ZFMP_DUMMY() \
92 , _ZFP_ZFMP_DUMMY() \
93 , _ZFP_ZFMP_DUMMY() \
94 , _ZFP_ZFMP_DUMMY() \
95 , _ZFP_ZFMP_DUMMY() \
96 )
98#define ZFMETHOD_IMPL_DECLARE_0(ReturnType, MethodName \
99 ) \
100 _ZFP_ZFMETHOD_IMPL_DECLARE( \
101 _ZFP_ZFMETHOD_IMPL_notInline, \
102 ReturnType, MethodName \
103 , _ZFP_ZFMP_DUMMY() \
104 , _ZFP_ZFMP_DUMMY() \
105 , _ZFP_ZFMP_DUMMY() \
106 , _ZFP_ZFMP_DUMMY() \
107 , _ZFP_ZFMP_DUMMY() \
108 , _ZFP_ZFMP_DUMMY() \
109 , _ZFP_ZFMP_DUMMY() \
110 , _ZFP_ZFMP_DUMMY() \
111 )
113#define ZFMETHOD_IMPL_INLINE_0(ReturnType, MethodName \
114 ) \
115 _ZFP_ZFMETHOD_IMPL_DECLARE( \
116 _ZFP_ZFMETHOD_IMPL_isInline, \
117 ReturnType, MethodName \
118 , _ZFP_ZFMP_DUMMY() \
119 , _ZFP_ZFMP_DUMMY() \
120 , _ZFP_ZFMP_DUMMY() \
121 , _ZFP_ZFMP_DUMMY() \
122 , _ZFP_ZFMP_DUMMY() \
123 , _ZFP_ZFMP_DUMMY() \
124 , _ZFP_ZFMP_DUMMY() \
125 , _ZFP_ZFMP_DUMMY() \
126 )
128#define ZFMETHOD_IMPL_DEFINE_0(OwnerClass, \
129 ReturnType, MethodName \
130 ) \
131 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
132 , _ZFP_ZFMP_DUMMY() \
133 , _ZFP_ZFMP_DUMMY() \
134 , _ZFP_ZFMP_DUMMY() \
135 , _ZFP_ZFMP_DUMMY() \
136 , _ZFP_ZFMP_DUMMY() \
137 , _ZFP_ZFMP_DUMMY() \
138 , _ZFP_ZFMP_DUMMY() \
139 , _ZFP_ZFMP_DUMMY() \
140 )
141
142// ============================================================
143// 1 param method declare
145#define ZFMETHOD_INTERFACE_1(ReturnType, MethodName \
146 , ZFMP_0 \
147 ) \
148 _ZFP_ZFMETHOD_DECLARE( \
149 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
150 ReturnType, MethodName \
151 , _ZFP_MtdP_EXPAND(ZFMP_0) \
152 , _ZFP_ZFMP_DUMMY() \
153 , _ZFP_ZFMP_DUMMY() \
154 , _ZFP_ZFMP_DUMMY() \
155 , _ZFP_ZFMP_DUMMY() \
156 , _ZFP_ZFMP_DUMMY() \
157 , _ZFP_ZFMP_DUMMY() \
158 , _ZFP_ZFMP_DUMMY() \
159 )
161#define ZFMETHOD_INTERFACE_DEFINE_1(OwnerClass, \
162 ReturnType, MethodName \
163 , ZFMP_0 \
164 ) \
165 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
166 ReturnType, MethodName \
167 , _ZFP_MtdP_EXPAND(ZFMP_0) \
168 , _ZFP_ZFMP_DUMMY() \
169 , _ZFP_ZFMP_DUMMY() \
170 , _ZFP_ZFMP_DUMMY() \
171 , _ZFP_ZFMP_DUMMY() \
172 , _ZFP_ZFMP_DUMMY() \
173 , _ZFP_ZFMP_DUMMY() \
174 , _ZFP_ZFMP_DUMMY() \
175 )
177#define ZFMETHOD_IMPL_DECLARE_1(ReturnType, MethodName \
178 , ZFMP_0 \
179 ) \
180 _ZFP_ZFMETHOD_IMPL_DECLARE( \
181 _ZFP_ZFMETHOD_IMPL_notInline, \
182 ReturnType, MethodName \
183 , _ZFP_MtdP_EXPAND(ZFMP_0) \
184 , _ZFP_ZFMP_DUMMY() \
185 , _ZFP_ZFMP_DUMMY() \
186 , _ZFP_ZFMP_DUMMY() \
187 , _ZFP_ZFMP_DUMMY() \
188 , _ZFP_ZFMP_DUMMY() \
189 , _ZFP_ZFMP_DUMMY() \
190 , _ZFP_ZFMP_DUMMY() \
191 )
193#define ZFMETHOD_IMPL_INLINE_1(ReturnType, MethodName \
194 , ZFMP_0 \
195 ) \
196 _ZFP_ZFMETHOD_IMPL_DECLARE( \
197 _ZFP_ZFMETHOD_IMPL_isInline, \
198 ReturnType, MethodName \
199 , _ZFP_MtdP_EXPAND(ZFMP_0) \
200 , _ZFP_ZFMP_DUMMY() \
201 , _ZFP_ZFMP_DUMMY() \
202 , _ZFP_ZFMP_DUMMY() \
203 , _ZFP_ZFMP_DUMMY() \
204 , _ZFP_ZFMP_DUMMY() \
205 , _ZFP_ZFMP_DUMMY() \
206 , _ZFP_ZFMP_DUMMY() \
207 )
209#define ZFMETHOD_IMPL_DEFINE_1(OwnerClass, \
210 ReturnType, MethodName \
211 , ZFMP_0 \
212 ) \
213 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
214 , _ZFP_MtdP_EXPAND(ZFMP_0) \
215 , _ZFP_ZFMP_DUMMY() \
216 , _ZFP_ZFMP_DUMMY() \
217 , _ZFP_ZFMP_DUMMY() \
218 , _ZFP_ZFMP_DUMMY() \
219 , _ZFP_ZFMP_DUMMY() \
220 , _ZFP_ZFMP_DUMMY() \
221 , _ZFP_ZFMP_DUMMY() \
222 )
223
224// ============================================================
225// 2 param method declare
227#define ZFMETHOD_INTERFACE_2(ReturnType, MethodName \
228 , ZFMP_0 \
229 , ZFMP_1 \
230 ) \
231 _ZFP_ZFMETHOD_DECLARE( \
232 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
233 ReturnType, MethodName \
234 , _ZFP_MtdP_EXPAND(ZFMP_0) \
235 , _ZFP_MtdP_EXPAND(ZFMP_1) \
236 , _ZFP_ZFMP_DUMMY() \
237 , _ZFP_ZFMP_DUMMY() \
238 , _ZFP_ZFMP_DUMMY() \
239 , _ZFP_ZFMP_DUMMY() \
240 , _ZFP_ZFMP_DUMMY() \
241 , _ZFP_ZFMP_DUMMY() \
242 )
244#define ZFMETHOD_INTERFACE_DEFINE_2(OwnerClass, \
245 ReturnType, MethodName \
246 , ZFMP_0 \
247 , ZFMP_1 \
248 ) \
249 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
250 ReturnType, MethodName \
251 , _ZFP_MtdP_EXPAND(ZFMP_0) \
252 , _ZFP_MtdP_EXPAND(ZFMP_1) \
253 , _ZFP_ZFMP_DUMMY() \
254 , _ZFP_ZFMP_DUMMY() \
255 , _ZFP_ZFMP_DUMMY() \
256 , _ZFP_ZFMP_DUMMY() \
257 , _ZFP_ZFMP_DUMMY() \
258 , _ZFP_ZFMP_DUMMY() \
259 )
261#define ZFMETHOD_IMPL_DECLARE_2(ReturnType, MethodName \
262 , ZFMP_0 \
263 , ZFMP_1 \
264 ) \
265 _ZFP_ZFMETHOD_IMPL_DECLARE( \
266 _ZFP_ZFMETHOD_IMPL_notInline, \
267 ReturnType, MethodName \
268 , _ZFP_MtdP_EXPAND(ZFMP_0) \
269 , _ZFP_MtdP_EXPAND(ZFMP_1) \
270 , _ZFP_ZFMP_DUMMY() \
271 , _ZFP_ZFMP_DUMMY() \
272 , _ZFP_ZFMP_DUMMY() \
273 , _ZFP_ZFMP_DUMMY() \
274 , _ZFP_ZFMP_DUMMY() \
275 , _ZFP_ZFMP_DUMMY() \
276 )
278#define ZFMETHOD_IMPL_INLINE_2(ReturnType, MethodName \
279 , ZFMP_0 \
280 , ZFMP_1 \
281 ) \
282 _ZFP_ZFMETHOD_IMPL_DECLARE( \
283 _ZFP_ZFMETHOD_IMPL_isInline, \
284 ReturnType, MethodName \
285 , _ZFP_MtdP_EXPAND(ZFMP_0) \
286 , _ZFP_MtdP_EXPAND(ZFMP_1) \
287 , _ZFP_ZFMP_DUMMY() \
288 , _ZFP_ZFMP_DUMMY() \
289 , _ZFP_ZFMP_DUMMY() \
290 , _ZFP_ZFMP_DUMMY() \
291 , _ZFP_ZFMP_DUMMY() \
292 , _ZFP_ZFMP_DUMMY() \
293 )
295#define ZFMETHOD_IMPL_DEFINE_2(OwnerClass, \
296 ReturnType, MethodName \
297 , ZFMP_0 \
298 , ZFMP_1 \
299 ) \
300 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
301 , _ZFP_MtdP_EXPAND(ZFMP_0) \
302 , _ZFP_MtdP_EXPAND(ZFMP_1) \
303 , _ZFP_ZFMP_DUMMY() \
304 , _ZFP_ZFMP_DUMMY() \
305 , _ZFP_ZFMP_DUMMY() \
306 , _ZFP_ZFMP_DUMMY() \
307 , _ZFP_ZFMP_DUMMY() \
308 , _ZFP_ZFMP_DUMMY() \
309 )
310
311// ============================================================
312// 3 param method declare
314#define ZFMETHOD_INTERFACE_3(ReturnType, MethodName \
315 , ZFMP_0 \
316 , ZFMP_1 \
317 , ZFMP_2 \
318 ) \
319 _ZFP_ZFMETHOD_DECLARE( \
320 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
321 ReturnType, MethodName \
322 , _ZFP_MtdP_EXPAND(ZFMP_0) \
323 , _ZFP_MtdP_EXPAND(ZFMP_1) \
324 , _ZFP_MtdP_EXPAND(ZFMP_2) \
325 , _ZFP_ZFMP_DUMMY() \
326 , _ZFP_ZFMP_DUMMY() \
327 , _ZFP_ZFMP_DUMMY() \
328 , _ZFP_ZFMP_DUMMY() \
329 , _ZFP_ZFMP_DUMMY() \
330 )
332#define ZFMETHOD_INTERFACE_DEFINE_3(OwnerClass, \
333 ReturnType, MethodName \
334 , ZFMP_0 \
335 , ZFMP_1 \
336 , ZFMP_2 \
337 ) \
338 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
339 ReturnType, MethodName \
340 , _ZFP_MtdP_EXPAND(ZFMP_0) \
341 , _ZFP_MtdP_EXPAND(ZFMP_1) \
342 , _ZFP_MtdP_EXPAND(ZFMP_2) \
343 , _ZFP_ZFMP_DUMMY() \
344 , _ZFP_ZFMP_DUMMY() \
345 , _ZFP_ZFMP_DUMMY() \
346 , _ZFP_ZFMP_DUMMY() \
347 , _ZFP_ZFMP_DUMMY() \
348 )
350#define ZFMETHOD_IMPL_DECLARE_3(ReturnType, MethodName \
351 , ZFMP_0 \
352 , ZFMP_1 \
353 , ZFMP_2 \
354 ) \
355 _ZFP_ZFMETHOD_IMPL_DECLARE( \
356 _ZFP_ZFMETHOD_IMPL_notInline, \
357 ReturnType, MethodName \
358 , _ZFP_MtdP_EXPAND(ZFMP_0) \
359 , _ZFP_MtdP_EXPAND(ZFMP_1) \
360 , _ZFP_MtdP_EXPAND(ZFMP_2) \
361 , _ZFP_ZFMP_DUMMY() \
362 , _ZFP_ZFMP_DUMMY() \
363 , _ZFP_ZFMP_DUMMY() \
364 , _ZFP_ZFMP_DUMMY() \
365 , _ZFP_ZFMP_DUMMY() \
366 )
368#define ZFMETHOD_IMPL_INLINE_3(ReturnType, MethodName \
369 , ZFMP_0 \
370 , ZFMP_1 \
371 , ZFMP_2 \
372 ) \
373 _ZFP_ZFMETHOD_IMPL_DECLARE( \
374 _ZFP_ZFMETHOD_IMPL_isInline, \
375 ReturnType, MethodName \
376 , _ZFP_MtdP_EXPAND(ZFMP_0) \
377 , _ZFP_MtdP_EXPAND(ZFMP_1) \
378 , _ZFP_MtdP_EXPAND(ZFMP_2) \
379 , _ZFP_ZFMP_DUMMY() \
380 , _ZFP_ZFMP_DUMMY() \
381 , _ZFP_ZFMP_DUMMY() \
382 , _ZFP_ZFMP_DUMMY() \
383 , _ZFP_ZFMP_DUMMY() \
384 )
386#define ZFMETHOD_IMPL_DEFINE_3(OwnerClass, \
387 ReturnType, MethodName \
388 , ZFMP_0 \
389 , ZFMP_1 \
390 , ZFMP_2 \
391 ) \
392 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
393 , _ZFP_MtdP_EXPAND(ZFMP_0) \
394 , _ZFP_MtdP_EXPAND(ZFMP_1) \
395 , _ZFP_MtdP_EXPAND(ZFMP_2) \
396 , _ZFP_ZFMP_DUMMY() \
397 , _ZFP_ZFMP_DUMMY() \
398 , _ZFP_ZFMP_DUMMY() \
399 , _ZFP_ZFMP_DUMMY() \
400 , _ZFP_ZFMP_DUMMY() \
401 )
402
403// ============================================================
404// 4 param method declare
406#define ZFMETHOD_INTERFACE_4(ReturnType, MethodName \
407 , ZFMP_0 \
408 , ZFMP_1 \
409 , ZFMP_2 \
410 , ZFMP_3 \
411 ) \
412 _ZFP_ZFMETHOD_DECLARE( \
413 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
414 ReturnType, MethodName \
415 , _ZFP_MtdP_EXPAND(ZFMP_0) \
416 , _ZFP_MtdP_EXPAND(ZFMP_1) \
417 , _ZFP_MtdP_EXPAND(ZFMP_2) \
418 , _ZFP_MtdP_EXPAND(ZFMP_3) \
419 , _ZFP_ZFMP_DUMMY() \
420 , _ZFP_ZFMP_DUMMY() \
421 , _ZFP_ZFMP_DUMMY() \
422 , _ZFP_ZFMP_DUMMY() \
423 )
425#define ZFMETHOD_INTERFACE_DEFINE_4(OwnerClass, \
426 ReturnType, MethodName \
427 , ZFMP_0 \
428 , ZFMP_1 \
429 , ZFMP_2 \
430 , ZFMP_3 \
431 ) \
432 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
433 ReturnType, MethodName \
434 , _ZFP_MtdP_EXPAND(ZFMP_0) \
435 , _ZFP_MtdP_EXPAND(ZFMP_1) \
436 , _ZFP_MtdP_EXPAND(ZFMP_2) \
437 , _ZFP_MtdP_EXPAND(ZFMP_3) \
438 , _ZFP_ZFMP_DUMMY() \
439 , _ZFP_ZFMP_DUMMY() \
440 , _ZFP_ZFMP_DUMMY() \
441 , _ZFP_ZFMP_DUMMY() \
442 )
444#define ZFMETHOD_IMPL_DECLARE_4(ReturnType, MethodName \
445 , ZFMP_0 \
446 , ZFMP_1 \
447 , ZFMP_2 \
448 , ZFMP_3 \
449 ) \
450 _ZFP_ZFMETHOD_IMPL_DECLARE( \
451 _ZFP_ZFMETHOD_IMPL_notInline, \
452 ReturnType, MethodName \
453 , _ZFP_MtdP_EXPAND(ZFMP_0) \
454 , _ZFP_MtdP_EXPAND(ZFMP_1) \
455 , _ZFP_MtdP_EXPAND(ZFMP_2) \
456 , _ZFP_MtdP_EXPAND(ZFMP_3) \
457 , _ZFP_ZFMP_DUMMY() \
458 , _ZFP_ZFMP_DUMMY() \
459 , _ZFP_ZFMP_DUMMY() \
460 , _ZFP_ZFMP_DUMMY() \
461 )
463#define ZFMETHOD_IMPL_INLINE_4(ReturnType, MethodName \
464 , ZFMP_0 \
465 , ZFMP_1 \
466 , ZFMP_2 \
467 , ZFMP_3 \
468 ) \
469 _ZFP_ZFMETHOD_IMPL_DECLARE( \
470 _ZFP_ZFMETHOD_IMPL_isInline, \
471 ReturnType, MethodName \
472 , _ZFP_MtdP_EXPAND(ZFMP_0) \
473 , _ZFP_MtdP_EXPAND(ZFMP_1) \
474 , _ZFP_MtdP_EXPAND(ZFMP_2) \
475 , _ZFP_MtdP_EXPAND(ZFMP_3) \
476 , _ZFP_ZFMP_DUMMY() \
477 , _ZFP_ZFMP_DUMMY() \
478 , _ZFP_ZFMP_DUMMY() \
479 , _ZFP_ZFMP_DUMMY() \
480 )
482#define ZFMETHOD_IMPL_DEFINE_4(OwnerClass, \
483 ReturnType, MethodName \
484 , ZFMP_0 \
485 , ZFMP_1 \
486 , ZFMP_2 \
487 , ZFMP_3 \
488 ) \
489 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
490 , _ZFP_MtdP_EXPAND(ZFMP_0) \
491 , _ZFP_MtdP_EXPAND(ZFMP_1) \
492 , _ZFP_MtdP_EXPAND(ZFMP_2) \
493 , _ZFP_MtdP_EXPAND(ZFMP_3) \
494 , _ZFP_ZFMP_DUMMY() \
495 , _ZFP_ZFMP_DUMMY() \
496 , _ZFP_ZFMP_DUMMY() \
497 , _ZFP_ZFMP_DUMMY() \
498 )
499
500// ============================================================
501// 5 param method declare
503#define ZFMETHOD_INTERFACE_5(ReturnType, MethodName \
504 , ZFMP_0 \
505 , ZFMP_1 \
506 , ZFMP_2 \
507 , ZFMP_3 \
508 , ZFMP_4 \
509 ) \
510 _ZFP_ZFMETHOD_DECLARE( \
511 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
512 ReturnType, MethodName \
513 , _ZFP_MtdP_EXPAND(ZFMP_0) \
514 , _ZFP_MtdP_EXPAND(ZFMP_1) \
515 , _ZFP_MtdP_EXPAND(ZFMP_2) \
516 , _ZFP_MtdP_EXPAND(ZFMP_3) \
517 , _ZFP_MtdP_EXPAND(ZFMP_4) \
518 , _ZFP_ZFMP_DUMMY() \
519 , _ZFP_ZFMP_DUMMY() \
520 , _ZFP_ZFMP_DUMMY() \
521 )
523#define ZFMETHOD_INTERFACE_DEFINE_5(OwnerClass, \
524 ReturnType, MethodName \
525 , ZFMP_0 \
526 , ZFMP_1 \
527 , ZFMP_2 \
528 , ZFMP_3 \
529 , ZFMP_4 \
530 ) \
531 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
532 ReturnType, MethodName \
533 , _ZFP_MtdP_EXPAND(ZFMP_0) \
534 , _ZFP_MtdP_EXPAND(ZFMP_1) \
535 , _ZFP_MtdP_EXPAND(ZFMP_2) \
536 , _ZFP_MtdP_EXPAND(ZFMP_3) \
537 , _ZFP_MtdP_EXPAND(ZFMP_4) \
538 , _ZFP_ZFMP_DUMMY() \
539 , _ZFP_ZFMP_DUMMY() \
540 , _ZFP_ZFMP_DUMMY() \
541 )
543#define ZFMETHOD_IMPL_DECLARE_5(ReturnType, MethodName \
544 , ZFMP_0 \
545 , ZFMP_1 \
546 , ZFMP_2 \
547 , ZFMP_3 \
548 , ZFMP_4 \
549 ) \
550 _ZFP_ZFMETHOD_IMPL_DECLARE( \
551 _ZFP_ZFMETHOD_IMPL_notInline, \
552 ReturnType, MethodName \
553 , _ZFP_MtdP_EXPAND(ZFMP_0) \
554 , _ZFP_MtdP_EXPAND(ZFMP_1) \
555 , _ZFP_MtdP_EXPAND(ZFMP_2) \
556 , _ZFP_MtdP_EXPAND(ZFMP_3) \
557 , _ZFP_MtdP_EXPAND(ZFMP_4) \
558 , _ZFP_ZFMP_DUMMY() \
559 , _ZFP_ZFMP_DUMMY() \
560 , _ZFP_ZFMP_DUMMY() \
561 )
563#define ZFMETHOD_IMPL_INLINE_5(ReturnType, MethodName \
564 , ZFMP_0 \
565 , ZFMP_1 \
566 , ZFMP_2 \
567 , ZFMP_3 \
568 , ZFMP_4 \
569 ) \
570 _ZFP_ZFMETHOD_IMPL_DECLARE( \
571 _ZFP_ZFMETHOD_IMPL_isInline, \
572 ReturnType, MethodName \
573 , _ZFP_MtdP_EXPAND(ZFMP_0) \
574 , _ZFP_MtdP_EXPAND(ZFMP_1) \
575 , _ZFP_MtdP_EXPAND(ZFMP_2) \
576 , _ZFP_MtdP_EXPAND(ZFMP_3) \
577 , _ZFP_MtdP_EXPAND(ZFMP_4) \
578 , _ZFP_ZFMP_DUMMY() \
579 , _ZFP_ZFMP_DUMMY() \
580 , _ZFP_ZFMP_DUMMY() \
581 )
583#define ZFMETHOD_IMPL_DEFINE_5(OwnerClass, \
584 ReturnType, MethodName \
585 , ZFMP_0 \
586 , ZFMP_1 \
587 , ZFMP_2 \
588 , ZFMP_3 \
589 , ZFMP_4 \
590 ) \
591 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
592 , _ZFP_MtdP_EXPAND(ZFMP_0) \
593 , _ZFP_MtdP_EXPAND(ZFMP_1) \
594 , _ZFP_MtdP_EXPAND(ZFMP_2) \
595 , _ZFP_MtdP_EXPAND(ZFMP_3) \
596 , _ZFP_MtdP_EXPAND(ZFMP_4) \
597 , _ZFP_ZFMP_DUMMY() \
598 , _ZFP_ZFMP_DUMMY() \
599 , _ZFP_ZFMP_DUMMY() \
600 )
601
602// ============================================================
603// 6 param method declare
605#define ZFMETHOD_INTERFACE_6(ReturnType, MethodName \
606 , ZFMP_0 \
607 , ZFMP_1 \
608 , ZFMP_2 \
609 , ZFMP_3 \
610 , ZFMP_4 \
611 , ZFMP_5 \
612 ) \
613 _ZFP_ZFMETHOD_DECLARE( \
614 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
615 ReturnType, MethodName \
616 , _ZFP_MtdP_EXPAND(ZFMP_0) \
617 , _ZFP_MtdP_EXPAND(ZFMP_1) \
618 , _ZFP_MtdP_EXPAND(ZFMP_2) \
619 , _ZFP_MtdP_EXPAND(ZFMP_3) \
620 , _ZFP_MtdP_EXPAND(ZFMP_4) \
621 , _ZFP_MtdP_EXPAND(ZFMP_5) \
622 , _ZFP_ZFMP_DUMMY() \
623 , _ZFP_ZFMP_DUMMY() \
624 )
626#define ZFMETHOD_INTERFACE_DEFINE_6(OwnerClass, \
627 ReturnType, MethodName \
628 , ZFMP_0 \
629 , ZFMP_1 \
630 , ZFMP_2 \
631 , ZFMP_3 \
632 , ZFMP_4 \
633 , ZFMP_5 \
634 ) \
635 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
636 ReturnType, MethodName \
637 , _ZFP_MtdP_EXPAND(ZFMP_0) \
638 , _ZFP_MtdP_EXPAND(ZFMP_1) \
639 , _ZFP_MtdP_EXPAND(ZFMP_2) \
640 , _ZFP_MtdP_EXPAND(ZFMP_3) \
641 , _ZFP_MtdP_EXPAND(ZFMP_4) \
642 , _ZFP_MtdP_EXPAND(ZFMP_5) \
643 , _ZFP_ZFMP_DUMMY() \
644 , _ZFP_ZFMP_DUMMY() \
645 )
647#define ZFMETHOD_IMPL_DECLARE_6(ReturnType, MethodName \
648 , ZFMP_0 \
649 , ZFMP_1 \
650 , ZFMP_2 \
651 , ZFMP_3 \
652 , ZFMP_4 \
653 , ZFMP_5 \
654 ) \
655 _ZFP_ZFMETHOD_IMPL_DECLARE( \
656 _ZFP_ZFMETHOD_IMPL_notInline, \
657 ReturnType, MethodName \
658 , _ZFP_MtdP_EXPAND(ZFMP_0) \
659 , _ZFP_MtdP_EXPAND(ZFMP_1) \
660 , _ZFP_MtdP_EXPAND(ZFMP_2) \
661 , _ZFP_MtdP_EXPAND(ZFMP_3) \
662 , _ZFP_MtdP_EXPAND(ZFMP_4) \
663 , _ZFP_MtdP_EXPAND(ZFMP_5) \
664 , _ZFP_ZFMP_DUMMY() \
665 , _ZFP_ZFMP_DUMMY() \
666 )
668#define ZFMETHOD_IMPL_INLINE_6(ReturnType, MethodName \
669 , ZFMP_0 \
670 , ZFMP_1 \
671 , ZFMP_2 \
672 , ZFMP_3 \
673 , ZFMP_4 \
674 , ZFMP_5 \
675 ) \
676 _ZFP_ZFMETHOD_IMPL_DECLARE( \
677 _ZFP_ZFMETHOD_IMPL_isInline, \
678 ReturnType, MethodName \
679 , _ZFP_MtdP_EXPAND(ZFMP_0) \
680 , _ZFP_MtdP_EXPAND(ZFMP_1) \
681 , _ZFP_MtdP_EXPAND(ZFMP_2) \
682 , _ZFP_MtdP_EXPAND(ZFMP_3) \
683 , _ZFP_MtdP_EXPAND(ZFMP_4) \
684 , _ZFP_MtdP_EXPAND(ZFMP_5) \
685 , _ZFP_ZFMP_DUMMY() \
686 , _ZFP_ZFMP_DUMMY() \
687 )
689#define ZFMETHOD_IMPL_DEFINE_6(OwnerClass, \
690 ReturnType, MethodName \
691 , ZFMP_0 \
692 , ZFMP_1 \
693 , ZFMP_2 \
694 , ZFMP_3 \
695 , ZFMP_4 \
696 , ZFMP_5 \
697 ) \
698 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
699 , _ZFP_MtdP_EXPAND(ZFMP_0) \
700 , _ZFP_MtdP_EXPAND(ZFMP_1) \
701 , _ZFP_MtdP_EXPAND(ZFMP_2) \
702 , _ZFP_MtdP_EXPAND(ZFMP_3) \
703 , _ZFP_MtdP_EXPAND(ZFMP_4) \
704 , _ZFP_MtdP_EXPAND(ZFMP_5) \
705 , _ZFP_ZFMP_DUMMY() \
706 , _ZFP_ZFMP_DUMMY() \
707 )
708
709// ============================================================
710// 7 param method declare
712#define ZFMETHOD_INTERFACE_7(ReturnType, MethodName \
713 , ZFMP_0 \
714 , ZFMP_1 \
715 , ZFMP_2 \
716 , ZFMP_3 \
717 , ZFMP_4 \
718 , ZFMP_5 \
719 , ZFMP_6 \
720 ) \
721 _ZFP_ZFMETHOD_DECLARE( \
722 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
723 ReturnType, MethodName \
724 , _ZFP_MtdP_EXPAND(ZFMP_0) \
725 , _ZFP_MtdP_EXPAND(ZFMP_1) \
726 , _ZFP_MtdP_EXPAND(ZFMP_2) \
727 , _ZFP_MtdP_EXPAND(ZFMP_3) \
728 , _ZFP_MtdP_EXPAND(ZFMP_4) \
729 , _ZFP_MtdP_EXPAND(ZFMP_5) \
730 , _ZFP_MtdP_EXPAND(ZFMP_6) \
731 , _ZFP_ZFMP_DUMMY() \
732 )
734#define ZFMETHOD_INTERFACE_DEFINE_7(OwnerClass, \
735 ReturnType, MethodName \
736 , ZFMP_0 \
737 , ZFMP_1 \
738 , ZFMP_2 \
739 , ZFMP_3 \
740 , ZFMP_4 \
741 , ZFMP_5 \
742 , ZFMP_6 \
743 ) \
744 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
745 ReturnType, MethodName \
746 , _ZFP_MtdP_EXPAND(ZFMP_0) \
747 , _ZFP_MtdP_EXPAND(ZFMP_1) \
748 , _ZFP_MtdP_EXPAND(ZFMP_2) \
749 , _ZFP_MtdP_EXPAND(ZFMP_3) \
750 , _ZFP_MtdP_EXPAND(ZFMP_4) \
751 , _ZFP_MtdP_EXPAND(ZFMP_5) \
752 , _ZFP_MtdP_EXPAND(ZFMP_6) \
753 , _ZFP_ZFMP_DUMMY() \
754 )
756#define ZFMETHOD_IMPL_DECLARE_7(ReturnType, MethodName \
757 , ZFMP_0 \
758 , ZFMP_1 \
759 , ZFMP_2 \
760 , ZFMP_3 \
761 , ZFMP_4 \
762 , ZFMP_5 \
763 , ZFMP_6 \
764 ) \
765 _ZFP_ZFMETHOD_IMPL_DECLARE( \
766 _ZFP_ZFMETHOD_IMPL_notInline, \
767 ReturnType, MethodName \
768 , _ZFP_MtdP_EXPAND(ZFMP_0) \
769 , _ZFP_MtdP_EXPAND(ZFMP_1) \
770 , _ZFP_MtdP_EXPAND(ZFMP_2) \
771 , _ZFP_MtdP_EXPAND(ZFMP_3) \
772 , _ZFP_MtdP_EXPAND(ZFMP_4) \
773 , _ZFP_MtdP_EXPAND(ZFMP_5) \
774 , _ZFP_MtdP_EXPAND(ZFMP_6) \
775 , _ZFP_ZFMP_DUMMY() \
776 )
778#define ZFMETHOD_IMPL_INLINE_7(ReturnType, MethodName \
779 , ZFMP_0 \
780 , ZFMP_1 \
781 , ZFMP_2 \
782 , ZFMP_3 \
783 , ZFMP_4 \
784 , ZFMP_5 \
785 , ZFMP_6 \
786 ) \
787 _ZFP_ZFMETHOD_IMPL_DECLARE( \
788 _ZFP_ZFMETHOD_IMPL_isInline, \
789 ReturnType, MethodName \
790 , _ZFP_MtdP_EXPAND(ZFMP_0) \
791 , _ZFP_MtdP_EXPAND(ZFMP_1) \
792 , _ZFP_MtdP_EXPAND(ZFMP_2) \
793 , _ZFP_MtdP_EXPAND(ZFMP_3) \
794 , _ZFP_MtdP_EXPAND(ZFMP_4) \
795 , _ZFP_MtdP_EXPAND(ZFMP_5) \
796 , _ZFP_MtdP_EXPAND(ZFMP_6) \
797 , _ZFP_ZFMP_DUMMY() \
798 )
800#define ZFMETHOD_IMPL_DEFINE_7(OwnerClass, \
801 ReturnType, MethodName \
802 , ZFMP_0 \
803 , ZFMP_1 \
804 , ZFMP_2 \
805 , ZFMP_3 \
806 , ZFMP_4 \
807 , ZFMP_5 \
808 , ZFMP_6 \
809 ) \
810 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
811 , _ZFP_MtdP_EXPAND(ZFMP_0) \
812 , _ZFP_MtdP_EXPAND(ZFMP_1) \
813 , _ZFP_MtdP_EXPAND(ZFMP_2) \
814 , _ZFP_MtdP_EXPAND(ZFMP_3) \
815 , _ZFP_MtdP_EXPAND(ZFMP_4) \
816 , _ZFP_MtdP_EXPAND(ZFMP_5) \
817 , _ZFP_MtdP_EXPAND(ZFMP_6) \
818 , _ZFP_ZFMP_DUMMY() \
819 )
820
821// ============================================================
822// 8 param method declare
824#define ZFMETHOD_INTERFACE_8(ReturnType, MethodName \
825 , ZFMP_0 \
826 , ZFMP_1 \
827 , ZFMP_2 \
828 , ZFMP_3 \
829 , ZFMP_4 \
830 , ZFMP_5 \
831 , ZFMP_6 \
832 , ZFMP_7 \
833 ) \
834 _ZFP_ZFMETHOD_DECLARE( \
835 public, ZFMethodTypeVirtual, _ZFP_ZFMETHOD_DECLARE_isPureVirtual, \
836 ReturnType, MethodName \
837 , _ZFP_MtdP_EXPAND(ZFMP_0) \
838 , _ZFP_MtdP_EXPAND(ZFMP_1) \
839 , _ZFP_MtdP_EXPAND(ZFMP_2) \
840 , _ZFP_MtdP_EXPAND(ZFMP_3) \
841 , _ZFP_MtdP_EXPAND(ZFMP_4) \
842 , _ZFP_MtdP_EXPAND(ZFMP_5) \
843 , _ZFP_MtdP_EXPAND(ZFMP_6) \
844 , _ZFP_MtdP_EXPAND(ZFMP_7) \
845 )
847#define ZFMETHOD_INTERFACE_DEFINE_8(OwnerClass, \
848 ReturnType, MethodName \
849 , ZFMP_0 \
850 , ZFMP_1 \
851 , ZFMP_2 \
852 , ZFMP_3 \
853 , ZFMP_4 \
854 , ZFMP_5 \
855 , ZFMP_6 \
856 , ZFMP_7 \
857 ) \
858 _ZFP_ZFMETHOD_DEFINE(OwnerClass, _ZFP_ZFMETHOD_DEFINE_isPureVirtual, ZF_CALLER_LINE, \
859 ReturnType, MethodName \
860 , _ZFP_MtdP_EXPAND(ZFMP_0) \
861 , _ZFP_MtdP_EXPAND(ZFMP_1) \
862 , _ZFP_MtdP_EXPAND(ZFMP_2) \
863 , _ZFP_MtdP_EXPAND(ZFMP_3) \
864 , _ZFP_MtdP_EXPAND(ZFMP_4) \
865 , _ZFP_MtdP_EXPAND(ZFMP_5) \
866 , _ZFP_MtdP_EXPAND(ZFMP_6) \
867 , _ZFP_MtdP_EXPAND(ZFMP_7) \
868 )
870#define ZFMETHOD_IMPL_DECLARE_8(ReturnType, MethodName \
871 , ZFMP_0 \
872 , ZFMP_1 \
873 , ZFMP_2 \
874 , ZFMP_3 \
875 , ZFMP_4 \
876 , ZFMP_5 \
877 , ZFMP_6 \
878 , ZFMP_7 \
879 ) \
880 _ZFP_ZFMETHOD_IMPL_DECLARE( \
881 _ZFP_ZFMETHOD_IMPL_notInline, \
882 ReturnType, MethodName \
883 , _ZFP_MtdP_EXPAND(ZFMP_0) \
884 , _ZFP_MtdP_EXPAND(ZFMP_1) \
885 , _ZFP_MtdP_EXPAND(ZFMP_2) \
886 , _ZFP_MtdP_EXPAND(ZFMP_3) \
887 , _ZFP_MtdP_EXPAND(ZFMP_4) \
888 , _ZFP_MtdP_EXPAND(ZFMP_5) \
889 , _ZFP_MtdP_EXPAND(ZFMP_6) \
890 , _ZFP_MtdP_EXPAND(ZFMP_7) \
891 )
893#define ZFMETHOD_IMPL_INLINE_8(ReturnType, MethodName \
894 , ZFMP_0 \
895 , ZFMP_1 \
896 , ZFMP_2 \
897 , ZFMP_3 \
898 , ZFMP_4 \
899 , ZFMP_5 \
900 , ZFMP_6 \
901 , ZFMP_7 \
902 ) \
903 _ZFP_ZFMETHOD_IMPL_DECLARE( \
904 _ZFP_ZFMETHOD_IMPL_isInline, \
905 ReturnType, MethodName \
906 , _ZFP_MtdP_EXPAND(ZFMP_0) \
907 , _ZFP_MtdP_EXPAND(ZFMP_1) \
908 , _ZFP_MtdP_EXPAND(ZFMP_2) \
909 , _ZFP_MtdP_EXPAND(ZFMP_3) \
910 , _ZFP_MtdP_EXPAND(ZFMP_4) \
911 , _ZFP_MtdP_EXPAND(ZFMP_5) \
912 , _ZFP_MtdP_EXPAND(ZFMP_6) \
913 , _ZFP_MtdP_EXPAND(ZFMP_7) \
914 )
916#define ZFMETHOD_IMPL_DEFINE_8(OwnerClass, \
917 ReturnType, MethodName \
918 , ZFMP_0 \
919 , ZFMP_1 \
920 , ZFMP_2 \
921 , ZFMP_3 \
922 , ZFMP_4 \
923 , ZFMP_5 \
924 , ZFMP_6 \
925 , ZFMP_7 \
926 ) \
927 _ZFP_ZFMETHOD_IMPL_DEFINE(OwnerClass, ReturnType, MethodName \
928 , _ZFP_MtdP_EXPAND(ZFMP_0) \
929 , _ZFP_MtdP_EXPAND(ZFMP_1) \
930 , _ZFP_MtdP_EXPAND(ZFMP_2) \
931 , _ZFP_MtdP_EXPAND(ZFMP_3) \
932 , _ZFP_MtdP_EXPAND(ZFMP_4) \
933 , _ZFP_MtdP_EXPAND(ZFMP_5) \
934 , _ZFP_MtdP_EXPAND(ZFMP_6) \
935 , _ZFP_MtdP_EXPAND(ZFMP_7) \
936 )
937
938/* ZFMETHOD_MAX_PARAM */
939
941#endif // #ifndef _ZFI_ZFMethodInterfaceDeclare_h_
942
reflectable method definination for ZFFramework
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98