13#ifndef ROOT_TGWin32ProxyDefs
14#define ROOT_TGWin32ProxyDefs
19#define _NAME4_(name1,name2,name3,name4) _NAME3_(name1,name2,name3)name4
43#define DEBUG_PROFILE_PROXY_START(method)\
50 gDebugValue = gDebug;\
51 debug = (gDebugValue==kDebugProfile) || (gDebugValue==kDebugTrace);\
53 start = GetMilliSeconds();\
56 printf(" method name hits time/hits(ms) time(ms) | Total = %d hits %6.2f ms\n",total,total_time );\
57 printf("------------------------------------------------------------------------------------------------------------\n");\
60 printf(" %-30s %-6d %-3.2f %-4.2f\n",#method,i,t/i,t);\
62 total_time = t = total = i = 0;\
66#define DEBUG_PROFILE_PROXY_STOP(method)\
69 double dt = GetMilliSeconds() - start;\
73 if (gDebugValue==kDebugTrace) printf(#method " %d\n",i);\
79#define RETURN_PROXY_OBJECT(klass)\
80_NAME2_(T,klass)* _NAME3_(TGWin32,klass,Proxy)::ProxyObject()\
82 static TList *gListOfProxies = new TList();\
83 static _NAME3_(TGWin32,klass,Proxy) *proxy = 0;\
84 ULong_t id = ::GetCurrentThreadId();\
85 if (proxy && (proxy->GetId()==id)) return proxy;\
86 if (id==fgMainThreadId) return _NAME3_(TGWin32,klass,Proxy)::RealObject();\
87 TIter next(gListOfProxies);\
88 while ((proxy=(_NAME3_(TGWin32,klass,Proxy)*)next())) {\
89 if (proxy->GetId()==id) {\
93 proxy = new _NAME3_(TGWin32,klass,Proxy)();\
94 gListOfProxies->Add(proxy);\
100#define VOID_METHOD_ARG0_LOCK(klass,method)\
101void _NAME3_(TGWin32,klass,Proxy)::method()\
103 DEBUG_PROFILE_PROXY_START(method)\
105 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
107 DEBUG_PROFILE_PROXY_STOP(method)\
111#define VOID_METHOD_ARG1_LOCK(klass,method,type1,par1)\
112void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
114 DEBUG_PROFILE_PROXY_START(method)\
116 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1);\
118 DEBUG_PROFILE_PROXY_STOP(method)\
122#define VOID_METHOD_ARG2_LOCK(klass,method,type1,par1,type2,par2)\
123void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
125 DEBUG_PROFILE_PROXY_START(method)\
127 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2);\
129 DEBUG_PROFILE_PROXY_STOP(method)\
133#define VOID_METHOD_ARG3_LOCK(klass,method,type1,par1,type2,par2,type3,par3)\
134void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
136 DEBUG_PROFILE_PROXY_START(method)\
138 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3);\
140 DEBUG_PROFILE_PROXY_STOP(method)\
144#define VOID_METHOD_ARG4_LOCK(klass,method,type1,par1,type2,par2,type3,par3,type4,par4)\
145void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
147 DEBUG_PROFILE_PROXY_START(method)\
149 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3,par4);\
151 DEBUG_PROFILE_PROXY_STOP(method)\
155#define VOID_METHOD_ARG5_LOCK(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5)\
156void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
158 DEBUG_PROFILE_PROXY_START(method)\
160 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3,par4,par5);\
162 DEBUG_PROFILE_PROXY_STOP(method)\
166#define VOID_METHOD_ARG0(klass,method,sync)\
167void _NAME3_(p2,klass,method)(void *in)\
169 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
172void _NAME3_(TGWin32,klass,Proxy)::method()\
174 DEBUG_PROFILE_PROXY_START(method)\
175 fCallBack = &_NAME3_(p2,klass,method);\
176 ForwardCallBack(sync);\
177 DEBUG_PROFILE_PROXY_STOP(method)\
181#define VOID_METHOD_ARG1(klass,method,type1,par1,sync)\
182void _NAME4_(p2,klass,method,par1)(void *in)\
188 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1);\
191void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
193 DEBUG_PROFILE_PROXY_START(method)\
196 tmp(type1 par1):par1(par1) {}\
198 fParam = new tmp(par1);\
199 fCallBack = &_NAME4_(p2,klass,method,par1);\
200 Bool_t batch = ForwardCallBack(sync);\
201 par1 = ((tmp*)fParam)->par1;\
202 if (!batch) delete fParam;\
203 DEBUG_PROFILE_PROXY_STOP(method)\
207#define VOID_METHOD_ARG2(klass,method,type1,par1,type2,par2,sync)\
208void _NAME4_(p2,klass,method,par1)(void *in)\
211 type1 par1; type2 par2;\
214 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2);\
217void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
219 DEBUG_PROFILE_PROXY_START(method)\
221 type1 par1; type2 par2;\
222 tmp(type1 par1,type2 par2):par1(par1),par2(par2) {}\
224 fParam = new tmp(par1,par2);\
225 fCallBack = &_NAME4_(p2,klass,method,par1);\
226 Bool_t batch = ForwardCallBack(sync);\
227 par1 = ((tmp*)fParam)->par1;\
228 par2 = ((tmp*)fParam)->par2;\
229 if (!batch) delete fParam;\
230 DEBUG_PROFILE_PROXY_STOP(method)\
234#define VOID_METHOD_ARG3(klass,method,type1,par1,type2,par2,type3,par3,sync)\
235void _NAME4_(p2,klass,method,par1)(void *in)\
238 type1 par1; type2 par2; type3 par3;\
241 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3);\
244void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
246 DEBUG_PROFILE_PROXY_START(method)\
248 type1 par1; type2 par2; type3 par3;\
249 tmp(type1 par1,type2 par2,type3 par3):par1(par1),par2(par2),par3(par3) {}\
251 fParam = new tmp(par1,par2,par3);\
252 fCallBack = &_NAME4_(p2,klass,method,par1);\
253 Bool_t batch = ForwardCallBack(sync);\
254 par1 = ((tmp*)fParam)->par1;\
255 par2 = ((tmp*)fParam)->par2;\
256 par3 = ((tmp*)fParam)->par3;\
257 if (!batch) delete fParam;\
258 DEBUG_PROFILE_PROXY_STOP(method)\
262#define VOID_METHOD_ARG4(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,sync)\
263void _NAME4_(p2,klass,method,par1)(void *in)\
266 type1 par1; type2 par2; type3 par3; type4 par4;\
269 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4);\
272void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
274 DEBUG_PROFILE_PROXY_START(method)\
276 type1 par1; type2 par2; type3 par3; type4 par4;\
277 tmp(type1 par1,type2 par2,type3 par3,type4 par4):par1(par1),par2(par2),par3(par3),par4(par4) {}\
279 fParam = new tmp(par1,par2,par3,par4);\
280 fCallBack = &_NAME4_(p2,klass,method,par1);\
281 Bool_t batch = ForwardCallBack(sync);\
282 par1 = ((tmp*)fParam)->par1;\
283 par2 = ((tmp*)fParam)->par2;\
284 par3 = ((tmp*)fParam)->par3;\
285 par4 = ((tmp*)fParam)->par4;\
286 if (!batch) delete fParam;\
287 DEBUG_PROFILE_PROXY_STOP(method)\
291#define VOID_METHOD_ARG5(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,sync)\
292void _NAME4_(p2,klass,method,par1)(void *in)\
295 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5;\
298 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5);\
301void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
303 DEBUG_PROFILE_PROXY_START(method)\
305 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5;\
306 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5) {}\
308 fParam = new tmp(par1,par2,par3,par4,par5);\
309 fCallBack = &_NAME4_(p2,klass,method,par1);\
310 Bool_t batch = ForwardCallBack(sync);\
311 par1 = ((tmp*)fParam)->par1;\
312 par2 = ((tmp*)fParam)->par2;\
313 par3 = ((tmp*)fParam)->par3;\
314 par4 = ((tmp*)fParam)->par4;\
315 par5 = ((tmp*)fParam)->par5;\
316 if (!batch) delete fParam;\
317 DEBUG_PROFILE_PROXY_STOP(method)\
321#define VOID_METHOD_ARG6(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,sync)\
322void _NAME4_(p2,klass,method,par1)(void *in)\
325 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6;\
328 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6);\
331void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6)\
333 DEBUG_PROFILE_PROXY_START(method)\
335 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6;\
336 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6) {}\
338 fParam = new tmp(par1,par2,par3,par4,par5,par6);\
339 fCallBack = &_NAME4_(p2,klass,method,par1);\
340 Bool_t batch = ForwardCallBack(sync);\
341 par1 = ((tmp*)fParam)->par1;\
342 par2 = ((tmp*)fParam)->par2;\
343 par3 = ((tmp*)fParam)->par3;\
344 par4 = ((tmp*)fParam)->par4;\
345 par5 = ((tmp*)fParam)->par5;\
346 par6 = ((tmp*)fParam)->par6;\
347 if (!batch) delete fParam;\
348 DEBUG_PROFILE_PROXY_STOP(method)\
352#define VOID_METHOD_ARG7(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,sync)\
353void _NAME4_(p2,klass,method,par1)(void *in)\
356 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7;\
359 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7);\
362void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7)\
364 DEBUG_PROFILE_PROXY_START(method)\
366 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7;\
367 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7) {}\
369 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7);\
370 fCallBack = &_NAME4_(p2,klass,method,par1);\
371 Bool_t batch = ForwardCallBack(sync);\
372 par1 = ((tmp*)fParam)->par1;\
373 par2 = ((tmp*)fParam)->par2;\
374 par3 = ((tmp*)fParam)->par3;\
375 par4 = ((tmp*)fParam)->par4;\
376 par5 = ((tmp*)fParam)->par5;\
377 par6 = ((tmp*)fParam)->par6;\
378 par7 = ((tmp*)fParam)->par7;\
379 if (!batch) delete fParam;\
380 DEBUG_PROFILE_PROXY_STOP(method)\
384#define VOID_METHOD_ARG8(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,sync)\
385void _NAME4_(p2,klass,method,par1)(void *in)\
388 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8;\
391 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8);\
394void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8)\
396 DEBUG_PROFILE_PROXY_START(method)\
398 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8;\
399 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8) {}\
401 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8);\
402 fCallBack = &_NAME4_(p2,klass,method,par1);\
403 Bool_t batch = ForwardCallBack(sync);\
404 par1 = ((tmp*)fParam)->par1;\
405 par2 = ((tmp*)fParam)->par2;\
406 par3 = ((tmp*)fParam)->par3;\
407 par4 = ((tmp*)fParam)->par4;\
408 par5 = ((tmp*)fParam)->par5;\
409 par6 = ((tmp*)fParam)->par6;\
410 par7 = ((tmp*)fParam)->par7;\
411 par8 = ((tmp*)fParam)->par8;\
412 if (!batch) delete fParam;\
413 DEBUG_PROFILE_PROXY_STOP(method)\
417#define VOID_METHOD_ARG9(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,type9,par9,sync)\
418void _NAME4_(p2,klass,method,par1)(void *in)\
421 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9;\
424 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9);\
427void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9)\
429 DEBUG_PROFILE_PROXY_START(method)\
431 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9;\
432 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8),par9(par9) {}\
434 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9);\
435 fCallBack = &_NAME4_(p2,klass,method,par1);\
436 Bool_t batch = ForwardCallBack(sync);\
437 par1 = ((tmp*)fParam)->par1;\
438 par2 = ((tmp*)fParam)->par2;\
439 par3 = ((tmp*)fParam)->par3;\
440 par4 = ((tmp*)fParam)->par4;\
441 par5 = ((tmp*)fParam)->par5;\
442 par6 = ((tmp*)fParam)->par6;\
443 par7 = ((tmp*)fParam)->par7;\
444 par8 = ((tmp*)fParam)->par8;\
445 par9 = ((tmp*)fParam)->par9;\
446 if (!batch) delete fParam;\
447 DEBUG_PROFILE_PROXY_STOP(method)\
451#define VOID_METHOD_ARG10(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,type9,par9,type10,par10)\
452void _NAME4_(p2,klass,method,par1)(void *in)\
455 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10;\
458 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9,p->par10);\
461type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10)\
463 DEBUG_PROFILE_PROXY_START(method)\
465 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10;\
466 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8),par9(par9),par10(par10) {}\
468 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10);\
469 fCallBack = &_NAME4_(p2,klass,method,par1);\
470 Bool_t batch = ForwardCallBack(1);\
471 par1 = ((tmp*)fParam)->par1;\
472 par2 = ((tmp*)fParam)->par2;\
473 par3 = ((tmp*)fParam)->par3;\
474 par4 = ((tmp*)fParam)->par4;\
475 par5 = ((tmp*)fParam)->par5;\
476 par6 = ((tmp*)fParam)->par6;\
477 par7 = ((tmp*)fParam)->par7;\
478 par8 = ((tmp*)fParam)->par8;\
479 par9 = ((tmp*)fParam)->par9;\
480 par10 = ((tmp*)fParam)->par10;\
481 if (!batch) delete fParam;\
482 DEBUG_PROFILE_PROXY_STOP(method)\
486#define VOID_METHOD_ARG11(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,type9,par9,type10,par10,type11,par11)\
487void _NAME4_(p2,klass,method,par1)(void *in)\
490 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11;\
493 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9,p->par10,p->par11);\
496type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10,type11 par11)\
498 DEBUG_PROFILE_PROXY_START(method)\
500 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11;\
501 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10,type11 par11):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8),par9(par9),par10(par10),par11(par11) {}\
503 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10,par11);\
504 fCallBack = &_NAME4_(p2,klass,method,par1);\
505 Bool_t batch = ForwardCallBack(1);\
506 par1 = ((tmp*)fParam)->par1;\
507 par2 = ((tmp*)fParam)->par2;\
508 par3 = ((tmp*)fParam)->par3;\
509 par4 = ((tmp*)fParam)->par4;\
510 par5 = ((tmp*)fParam)->par5;\
511 par6 = ((tmp*)fParam)->par6;\
512 par7 = ((tmp*)fParam)->par7;\
513 par8 = ((tmp*)fParam)->par8;\
514 par9 = ((tmp*)fParam)->par9;\
515 par10 = ((tmp*)fParam)->par10;\
516 par11 = ((tmp*)fParam)->par11;\
517 if (!batch) delete fParam;\
518 DEBUG_PROFILE_PROXY_STOP(method)\
522#define RETURN_METHOD_ARG0_CONST(klass,type,method)\
523type _NAME3_(TGWin32,klass,Proxy)::method() const\
527 ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
533#define RETURN_METHOD_ARG0(klass,type,method)\
534void _NAME3_(p2,klass,method)(void *in)\
540 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
543type _NAME3_(TGWin32,klass,Proxy)::method()\
545 DEBUG_PROFILE_PROXY_START(method)\
551 fCallBack = &_NAME3_(p2,klass,method);\
552 Bool_t batch = ForwardCallBack(1);\
553 ret = ((tmp*)fParam)->ret;\
554 if (!batch) delete fParam;\
555 DEBUG_PROFILE_PROXY_STOP(method)\
560#define RETURN_METHOD_ARG1(klass,type,method,type1,par1)\
561void _NAME4_(p2,klass,method,par1)(void *in)\
564 type1 par1; type ret;\
567 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1);\
570type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
572 DEBUG_PROFILE_PROXY_START(method)\
575 type1 par1; type ret;\
576 tmp(type1 par1):par1(par1) {}\
578 fParam = new tmp(par1);\
579 fCallBack = &_NAME4_(p2,klass,method,par1);\
580 Bool_t batch = ForwardCallBack(1);\
581 par1 = ((tmp*)fParam)->par1;\
582 ret = ((tmp*)fParam)->ret;\
583 if (!batch) delete fParam;\
584 DEBUG_PROFILE_PROXY_STOP(method)\
589#define RETURN_METHOD_ARG2(klass,type,method,type1,par1,type2,par2)\
590void _NAME4_(p2,klass,method,par1)(void *in)\
593 type1 par1; type2 par2; type ret;\
596 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2);\
599type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
601 DEBUG_PROFILE_PROXY_START(method)\
604 type1 par1; type2 par2; type ret;\
605 tmp(type1 par1,type2 par2):par1(par1),par2(par2) {}\
607 fParam = new tmp(par1,par2);\
608 fCallBack = &_NAME4_(p2,klass,method,par1);\
609 Bool_t batch = ForwardCallBack(1);\
610 par1 = ((tmp*)fParam)->par1;\
611 par2 = ((tmp*)fParam)->par2;\
612 ret = ((tmp*)fParam)->ret;\
613 if (!batch) delete fParam;\
614 DEBUG_PROFILE_PROXY_STOP(method)\
619#define RETURN_METHOD_ARG3(klass,type,method,type1,par1,type2,par2,type3,par3)\
620void _NAME4_(p2,klass,method,par1)(void *in)\
623 type1 par1; type2 par2; type3 par3; type ret;\
626 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3);\
629type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
631 DEBUG_PROFILE_PROXY_START(method)\
634 type1 par1; type2 par2; type3 par3; type ret;\
635 tmp(type1 par1,type2 par2,type3 par3):par1(par1),par2(par2),par3(par3) {}\
637 fParam = new tmp(par1,par2,par3);\
638 fCallBack = &_NAME4_(p2,klass,method,par1);\
639 Bool_t batch = ForwardCallBack(1);\
640 par1 = ((tmp*)fParam)->par1;\
641 par2 = ((tmp*)fParam)->par2;\
642 par3 = ((tmp*)fParam)->par3;\
643 ret = ((tmp*)fParam)->ret;\
644 if (!batch) delete fParam;\
645 DEBUG_PROFILE_PROXY_STOP(method)\
650#define RETURN_METHOD_ARG4(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4)\
651void _NAME4_(p2,klass,method,par1)(void *in)\
654 type1 par1; type2 par2; type3 par3; type4 par4; type ret;\
657 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4);\
660type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
662 DEBUG_PROFILE_PROXY_START(method)\
665 type1 par1; type2 par2; type3 par3; type4 par4; type ret;\
666 tmp(type1 par1,type2 par2,type3 par3,type4 par4):par1(par1),par2(par2),par3(par3),par4(par4) {}\
668 fParam = new tmp(par1,par2,par3,par4);\
669 fCallBack = &_NAME4_(p2,klass,method,par1);\
670 Bool_t batch = ForwardCallBack(1);\
671 par1 = ((tmp*)fParam)->par1;\
672 par2 = ((tmp*)fParam)->par2;\
673 par3 = ((tmp*)fParam)->par3;\
674 par4 = ((tmp*)fParam)->par4;\
675 ret = ((tmp*)fParam)->ret;\
676 if (!batch) delete fParam;\
677 DEBUG_PROFILE_PROXY_STOP(method)\
682#define RETURN_METHOD_ARG5(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5)\
683void _NAME4_(p2,klass,method,par1)(void *in)\
686 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type ret;\
689 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5);\
692type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
694 DEBUG_PROFILE_PROXY_START(method)\
697 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type ret;\
698 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5) {}\
700 fParam = new tmp(par1,par2,par3,par4,par5);\
701 fCallBack = &_NAME4_(p2,klass,method,par1);\
702 Bool_t batch = ForwardCallBack(1);\
703 par1 = ((tmp*)fParam)->par1;\
704 par2 = ((tmp*)fParam)->par2;\
705 par3 = ((tmp*)fParam)->par3;\
706 par4 = ((tmp*)fParam)->par4;\
707 par5 = ((tmp*)fParam)->par5;\
708 ret = ((tmp*)fParam)->ret;\
709 if (!batch) delete fParam;\
710 DEBUG_PROFILE_PROXY_STOP(method)\
715#define RETURN_METHOD_ARG6(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6)\
716void _NAME4_(p2,klass,method,par1)(void *in)\
719 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type ret;\
722 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6);\
725type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6)\
727 DEBUG_PROFILE_PROXY_START(method)\
730 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type ret;\
731 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6) {}\
733 fParam = new tmp(par1,par2,par3,par4,par5,par6);\
734 fCallBack = &_NAME4_(p2,klass,method,par1);\
735 Bool_t batch = ForwardCallBack(1);\
736 par1 = ((tmp*)fParam)->par1;\
737 par2 = ((tmp*)fParam)->par2;\
738 par3 = ((tmp*)fParam)->par3;\
739 par4 = ((tmp*)fParam)->par4;\
740 par5 = ((tmp*)fParam)->par5;\
741 par6 = ((tmp*)fParam)->par6;\
742 ret = ((tmp*)fParam)->ret;\
743 if (!batch) delete fParam;\
744 DEBUG_PROFILE_PROXY_STOP(method)\
749#define RETURN_METHOD_ARG7(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7)\
750void _NAME4_(p2,klass,method,par1)(void *in)\
753 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type ret;\
756 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7);\
759type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7)\
761 DEBUG_PROFILE_PROXY_START(method)\
764 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type ret;\
765 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7) {}\
767 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7);\
768 fCallBack = &_NAME4_(p2,klass,method,par1);\
769 Bool_t batch = ForwardCallBack(1);\
770 par1 = ((tmp*)fParam)->par1;\
771 par2 = ((tmp*)fParam)->par2;\
772 par3 = ((tmp*)fParam)->par3;\
773 par4 = ((tmp*)fParam)->par4;\
774 par5 = ((tmp*)fParam)->par5;\
775 par6 = ((tmp*)fParam)->par6;\
776 par7 = ((tmp*)fParam)->par7;\
777 ret = ((tmp*)fParam)->ret;\
778 if (!batch) delete fParam;\
779 DEBUG_PROFILE_PROXY_STOP(method)\
784#define RETURN_METHOD_ARG8(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8)\
785void _NAME4_(p2,klass,method,par1)(void *in)\
788 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type ret;\
791 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8);\
794type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8)\
796 DEBUG_PROFILE_PROXY_START(method)\
799 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type ret;\
800 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8) {}\
802 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8);\
803 fCallBack = &_NAME4_(p2,klass,method,par1);\
804 Bool_t batch = ForwardCallBack(1);\
805 par1 = ((tmp*)fParam)->par1;\
806 par2 = ((tmp*)fParam)->par2;\
807 par3 = ((tmp*)fParam)->par3;\
808 par4 = ((tmp*)fParam)->par4;\
809 par5 = ((tmp*)fParam)->par5;\
810 par6 = ((tmp*)fParam)->par6;\
811 par7 = ((tmp*)fParam)->par7;\
812 par8 = ((tmp*)fParam)->par8;\
813 ret = ((tmp*)fParam)->ret;\
814 if (!batch) delete fParam;\
815 DEBUG_PROFILE_PROXY_STOP(method)\
820#define RETURN_METHOD_ARG9(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,type9,par9)\
821void _NAME4_(p2,klass,method,par1)(void *in)\
824 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type ret;\
827 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9);\
830type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9)\
832 DEBUG_PROFILE_PROXY_START(method)\
835 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type ret;\
836 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8),par9(par9) {}\
838 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9);\
839 fCallBack = &_NAME4_(p2,klass,method,par1);\
840 Bool_t batch = ForwardCallBack(1);\
841 par1 = ((tmp*)fParam)->par1;\
842 par2 = ((tmp*)fParam)->par2;\
843 par3 = ((tmp*)fParam)->par3;\
844 par4 = ((tmp*)fParam)->par4;\
845 par5 = ((tmp*)fParam)->par5;\
846 par6 = ((tmp*)fParam)->par6;\
847 par7 = ((tmp*)fParam)->par7;\
848 par8 = ((tmp*)fParam)->par8;\
849 par9 = ((tmp*)fParam)->par9;\
850 ret = ((tmp*)fParam)->ret;\
851 if (!batch) delete fParam;\
852 DEBUG_PROFILE_PROXY_STOP(method)\
857#define RETURN_METHOD_ARG10(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,type9,par9,type10,par10)\
858void _NAME4_(p2,klass,method,par1)(void *in)\
861 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type ret;\
864 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9,p->par10);\
867type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10)\
869 DEBUG_PROFILE_PROXY_START(method)\
872 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type ret;\
873 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8),par9(par9),par10(par10) {}\
875 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10);\
876 fCallBack = &_NAME4_(p2,klass,method,par1);\
877 Bool_t batch = ForwardCallBack(1);\
878 par1 = ((tmp*)fParam)->par1;\
879 par2 = ((tmp*)fParam)->par2;\
880 par3 = ((tmp*)fParam)->par3;\
881 par4 = ((tmp*)fParam)->par4;\
882 par5 = ((tmp*)fParam)->par5;\
883 par6 = ((tmp*)fParam)->par6;\
884 par7 = ((tmp*)fParam)->par7;\
885 par8 = ((tmp*)fParam)->par8;\
886 par9 = ((tmp*)fParam)->par9;\
887 par10 = ((tmp*)fParam)->par10;\
888 ret = ((tmp*)fParam)->ret;\
889 if (!batch) delete fParam;\
890 DEBUG_PROFILE_PROXY_STOP(method)\
895#define RETURN_METHOD_ARG11(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,type9,par9,type10,par10,type11,par11)\
896void _NAME4_(p2,klass,method,par1)(void *in)\
899 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11; type ret;\
902 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9,p->par10,p->par11);\
905type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10,type11 par11)\
907 DEBUG_PROFILE_PROXY_START(method)\
910 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11; type ret;\
911 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9,type10 par10,type11 par11):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5),par6(par6),par7(par7),par8(par8),par9(par9),par10(par10),par11(par11) {}\
913 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10,par11);\
914 fCallBack = &_NAME4_(p2,klass,method,par1);\
915 Bool_t batch = ForwardCallBack(1);\
916 par1 = ((tmp*)fParam)->par1;\
917 par2 = ((tmp*)fParam)->par2;\
918 par3 = ((tmp*)fParam)->par3;\
919 par4 = ((tmp*)fParam)->par4;\
920 par5 = ((tmp*)fParam)->par5;\
921 par6 = ((tmp*)fParam)->par6;\
922 par7 = ((tmp*)fParam)->par7;\
923 par8 = ((tmp*)fParam)->par8;\
924 par9 = ((tmp*)fParam)->par9;\
925 par10 = ((tmp*)fParam)->par10;\
926 par11 = ((tmp*)fParam)->par11;\
927 ret = ((tmp*)fParam)->ret;\
928 if (!batch) delete fParam;\
929 DEBUG_PROFILE_PROXY_STOP(method)\
static unsigned int total