Logo ROOT  
Reference Guide
TGWin32ProxyDefs.h
Go to the documentation of this file.
1// @(#)root/win32gdk:$Id$
2// Author: Valeriy Onuchin 08/08/2003
3
4
5/*************************************************************************
6 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
7 * All rights reserved. *
8 * *
9 * For the licensing terms see $ROOTSYS/LICENSE. *
10 * For the list of contributors see $ROOTSYS/README/CREDITS. *
11 *************************************************************************/
12
13#ifndef ROOT_TGWin32ProxyDefs
14#define ROOT_TGWin32ProxyDefs
15
16#include "Rtypes.h" // CINT headers
17
18
19#define _NAME4_(name1,name2,name3,name4) _NAME3_(name1,name2,name3)name4
20
21
22
23///////////////////// debug & profile interface /////////////////////////////
24//
25// - recompile with gDebugProxy = 1
26//
27// root [0] gDebug = -123 // start profiling
28//or
29// root [0] gDebug = -1234 // start profiling and debugging(call trace)
30//
31// root [1] .x macro.C // profile macro.C
32// root [2] gDebug = 0 // stop profiling
33// root [3] .x macro.C // print results
34//
35
36static int gDebugProxy = 0; // if kTRUE - use debug & profile interface
37
38enum { kDebugProfile = -123, kDebugTrace = -1234 };
39
40static unsigned int total = 0;
41static double total_time = 0;
42
43#define DEBUG_PROFILE_PROXY_START(method)\
44 static int i = 0;\
45 static double t = 0;\
46 double start = 0;\
47 int gDebugValue = 0;\
48 int debug = 0;\
49 if (gDebugProxy) {\
50 gDebugValue = gDebug;\
51 debug = (gDebugValue==kDebugProfile) || (gDebugValue==kDebugTrace);\
52 if (debug) {\
53 start = GetMilliSeconds();\
54 } else {\
55 if (total) {\
56 printf(" method name hits time/hits(ms) time(ms) | Total = %d hits %6.2f ms\n",total,total_time );\
57 printf("------------------------------------------------------------------------------------------------------------\n");\
58 }\
59 if (i && !total) {\
60 printf(" %-30s %-6d %-3.2f %-4.2f\n",#method,i,t/i,t);\
61 }\
62 total_time = t = total = i = 0;\
63 }\
64 }\
65
66#define DEBUG_PROFILE_PROXY_STOP(method)\
67 if (gDebugProxy) {\
68 if (debug) {\
69 double dt = GetMilliSeconds() - start;\
70 i++; total++;\
71 t += dt;\
72 total_time += dt;\
73 if (gDebugValue==kDebugTrace) printf(#method " %d\n",i);\
74 }\
75 }\
76
77
78//______________________________________________________________________________
79#define RETURN_PROXY_OBJECT(klass)\
80_NAME2_(T,klass)* _NAME3_(TGWin32,klass,Proxy)::ProxyObject()\
81{\
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) {\
90 return proxy;\
91 }\
92 }\
93 proxy = new _NAME3_(TGWin32,klass,Proxy)();\
94 gListOfProxies->Add(proxy);\
95 return proxy;\
96}
97
98// ***_LOCK macros for setter methods which do nothing only set data members
99//______________________________________________________________________________
100#define VOID_METHOD_ARG0_LOCK(klass,method)\
101void _NAME3_(TGWin32,klass,Proxy)::method()\
102{\
103 DEBUG_PROFILE_PROXY_START(method)\
104 TGWin32::Lock();\
105 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
106 TGWin32::Unlock();\
107 DEBUG_PROFILE_PROXY_STOP(method)\
108}
109
110//______________________________________________________________________________
111#define VOID_METHOD_ARG1_LOCK(klass,method,type1,par1)\
112void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
113{\
114 DEBUG_PROFILE_PROXY_START(method)\
115 TGWin32::Lock();\
116 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1);\
117 TGWin32::Unlock();\
118 DEBUG_PROFILE_PROXY_STOP(method)\
119}
120
121//______________________________________________________________________________
122#define VOID_METHOD_ARG2_LOCK(klass,method,type1,par1,type2,par2)\
123void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
124{\
125 DEBUG_PROFILE_PROXY_START(method)\
126 TGWin32::Lock();\
127 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2);\
128 TGWin32::Unlock();\
129 DEBUG_PROFILE_PROXY_STOP(method)\
130}
131
132//______________________________________________________________________________
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)\
135{\
136 DEBUG_PROFILE_PROXY_START(method)\
137 TGWin32::Lock();\
138 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3);\
139 TGWin32::Unlock();\
140 DEBUG_PROFILE_PROXY_STOP(method)\
141}
142
143//______________________________________________________________________________
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)\
146{\
147 DEBUG_PROFILE_PROXY_START(method)\
148 TGWin32::Lock();\
149 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3,par4);\
150 TGWin32::Unlock();\
151 DEBUG_PROFILE_PROXY_STOP(method)\
152}
153
154//______________________________________________________________________________
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)\
157{\
158 DEBUG_PROFILE_PROXY_START(method)\
159 TGWin32::Lock();\
160 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3,par4,par5);\
161 TGWin32::Unlock();\
162 DEBUG_PROFILE_PROXY_STOP(method)\
163}
164
165//______________________________________________________________________________
166#define VOID_METHOD_ARG0(klass,method,sync)\
167void _NAME3_(p2,klass,method)(void *in)\
168{\
169 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
170}\
171\
172void _NAME3_(TGWin32,klass,Proxy)::method()\
173{\
174 DEBUG_PROFILE_PROXY_START(method)\
175 fCallBack = &_NAME3_(p2,klass,method);\
176 ForwardCallBack(sync);\
177 DEBUG_PROFILE_PROXY_STOP(method)\
178}
179
180//______________________________________________________________________________
181#define VOID_METHOD_ARG1(klass,method,type1,par1,sync)\
182void _NAME4_(p2,klass,method,par1)(void *in)\
183{\
184 struct tmp {\
185 type1 par1;\
186 };\
187 tmp *p = (tmp*)in;\
188 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1);\
189}\
190\
191void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
192{\
193 DEBUG_PROFILE_PROXY_START(method)\
194 struct tmp {\
195 type1 par1;\
196 tmp(type1 par1):par1(par1) {}\
197 };\
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)\
204}
205
206//______________________________________________________________________________
207#define VOID_METHOD_ARG2(klass,method,type1,par1,type2,par2,sync)\
208void _NAME4_(p2,klass,method,par1)(void *in)\
209{\
210 struct tmp {\
211 type1 par1; type2 par2;\
212 };\
213 tmp *p = (tmp*)in;\
214 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2);\
215}\
216\
217void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
218{\
219 DEBUG_PROFILE_PROXY_START(method)\
220 struct tmp {\
221 type1 par1; type2 par2;\
222 tmp(type1 par1,type2 par2):par1(par1),par2(par2) {}\
223 };\
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)\
231}
232
233//______________________________________________________________________________
234#define VOID_METHOD_ARG3(klass,method,type1,par1,type2,par2,type3,par3,sync)\
235void _NAME4_(p2,klass,method,par1)(void *in)\
236{\
237 struct tmp {\
238 type1 par1; type2 par2; type3 par3;\
239 };\
240 tmp *p = (tmp*)in;\
241 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3);\
242}\
243\
244void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
245{\
246 DEBUG_PROFILE_PROXY_START(method)\
247 struct tmp {\
248 type1 par1; type2 par2; type3 par3;\
249 tmp(type1 par1,type2 par2,type3 par3):par1(par1),par2(par2),par3(par3) {}\
250 };\
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)\
259}
260
261//______________________________________________________________________________
262#define VOID_METHOD_ARG4(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,sync)\
263void _NAME4_(p2,klass,method,par1)(void *in)\
264{\
265 struct tmp {\
266 type1 par1; type2 par2; type3 par3; type4 par4;\
267 };\
268 tmp *p = (tmp*)in;\
269 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4);\
270}\
271\
272void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
273{\
274 DEBUG_PROFILE_PROXY_START(method)\
275 struct tmp {\
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) {}\
278 };\
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)\
288}
289
290//______________________________________________________________________________
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)\
293{\
294 struct tmp {\
295 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5;\
296 };\
297 tmp *p = (tmp*)in;\
298 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5);\
299}\
300\
301void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
302{\
303 DEBUG_PROFILE_PROXY_START(method)\
304 struct tmp {\
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) {}\
307 };\
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)\
318}
319
320//______________________________________________________________________________
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)\
323{\
324 struct tmp {\
325 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6;\
326 };\
327 tmp *p = (tmp*)in;\
328 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6);\
329}\
330\
331void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6)\
332{\
333 DEBUG_PROFILE_PROXY_START(method)\
334 struct tmp {\
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) {}\
337 };\
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)\
349}
350
351//______________________________________________________________________________
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)\
354{\
355 struct tmp {\
356 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7;\
357 };\
358 tmp *p = (tmp*)in;\
359 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7);\
360}\
361\
362void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7)\
363{\
364 DEBUG_PROFILE_PROXY_START(method)\
365 struct tmp {\
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) {}\
368 };\
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)\
381}
382
383//______________________________________________________________________________
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)\
386{\
387 struct tmp {\
388 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8;\
389 };\
390 tmp *p = (tmp*)in;\
391 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8);\
392}\
393\
394void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8)\
395{\
396 DEBUG_PROFILE_PROXY_START(method)\
397 struct tmp {\
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) {}\
400 };\
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)\
414}
415
416//______________________________________________________________________________
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)\
419{\
420 struct tmp {\
421 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9;\
422 };\
423 tmp *p = (tmp*)in;\
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);\
425}\
426\
427void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9)\
428{\
429 DEBUG_PROFILE_PROXY_START(method)\
430 struct tmp {\
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) {}\
433 };\
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)\
448}
449
450//______________________________________________________________________________
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)\
453{\
454 struct tmp {\
455 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10;\
456 };\
457 tmp *p = (tmp*)in;\
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);\
459}\
460\
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)\
462{\
463 DEBUG_PROFILE_PROXY_START(method)\
464 struct tmp {\
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) {}\
467 };\
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)\
483}
484
485//______________________________________________________________________________
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)\
488{\
489 struct tmp {\
490 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11;\
491 };\
492 tmp *p = (tmp*)in;\
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);\
494}\
495\
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)\
497{\
498 DEBUG_PROFILE_PROXY_START(method)\
499 struct tmp {\
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) {}\
502 };\
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)\
519}
520
521//______________________________________________________________________________
522#define RETURN_METHOD_ARG0_CONST(klass,type,method)\
523type _NAME3_(TGWin32,klass,Proxy)::method() const\
524{\
525 type ret;\
526 TGWin32::Lock();\
527 ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
528 TGWin32::Unlock();\
529 return ret;\
530}
531
532//______________________________________________________________________________
533#define RETURN_METHOD_ARG0(klass,type,method)\
534void _NAME3_(p2,klass,method)(void *in)\
535{\
536 struct tmp {\
537 type ret;\
538 };\
539 tmp *p = (tmp*)in;\
540 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
541}\
542\
543type _NAME3_(TGWin32,klass,Proxy)::method()\
544{\
545 DEBUG_PROFILE_PROXY_START(method)\
546 type ret;\
547 struct tmp {\
548 type ret;\
549 };\
550 fParam = new tmp;\
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)\
556 return ret;\
557}
558
559//______________________________________________________________________________
560#define RETURN_METHOD_ARG1(klass,type,method,type1,par1)\
561void _NAME4_(p2,klass,method,par1)(void *in)\
562{\
563 struct tmp {\
564 type1 par1; type ret;\
565 };\
566 tmp *p = (tmp*)in;\
567 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1);\
568}\
569\
570type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
571{\
572 DEBUG_PROFILE_PROXY_START(method)\
573 type ret;\
574 struct tmp {\
575 type1 par1; type ret;\
576 tmp(type1 par1):par1(par1) {}\
577 };\
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)\
585 return ret;\
586}
587
588//______________________________________________________________________________
589#define RETURN_METHOD_ARG2(klass,type,method,type1,par1,type2,par2)\
590void _NAME4_(p2,klass,method,par1)(void *in)\
591{\
592 struct tmp {\
593 type1 par1; type2 par2; type ret;\
594 };\
595 tmp *p = (tmp*)in;\
596 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2);\
597}\
598\
599type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
600{\
601 DEBUG_PROFILE_PROXY_START(method)\
602 type ret;\
603 struct tmp {\
604 type1 par1; type2 par2; type ret;\
605 tmp(type1 par1,type2 par2):par1(par1),par2(par2) {}\
606 };\
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)\
615 return ret;\
616}
617
618//______________________________________________________________________________
619#define RETURN_METHOD_ARG3(klass,type,method,type1,par1,type2,par2,type3,par3)\
620void _NAME4_(p2,klass,method,par1)(void *in)\
621{\
622 struct tmp {\
623 type1 par1; type2 par2; type3 par3; type ret;\
624 };\
625 tmp *p = (tmp*)in;\
626 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3);\
627}\
628\
629type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
630{\
631 DEBUG_PROFILE_PROXY_START(method)\
632 type ret;\
633 struct tmp {\
634 type1 par1; type2 par2; type3 par3; type ret;\
635 tmp(type1 par1,type2 par2,type3 par3):par1(par1),par2(par2),par3(par3) {}\
636 };\
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)\
646 return ret;\
647}
648
649//______________________________________________________________________________
650#define RETURN_METHOD_ARG4(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4)\
651void _NAME4_(p2,klass,method,par1)(void *in)\
652{\
653 struct tmp {\
654 type1 par1; type2 par2; type3 par3; type4 par4; type ret;\
655 };\
656 tmp *p = (tmp*)in;\
657 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4);\
658}\
659\
660type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
661{\
662 DEBUG_PROFILE_PROXY_START(method)\
663 type ret;\
664 struct tmp {\
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) {}\
667 };\
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)\
678 return ret;\
679}
680
681//______________________________________________________________________________
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)\
684{\
685 struct tmp {\
686 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type ret;\
687 };\
688 tmp *p = (tmp*)in;\
689 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5);\
690}\
691\
692type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
693{\
694 DEBUG_PROFILE_PROXY_START(method)\
695 type ret;\
696 struct tmp {\
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) {}\
699 };\
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)\
711 return ret;\
712}
713
714//______________________________________________________________________________
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)\
717{\
718 struct tmp {\
719 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type ret;\
720 };\
721 tmp *p = (tmp*)in;\
722 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6);\
723}\
724\
725type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6)\
726{\
727 DEBUG_PROFILE_PROXY_START(method)\
728 type ret;\
729 struct tmp {\
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) {}\
732 };\
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)\
745 return ret;\
746}
747
748//______________________________________________________________________________
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)\
751{\
752 struct tmp {\
753 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type ret;\
754 };\
755 tmp *p = (tmp*)in;\
756 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7);\
757}\
758\
759type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7)\
760{\
761 DEBUG_PROFILE_PROXY_START(method)\
762 type ret;\
763 struct tmp {\
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) {}\
766 };\
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)\
780 return ret;\
781}
782
783//______________________________________________________________________________
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)\
786{\
787 struct tmp {\
788 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type ret;\
789 };\
790 tmp *p = (tmp*)in;\
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);\
792}\
793\
794type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8)\
795{\
796 DEBUG_PROFILE_PROXY_START(method)\
797 type ret;\
798 struct tmp {\
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) {}\
801 };\
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)\
816 return ret;\
817}
818
819//______________________________________________________________________________
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)\
822{\
823 struct tmp {\
824 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type ret;\
825 };\
826 tmp *p = (tmp*)in;\
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);\
828}\
829\
830type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9)\
831{\
832 DEBUG_PROFILE_PROXY_START(method)\
833 type ret;\
834 struct tmp {\
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) {}\
837 };\
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)\
853 return ret;\
854}
855
856//______________________________________________________________________________
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)\
859{\
860 struct tmp {\
861 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type ret;\
862 };\
863 tmp *p = (tmp*)in;\
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);\
865}\
866\
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)\
868{\
869 DEBUG_PROFILE_PROXY_START(method)\
870 type ret;\
871 struct tmp {\
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) {}\
874 };\
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)\
891 return ret;\
892}
893
894//______________________________________________________________________________
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)\
897{\
898 struct tmp {\
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;\
900 };\
901 tmp *p = (tmp*)in;\
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);\
903}\
904\
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)\
906{\
907 DEBUG_PROFILE_PROXY_START(method)\
908 type ret;\
909 struct tmp {\
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) {}\
912 };\
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)\
930 return ret;\
931}
932
933#endif
@ kDebugProfile
@ kDebugTrace
static int gDebugProxy
static double total_time
static unsigned int total