00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef ROOT_TGWin32ProxyDefs
00014 #define ROOT_TGWin32ProxyDefs
00015
00016 #include "Rtypes.h"
00017
00018
00019 #define _NAME4_(name1,name2,name3,name4) _NAME3_(name1,name2,name3)name4
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 static int gDebugProxy = 0;
00037
00038 static enum { kDebugProfile = -123, kDebugTrace = -1234 };
00039
00040 static unsigned int total = 0;
00041 static double total_time = 0;
00042
00043 #define DEBUG_PROFILE_PROXY_START(method)\
00044 static int i = 0;\
00045 static double t = 0;\
00046 double start = 0;\
00047 int gDebugValue = 0;\
00048 int debug = 0;\
00049 if (gDebugProxy) {\
00050 gDebugValue = gDebug;\
00051 debug = (gDebugValue==kDebugProfile) || (gDebugValue==kDebugTrace);\
00052 if (debug) {\
00053 start = GetMilliSeconds();\
00054 } else {\
00055 if (total) {\
00056 printf(" method name hits time/hits(ms) time(ms) | Total = %d hits %6.2f ms\n",total,total_time );\
00057 printf("------------------------------------------------------------------------------------------------------------\n");\
00058 }\
00059 if (i && !total) {\
00060 printf(" %-30s %-6d %-3.2f %-4.2f\n",#method,i,t/i,t);\
00061 }\
00062 total_time = t = total = i = 0;\
00063 }\
00064 }\
00065
00066 #define DEBUG_PROFILE_PROXY_STOP(method)\
00067 if (gDebugProxy) {\
00068 if (debug) {\
00069 double dt = GetMilliSeconds() - start;\
00070 i++; total++;\
00071 t += dt;\
00072 total_time += dt;\
00073 if (gDebugValue==kDebugTrace) printf(#method " %d\n",i);\
00074 }\
00075 }\
00076
00077
00078
00079 #define RETURN_PROXY_OBJECT(klass)\
00080 _NAME2_(T,klass)* _NAME3_(TGWin32,klass,Proxy)::ProxyObject()\
00081 {\
00082 static TList *gListOfProxies = new TList();\
00083 static _NAME3_(TGWin32,klass,Proxy) *proxy = 0;\
00084 ULong_t id = ::GetCurrentThreadId();\
00085 if (proxy && (proxy->GetId()==id)) return proxy;\
00086 if (id==fgMainThreadId) return _NAME3_(TGWin32,klass,Proxy)::RealObject();\
00087 TIter next(gListOfProxies);\
00088 while ((proxy=(_NAME3_(TGWin32,klass,Proxy)*)next())) {\
00089 if (proxy->GetId()==id) {\
00090 return proxy;\
00091 }\
00092 }\
00093 proxy = new _NAME3_(TGWin32,klass,Proxy)();\
00094 gListOfProxies->Add(proxy);\
00095 return proxy;\
00096 }
00097
00098
00099
00100 #define VOID_METHOD_ARG0_LOCK(klass,method)\
00101 void _NAME3_(TGWin32,klass,Proxy)::method()\
00102 {\
00103 DEBUG_PROFILE_PROXY_START(method)\
00104 TGWin32::Lock();\
00105 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
00106 TGWin32::Unlock();\
00107 DEBUG_PROFILE_PROXY_STOP(method)\
00108 }
00109
00110
00111 #define VOID_METHOD_ARG1_LOCK(klass,method,type1,par1)\
00112 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
00113 {\
00114 DEBUG_PROFILE_PROXY_START(method)\
00115 TGWin32::Lock();\
00116 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1);\
00117 TGWin32::Unlock();\
00118 DEBUG_PROFILE_PROXY_STOP(method)\
00119 }
00120
00121
00122 #define VOID_METHOD_ARG2_LOCK(klass,method,type1,par1,type2,par2)\
00123 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
00124 {\
00125 DEBUG_PROFILE_PROXY_START(method)\
00126 TGWin32::Lock();\
00127 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2);\
00128 TGWin32::Unlock();\
00129 DEBUG_PROFILE_PROXY_STOP(method)\
00130 }
00131
00132
00133 #define VOID_METHOD_ARG3_LOCK(klass,method,type1,par1,type2,par2,type3,par3)\
00134 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
00135 {\
00136 DEBUG_PROFILE_PROXY_START(method)\
00137 TGWin32::Lock();\
00138 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3);\
00139 TGWin32::Unlock();\
00140 DEBUG_PROFILE_PROXY_STOP(method)\
00141 }
00142
00143
00144 #define VOID_METHOD_ARG4_LOCK(klass,method,type1,par1,type2,par2,type3,par3,type4,par4)\
00145 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
00146 {\
00147 DEBUG_PROFILE_PROXY_START(method)\
00148 TGWin32::Lock();\
00149 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3,par4);\
00150 TGWin32::Unlock();\
00151 DEBUG_PROFILE_PROXY_STOP(method)\
00152 }
00153
00154
00155 #define VOID_METHOD_ARG5_LOCK(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5)\
00156 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
00157 {\
00158 DEBUG_PROFILE_PROXY_START(method)\
00159 TGWin32::Lock();\
00160 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(par1,par2,par3,par4,par5);\
00161 TGWin32::Unlock();\
00162 DEBUG_PROFILE_PROXY_STOP(method)\
00163 }
00164
00165
00166 #define VOID_METHOD_ARG0(klass,method,sync)\
00167 void _NAME3_(p2,klass,method)(void *in)\
00168 {\
00169 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
00170 }\
00171 \
00172 void _NAME3_(TGWin32,klass,Proxy)::method()\
00173 {\
00174 DEBUG_PROFILE_PROXY_START(method)\
00175 fCallBack = &_NAME3_(p2,klass,method);\
00176 ForwardCallBack(sync);\
00177 DEBUG_PROFILE_PROXY_STOP(method)\
00178 }
00179
00180
00181 #define VOID_METHOD_ARG1(klass,method,type1,par1,sync)\
00182 void _NAME4_(p2,klass,method,par1)(void *in)\
00183 {\
00184 struct tmp {\
00185 type1 par1;\
00186 };\
00187 tmp *p = (tmp*)in;\
00188 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1);\
00189 }\
00190 \
00191 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
00192 {\
00193 DEBUG_PROFILE_PROXY_START(method)\
00194 struct tmp {\
00195 type1 par1;\
00196 tmp(type1 par1):par1(par1) {}\
00197 };\
00198 fParam = new tmp(par1);\
00199 fCallBack = &_NAME4_(p2,klass,method,par1);\
00200 Bool_t batch = ForwardCallBack(sync);\
00201 par1 = ((tmp*)fParam)->par1;\
00202 if (!batch) delete fParam;\
00203 DEBUG_PROFILE_PROXY_STOP(method)\
00204 }
00205
00206
00207 #define VOID_METHOD_ARG2(klass,method,type1,par1,type2,par2,sync)\
00208 void _NAME4_(p2,klass,method,par1)(void *in)\
00209 {\
00210 struct tmp {\
00211 type1 par1; type2 par2;\
00212 };\
00213 tmp *p = (tmp*)in;\
00214 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2);\
00215 }\
00216 \
00217 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
00218 {\
00219 DEBUG_PROFILE_PROXY_START(method)\
00220 struct tmp {\
00221 type1 par1; type2 par2;\
00222 tmp(type1 par1,type2 par2):par1(par1),par2(par2) {}\
00223 };\
00224 fParam = new tmp(par1,par2);\
00225 fCallBack = &_NAME4_(p2,klass,method,par1);\
00226 Bool_t batch = ForwardCallBack(sync);\
00227 par1 = ((tmp*)fParam)->par1;\
00228 par2 = ((tmp*)fParam)->par2;\
00229 if (!batch) delete fParam;\
00230 DEBUG_PROFILE_PROXY_STOP(method)\
00231 }
00232
00233
00234 #define VOID_METHOD_ARG3(klass,method,type1,par1,type2,par2,type3,par3,sync)\
00235 void _NAME4_(p2,klass,method,par1)(void *in)\
00236 {\
00237 struct tmp {\
00238 type1 par1; type2 par2; type3 par3;\
00239 };\
00240 tmp *p = (tmp*)in;\
00241 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3);\
00242 }\
00243 \
00244 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
00245 {\
00246 DEBUG_PROFILE_PROXY_START(method)\
00247 struct tmp {\
00248 type1 par1; type2 par2; type3 par3;\
00249 tmp(type1 par1,type2 par2,type3 par3):par1(par1),par2(par2),par3(par3) {}\
00250 };\
00251 fParam = new tmp(par1,par2,par3);\
00252 fCallBack = &_NAME4_(p2,klass,method,par1);\
00253 Bool_t batch = ForwardCallBack(sync);\
00254 par1 = ((tmp*)fParam)->par1;\
00255 par2 = ((tmp*)fParam)->par2;\
00256 par3 = ((tmp*)fParam)->par3;\
00257 if (!batch) delete fParam;\
00258 DEBUG_PROFILE_PROXY_STOP(method)\
00259 }
00260
00261
00262 #define VOID_METHOD_ARG4(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,sync)\
00263 void _NAME4_(p2,klass,method,par1)(void *in)\
00264 {\
00265 struct tmp {\
00266 type1 par1; type2 par2; type3 par3; type4 par4;\
00267 };\
00268 tmp *p = (tmp*)in;\
00269 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4);\
00270 }\
00271 \
00272 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
00273 {\
00274 DEBUG_PROFILE_PROXY_START(method)\
00275 struct tmp {\
00276 type1 par1; type2 par2; type3 par3; type4 par4;\
00277 tmp(type1 par1,type2 par2,type3 par3,type4 par4):par1(par1),par2(par2),par3(par3),par4(par4) {}\
00278 };\
00279 fParam = new tmp(par1,par2,par3,par4);\
00280 fCallBack = &_NAME4_(p2,klass,method,par1);\
00281 Bool_t batch = ForwardCallBack(sync);\
00282 par1 = ((tmp*)fParam)->par1;\
00283 par2 = ((tmp*)fParam)->par2;\
00284 par3 = ((tmp*)fParam)->par3;\
00285 par4 = ((tmp*)fParam)->par4;\
00286 if (!batch) delete fParam;\
00287 DEBUG_PROFILE_PROXY_STOP(method)\
00288 }
00289
00290
00291 #define VOID_METHOD_ARG5(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,sync)\
00292 void _NAME4_(p2,klass,method,par1)(void *in)\
00293 {\
00294 struct tmp {\
00295 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5;\
00296 };\
00297 tmp *p = (tmp*)in;\
00298 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5);\
00299 }\
00300 \
00301 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
00302 {\
00303 DEBUG_PROFILE_PROXY_START(method)\
00304 struct tmp {\
00305 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5;\
00306 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5) {}\
00307 };\
00308 fParam = new tmp(par1,par2,par3,par4,par5);\
00309 fCallBack = &_NAME4_(p2,klass,method,par1);\
00310 Bool_t batch = ForwardCallBack(sync);\
00311 par1 = ((tmp*)fParam)->par1;\
00312 par2 = ((tmp*)fParam)->par2;\
00313 par3 = ((tmp*)fParam)->par3;\
00314 par4 = ((tmp*)fParam)->par4;\
00315 par5 = ((tmp*)fParam)->par5;\
00316 if (!batch) delete fParam;\
00317 DEBUG_PROFILE_PROXY_STOP(method)\
00318 }
00319
00320
00321 #define VOID_METHOD_ARG6(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,sync)\
00322 void _NAME4_(p2,klass,method,par1)(void *in)\
00323 {\
00324 struct tmp {\
00325 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6;\
00326 };\
00327 tmp *p = (tmp*)in;\
00328 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6);\
00329 }\
00330 \
00331 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6)\
00332 {\
00333 DEBUG_PROFILE_PROXY_START(method)\
00334 struct tmp {\
00335 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6;\
00336 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) {}\
00337 };\
00338 fParam = new tmp(par1,par2,par3,par4,par5,par6);\
00339 fCallBack = &_NAME4_(p2,klass,method,par1);\
00340 Bool_t batch = ForwardCallBack(sync);\
00341 par1 = ((tmp*)fParam)->par1;\
00342 par2 = ((tmp*)fParam)->par2;\
00343 par3 = ((tmp*)fParam)->par3;\
00344 par4 = ((tmp*)fParam)->par4;\
00345 par5 = ((tmp*)fParam)->par5;\
00346 par6 = ((tmp*)fParam)->par6;\
00347 if (!batch) delete fParam;\
00348 DEBUG_PROFILE_PROXY_STOP(method)\
00349 }
00350
00351
00352 #define VOID_METHOD_ARG7(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,sync)\
00353 void _NAME4_(p2,klass,method,par1)(void *in)\
00354 {\
00355 struct tmp {\
00356 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7;\
00357 };\
00358 tmp *p = (tmp*)in;\
00359 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7);\
00360 }\
00361 \
00362 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7)\
00363 {\
00364 DEBUG_PROFILE_PROXY_START(method)\
00365 struct tmp {\
00366 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7;\
00367 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) {}\
00368 };\
00369 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7);\
00370 fCallBack = &_NAME4_(p2,klass,method,par1);\
00371 Bool_t batch = ForwardCallBack(sync);\
00372 par1 = ((tmp*)fParam)->par1;\
00373 par2 = ((tmp*)fParam)->par2;\
00374 par3 = ((tmp*)fParam)->par3;\
00375 par4 = ((tmp*)fParam)->par4;\
00376 par5 = ((tmp*)fParam)->par5;\
00377 par6 = ((tmp*)fParam)->par6;\
00378 par7 = ((tmp*)fParam)->par7;\
00379 if (!batch) delete fParam;\
00380 DEBUG_PROFILE_PROXY_STOP(method)\
00381 }
00382
00383
00384 #define VOID_METHOD_ARG8(klass,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8,sync)\
00385 void _NAME4_(p2,klass,method,par1)(void *in)\
00386 {\
00387 struct tmp {\
00388 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8;\
00389 };\
00390 tmp *p = (tmp*)in;\
00391 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8);\
00392 }\
00393 \
00394 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8)\
00395 {\
00396 DEBUG_PROFILE_PROXY_START(method)\
00397 struct tmp {\
00398 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8;\
00399 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) {}\
00400 };\
00401 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8);\
00402 fCallBack = &_NAME4_(p2,klass,method,par1);\
00403 Bool_t batch = ForwardCallBack(sync);\
00404 par1 = ((tmp*)fParam)->par1;\
00405 par2 = ((tmp*)fParam)->par2;\
00406 par3 = ((tmp*)fParam)->par3;\
00407 par4 = ((tmp*)fParam)->par4;\
00408 par5 = ((tmp*)fParam)->par5;\
00409 par6 = ((tmp*)fParam)->par6;\
00410 par7 = ((tmp*)fParam)->par7;\
00411 par8 = ((tmp*)fParam)->par8;\
00412 if (!batch) delete fParam;\
00413 DEBUG_PROFILE_PROXY_STOP(method)\
00414 }
00415
00416
00417 #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)\
00418 void _NAME4_(p2,klass,method,par1)(void *in)\
00419 {\
00420 struct tmp {\
00421 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9;\
00422 };\
00423 tmp *p = (tmp*)in;\
00424 _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8,p->par9);\
00425 }\
00426 \
00427 void _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9)\
00428 {\
00429 DEBUG_PROFILE_PROXY_START(method)\
00430 struct tmp {\
00431 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9;\
00432 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) {}\
00433 };\
00434 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9);\
00435 fCallBack = &_NAME4_(p2,klass,method,par1);\
00436 Bool_t batch = ForwardCallBack(sync);\
00437 par1 = ((tmp*)fParam)->par1;\
00438 par2 = ((tmp*)fParam)->par2;\
00439 par3 = ((tmp*)fParam)->par3;\
00440 par4 = ((tmp*)fParam)->par4;\
00441 par5 = ((tmp*)fParam)->par5;\
00442 par6 = ((tmp*)fParam)->par6;\
00443 par7 = ((tmp*)fParam)->par7;\
00444 par8 = ((tmp*)fParam)->par8;\
00445 par9 = ((tmp*)fParam)->par9;\
00446 if (!batch) delete fParam;\
00447 DEBUG_PROFILE_PROXY_STOP(method)\
00448 }
00449
00450
00451 #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)\
00452 void _NAME4_(p2,klass,method,par1)(void *in)\
00453 {\
00454 struct tmp {\
00455 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10;\
00456 };\
00457 tmp *p = (tmp*)in;\
00458 _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);\
00459 }\
00460 \
00461 type _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)\
00462 {\
00463 DEBUG_PROFILE_PROXY_START(method)\
00464 struct tmp {\
00465 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10;\
00466 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) {}\
00467 };\
00468 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10);\
00469 fCallBack = &_NAME4_(p2,klass,method,par1);\
00470 Bool_t batch = ForwardCallBack(1);\
00471 par1 = ((tmp*)fParam)->par1;\
00472 par2 = ((tmp*)fParam)->par2;\
00473 par3 = ((tmp*)fParam)->par3;\
00474 par4 = ((tmp*)fParam)->par4;\
00475 par5 = ((tmp*)fParam)->par5;\
00476 par6 = ((tmp*)fParam)->par6;\
00477 par7 = ((tmp*)fParam)->par7;\
00478 par8 = ((tmp*)fParam)->par8;\
00479 par9 = ((tmp*)fParam)->par9;\
00480 par10 = ((tmp*)fParam)->par10;\
00481 if (!batch) delete fParam;\
00482 DEBUG_PROFILE_PROXY_STOP(method)\
00483 }
00484
00485
00486 #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)\
00487 void _NAME4_(p2,klass,method,par1)(void *in)\
00488 {\
00489 struct tmp {\
00490 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11;\
00491 };\
00492 tmp *p = (tmp*)in;\
00493 _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);\
00494 }\
00495 \
00496 type _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)\
00497 {\
00498 DEBUG_PROFILE_PROXY_START(method)\
00499 struct tmp {\
00500 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11;\
00501 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) {}\
00502 };\
00503 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10,par11);\
00504 fCallBack = &_NAME4_(p2,klass,method,par1);\
00505 Bool_t batch = ForwardCallBack(1);\
00506 par1 = ((tmp*)fParam)->par1;\
00507 par2 = ((tmp*)fParam)->par2;\
00508 par3 = ((tmp*)fParam)->par3;\
00509 par4 = ((tmp*)fParam)->par4;\
00510 par5 = ((tmp*)fParam)->par5;\
00511 par6 = ((tmp*)fParam)->par6;\
00512 par7 = ((tmp*)fParam)->par7;\
00513 par8 = ((tmp*)fParam)->par8;\
00514 par9 = ((tmp*)fParam)->par9;\
00515 par10 = ((tmp*)fParam)->par10;\
00516 par11 = ((tmp*)fParam)->par11;\
00517 if (!batch) delete fParam;\
00518 DEBUG_PROFILE_PROXY_STOP(method)\
00519 }
00520
00521
00522 #define RETURN_METHOD_ARG0_CONST(klass,type,method)\
00523 type _NAME3_(TGWin32,klass,Proxy)::method() const\
00524 {\
00525 type ret;\
00526 TGWin32::Lock();\
00527 ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
00528 TGWin32::Unlock();\
00529 return ret;\
00530 }
00531
00532
00533 #define RETURN_METHOD_ARG0(klass,type,method)\
00534 void _NAME3_(p2,klass,method)(void *in)\
00535 {\
00536 struct tmp {\
00537 type ret;\
00538 };\
00539 tmp *p = (tmp*)in;\
00540 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method();\
00541 }\
00542 \
00543 type _NAME3_(TGWin32,klass,Proxy)::method()\
00544 {\
00545 DEBUG_PROFILE_PROXY_START(method)\
00546 type ret;\
00547 struct tmp {\
00548 type ret;\
00549 };\
00550 fParam = new tmp;\
00551 fCallBack = &_NAME3_(p2,klass,method);\
00552 Bool_t batch = ForwardCallBack(1);\
00553 ret = ((tmp*)fParam)->ret;\
00554 if (!batch) delete fParam;\
00555 DEBUG_PROFILE_PROXY_STOP(method)\
00556 return ret;\
00557 }
00558
00559
00560 #define RETURN_METHOD_ARG1(klass,type,method,type1,par1)\
00561 void _NAME4_(p2,klass,method,par1)(void *in)\
00562 {\
00563 struct tmp {\
00564 type1 par1; type ret;\
00565 };\
00566 tmp *p = (tmp*)in;\
00567 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1);\
00568 }\
00569 \
00570 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1)\
00571 {\
00572 DEBUG_PROFILE_PROXY_START(method)\
00573 type ret;\
00574 struct tmp {\
00575 type1 par1; type ret;\
00576 tmp(type1 par1):par1(par1) {}\
00577 };\
00578 fParam = new tmp(par1);\
00579 fCallBack = &_NAME4_(p2,klass,method,par1);\
00580 Bool_t batch = ForwardCallBack(1);\
00581 par1 = ((tmp*)fParam)->par1;\
00582 ret = ((tmp*)fParam)->ret;\
00583 if (!batch) delete fParam;\
00584 DEBUG_PROFILE_PROXY_STOP(method)\
00585 return ret;\
00586 }
00587
00588
00589 #define RETURN_METHOD_ARG2(klass,type,method,type1,par1,type2,par2)\
00590 void _NAME4_(p2,klass,method,par1)(void *in)\
00591 {\
00592 struct tmp {\
00593 type1 par1; type2 par2; type ret;\
00594 };\
00595 tmp *p = (tmp*)in;\
00596 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2);\
00597 }\
00598 \
00599 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2)\
00600 {\
00601 DEBUG_PROFILE_PROXY_START(method)\
00602 type ret;\
00603 struct tmp {\
00604 type1 par1; type2 par2; type ret;\
00605 tmp(type1 par1,type2 par2):par1(par1),par2(par2) {}\
00606 };\
00607 fParam = new tmp(par1,par2);\
00608 fCallBack = &_NAME4_(p2,klass,method,par1);\
00609 Bool_t batch = ForwardCallBack(1);\
00610 par1 = ((tmp*)fParam)->par1;\
00611 par2 = ((tmp*)fParam)->par2;\
00612 ret = ((tmp*)fParam)->ret;\
00613 if (!batch) delete fParam;\
00614 DEBUG_PROFILE_PROXY_STOP(method)\
00615 return ret;\
00616 }
00617
00618
00619 #define RETURN_METHOD_ARG3(klass,type,method,type1,par1,type2,par2,type3,par3)\
00620 void _NAME4_(p2,klass,method,par1)(void *in)\
00621 {\
00622 struct tmp {\
00623 type1 par1; type2 par2; type3 par3; type ret;\
00624 };\
00625 tmp *p = (tmp*)in;\
00626 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3);\
00627 }\
00628 \
00629 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3)\
00630 {\
00631 DEBUG_PROFILE_PROXY_START(method)\
00632 type ret;\
00633 struct tmp {\
00634 type1 par1; type2 par2; type3 par3; type ret;\
00635 tmp(type1 par1,type2 par2,type3 par3):par1(par1),par2(par2),par3(par3) {}\
00636 };\
00637 fParam = new tmp(par1,par2,par3);\
00638 fCallBack = &_NAME4_(p2,klass,method,par1);\
00639 Bool_t batch = ForwardCallBack(1);\
00640 par1 = ((tmp*)fParam)->par1;\
00641 par2 = ((tmp*)fParam)->par2;\
00642 par3 = ((tmp*)fParam)->par3;\
00643 ret = ((tmp*)fParam)->ret;\
00644 if (!batch) delete fParam;\
00645 DEBUG_PROFILE_PROXY_STOP(method)\
00646 return ret;\
00647 }
00648
00649
00650 #define RETURN_METHOD_ARG4(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4)\
00651 void _NAME4_(p2,klass,method,par1)(void *in)\
00652 {\
00653 struct tmp {\
00654 type1 par1; type2 par2; type3 par3; type4 par4; type ret;\
00655 };\
00656 tmp *p = (tmp*)in;\
00657 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4);\
00658 }\
00659 \
00660 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4)\
00661 {\
00662 DEBUG_PROFILE_PROXY_START(method)\
00663 type ret;\
00664 struct tmp {\
00665 type1 par1; type2 par2; type3 par3; type4 par4; type ret;\
00666 tmp(type1 par1,type2 par2,type3 par3,type4 par4):par1(par1),par2(par2),par3(par3),par4(par4) {}\
00667 };\
00668 fParam = new tmp(par1,par2,par3,par4);\
00669 fCallBack = &_NAME4_(p2,klass,method,par1);\
00670 Bool_t batch = ForwardCallBack(1);\
00671 par1 = ((tmp*)fParam)->par1;\
00672 par2 = ((tmp*)fParam)->par2;\
00673 par3 = ((tmp*)fParam)->par3;\
00674 par4 = ((tmp*)fParam)->par4;\
00675 ret = ((tmp*)fParam)->ret;\
00676 if (!batch) delete fParam;\
00677 DEBUG_PROFILE_PROXY_STOP(method)\
00678 return ret;\
00679 }
00680
00681
00682 #define RETURN_METHOD_ARG5(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5)\
00683 void _NAME4_(p2,klass,method,par1)(void *in)\
00684 {\
00685 struct tmp {\
00686 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type ret;\
00687 };\
00688 tmp *p = (tmp*)in;\
00689 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5);\
00690 }\
00691 \
00692 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5)\
00693 {\
00694 DEBUG_PROFILE_PROXY_START(method)\
00695 type ret;\
00696 struct tmp {\
00697 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type ret;\
00698 tmp(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5):par1(par1),par2(par2),par3(par3),par4(par4),par5(par5) {}\
00699 };\
00700 fParam = new tmp(par1,par2,par3,par4,par5);\
00701 fCallBack = &_NAME4_(p2,klass,method,par1);\
00702 Bool_t batch = ForwardCallBack(1);\
00703 par1 = ((tmp*)fParam)->par1;\
00704 par2 = ((tmp*)fParam)->par2;\
00705 par3 = ((tmp*)fParam)->par3;\
00706 par4 = ((tmp*)fParam)->par4;\
00707 par5 = ((tmp*)fParam)->par5;\
00708 ret = ((tmp*)fParam)->ret;\
00709 if (!batch) delete fParam;\
00710 DEBUG_PROFILE_PROXY_STOP(method)\
00711 return ret;\
00712 }
00713
00714
00715 #define RETURN_METHOD_ARG6(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6)\
00716 void _NAME4_(p2,klass,method,par1)(void *in)\
00717 {\
00718 struct tmp {\
00719 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type ret;\
00720 };\
00721 tmp *p = (tmp*)in;\
00722 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6);\
00723 }\
00724 \
00725 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6)\
00726 {\
00727 DEBUG_PROFILE_PROXY_START(method)\
00728 type ret;\
00729 struct tmp {\
00730 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type ret;\
00731 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) {}\
00732 };\
00733 fParam = new tmp(par1,par2,par3,par4,par5,par6);\
00734 fCallBack = &_NAME4_(p2,klass,method,par1);\
00735 Bool_t batch = ForwardCallBack(1);\
00736 par1 = ((tmp*)fParam)->par1;\
00737 par2 = ((tmp*)fParam)->par2;\
00738 par3 = ((tmp*)fParam)->par3;\
00739 par4 = ((tmp*)fParam)->par4;\
00740 par5 = ((tmp*)fParam)->par5;\
00741 par6 = ((tmp*)fParam)->par6;\
00742 ret = ((tmp*)fParam)->ret;\
00743 if (!batch) delete fParam;\
00744 DEBUG_PROFILE_PROXY_STOP(method)\
00745 return ret;\
00746 }
00747
00748
00749 #define RETURN_METHOD_ARG7(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7)\
00750 void _NAME4_(p2,klass,method,par1)(void *in)\
00751 {\
00752 struct tmp {\
00753 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type ret;\
00754 };\
00755 tmp *p = (tmp*)in;\
00756 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7);\
00757 }\
00758 \
00759 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7)\
00760 {\
00761 DEBUG_PROFILE_PROXY_START(method)\
00762 type ret;\
00763 struct tmp {\
00764 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type ret;\
00765 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) {}\
00766 };\
00767 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7);\
00768 fCallBack = &_NAME4_(p2,klass,method,par1);\
00769 Bool_t batch = ForwardCallBack(1);\
00770 par1 = ((tmp*)fParam)->par1;\
00771 par2 = ((tmp*)fParam)->par2;\
00772 par3 = ((tmp*)fParam)->par3;\
00773 par4 = ((tmp*)fParam)->par4;\
00774 par5 = ((tmp*)fParam)->par5;\
00775 par6 = ((tmp*)fParam)->par6;\
00776 par7 = ((tmp*)fParam)->par7;\
00777 ret = ((tmp*)fParam)->ret;\
00778 if (!batch) delete fParam;\
00779 DEBUG_PROFILE_PROXY_STOP(method)\
00780 return ret;\
00781 }
00782
00783
00784 #define RETURN_METHOD_ARG8(klass,type,method,type1,par1,type2,par2,type3,par3,type4,par4,type5,par5,type6,par6,type7,par7,type8,par8)\
00785 void _NAME4_(p2,klass,method,par1)(void *in)\
00786 {\
00787 struct tmp {\
00788 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type ret;\
00789 };\
00790 tmp *p = (tmp*)in;\
00791 p->ret = _NAME3_(TGWin32,klass,Proxy)::RealObject()->method(p->par1,p->par2,p->par3,p->par4,p->par5,p->par6,p->par7,p->par8);\
00792 }\
00793 \
00794 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8)\
00795 {\
00796 DEBUG_PROFILE_PROXY_START(method)\
00797 type ret;\
00798 struct tmp {\
00799 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type ret;\
00800 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) {}\
00801 };\
00802 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8);\
00803 fCallBack = &_NAME4_(p2,klass,method,par1);\
00804 Bool_t batch = ForwardCallBack(1);\
00805 par1 = ((tmp*)fParam)->par1;\
00806 par2 = ((tmp*)fParam)->par2;\
00807 par3 = ((tmp*)fParam)->par3;\
00808 par4 = ((tmp*)fParam)->par4;\
00809 par5 = ((tmp*)fParam)->par5;\
00810 par6 = ((tmp*)fParam)->par6;\
00811 par7 = ((tmp*)fParam)->par7;\
00812 par8 = ((tmp*)fParam)->par8;\
00813 ret = ((tmp*)fParam)->ret;\
00814 if (!batch) delete fParam;\
00815 DEBUG_PROFILE_PROXY_STOP(method)\
00816 return ret;\
00817 }
00818
00819
00820 #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)\
00821 void _NAME4_(p2,klass,method,par1)(void *in)\
00822 {\
00823 struct tmp {\
00824 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type ret;\
00825 };\
00826 tmp *p = (tmp*)in;\
00827 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);\
00828 }\
00829 \
00830 type _NAME3_(TGWin32,klass,Proxy)::method(type1 par1,type2 par2,type3 par3,type4 par4,type5 par5,type6 par6,type7 par7,type8 par8,type9 par9)\
00831 {\
00832 DEBUG_PROFILE_PROXY_START(method)\
00833 type ret;\
00834 struct tmp {\
00835 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type ret;\
00836 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) {}\
00837 };\
00838 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9);\
00839 fCallBack = &_NAME4_(p2,klass,method,par1);\
00840 Bool_t batch = ForwardCallBack(1);\
00841 par1 = ((tmp*)fParam)->par1;\
00842 par2 = ((tmp*)fParam)->par2;\
00843 par3 = ((tmp*)fParam)->par3;\
00844 par4 = ((tmp*)fParam)->par4;\
00845 par5 = ((tmp*)fParam)->par5;\
00846 par6 = ((tmp*)fParam)->par6;\
00847 par7 = ((tmp*)fParam)->par7;\
00848 par8 = ((tmp*)fParam)->par8;\
00849 par9 = ((tmp*)fParam)->par9;\
00850 ret = ((tmp*)fParam)->ret;\
00851 if (!batch) delete fParam;\
00852 DEBUG_PROFILE_PROXY_STOP(method)\
00853 return ret;\
00854 }
00855
00856
00857 #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)\
00858 void _NAME4_(p2,klass,method,par1)(void *in)\
00859 {\
00860 struct tmp {\
00861 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type ret;\
00862 };\
00863 tmp *p = (tmp*)in;\
00864 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);\
00865 }\
00866 \
00867 type _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)\
00868 {\
00869 DEBUG_PROFILE_PROXY_START(method)\
00870 type ret;\
00871 struct tmp {\
00872 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type ret;\
00873 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) {}\
00874 };\
00875 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10);\
00876 fCallBack = &_NAME4_(p2,klass,method,par1);\
00877 Bool_t batch = ForwardCallBack(1);\
00878 par1 = ((tmp*)fParam)->par1;\
00879 par2 = ((tmp*)fParam)->par2;\
00880 par3 = ((tmp*)fParam)->par3;\
00881 par4 = ((tmp*)fParam)->par4;\
00882 par5 = ((tmp*)fParam)->par5;\
00883 par6 = ((tmp*)fParam)->par6;\
00884 par7 = ((tmp*)fParam)->par7;\
00885 par8 = ((tmp*)fParam)->par8;\
00886 par9 = ((tmp*)fParam)->par9;\
00887 par10 = ((tmp*)fParam)->par10;\
00888 ret = ((tmp*)fParam)->ret;\
00889 if (!batch) delete fParam;\
00890 DEBUG_PROFILE_PROXY_STOP(method)\
00891 return ret;\
00892 }
00893
00894
00895 #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)\
00896 void _NAME4_(p2,klass,method,par1)(void *in)\
00897 {\
00898 struct tmp {\
00899 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11; type ret;\
00900 };\
00901 tmp *p = (tmp*)in;\
00902 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);\
00903 }\
00904 \
00905 type _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)\
00906 {\
00907 DEBUG_PROFILE_PROXY_START(method)\
00908 type ret;\
00909 struct tmp {\
00910 type1 par1; type2 par2; type3 par3; type4 par4; type5 par5; type6 par6; type7 par7; type8 par8; type9 par9; type10 par10; type11 par11; type ret;\
00911 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) {}\
00912 };\
00913 fParam = new tmp(par1,par2,par3,par4,par5,par6,par7,par8,par9,par10,par11);\
00914 fCallBack = &_NAME4_(p2,klass,method,par1);\
00915 Bool_t batch = ForwardCallBack(1);\
00916 par1 = ((tmp*)fParam)->par1;\
00917 par2 = ((tmp*)fParam)->par2;\
00918 par3 = ((tmp*)fParam)->par3;\
00919 par4 = ((tmp*)fParam)->par4;\
00920 par5 = ((tmp*)fParam)->par5;\
00921 par6 = ((tmp*)fParam)->par6;\
00922 par7 = ((tmp*)fParam)->par7;\
00923 par8 = ((tmp*)fParam)->par8;\
00924 par9 = ((tmp*)fParam)->par9;\
00925 par10 = ((tmp*)fParam)->par10;\
00926 par11 = ((tmp*)fParam)->par11;\
00927 ret = ((tmp*)fParam)->ret;\
00928 if (!batch) delete fParam;\
00929 DEBUG_PROFILE_PROXY_STOP(method)\
00930 return ret;\
00931 }
00932
00933 #endif