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