home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / somdcprx.h < prev    next >
C/C++ Source or Header  |  1999-02-22  |  17KB  |  491 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somdcprx.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    This is the class that implements DSOM proxy objects in clients.
  12.  * 
  13.  *    This class is a subclass of SOMDObject.  It inherits the basic behavior
  14.  *    (methods) of a CORBA object reference from that parent class.
  15.  *    Thus, it "is a" SOMDObject.
  16.  * 
  17.  *    This class overrides the usual somDispatch methods with versions
  18.  *    that build a DSOM Request for the invocation and dispatch it, remotely.
  19.  *    It is intended that the implementation of this "generic" proxy class
  20.  *    will be used to derive specific proxy classes via multiple inheritance.
  21.  *    The new dispatch method is inherited from this client proxy class, while
  22.  *    the desired interface--and language bindings--are inherited from the
  23.  *    target class (but no implementation).
  24.  * 
  25.  *    E.g.,
  26.  *           SOMDClientProxy      Animal
  27.  *                     \           /
  28.  *                      \         / (interface only)
  29.  *                       \       /
  30.  *                    Animal__Proxy
  31.  * 
  32.  *    Note that SOMDClientProxy is an instance of SOMDMetaProxy.
  33.  */
  34.  
  35.  
  36. #ifndef SOM_SOMDClientProxy_h
  37. #define SOM_SOMDClientProxy_h
  38.  
  39.  
  40. #include <som.h>
  41.  
  42. /*
  43.  * -- This emitter treats Method Tokens as Thunks by default.
  44.  * -- Use the sc modifier "nothunks" to change this default
  45.  */
  46. #undef somresolve_
  47. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  48.  
  49. /*
  50.  * Define the class name as an object type
  51.  */
  52. #ifndef SOMDClientProxy
  53. #define SOMDClientProxy SOMObject
  54. #endif
  55. /*
  56.  *  To aid in distribution transparency, the following SOMObject methods
  57.  *  are FORWARDED to the remote object:
  58.  *      somFree
  59.  *      somGetClass
  60.  *      somGetClassName
  61.  *      somDestruct    (unless the remote connection is no longer valid)
  62.  *      somDefaultInit (when the proxy has already been initialized)
  63.  *      all assignment operator and copy constructor methods
  64.  *         (requires that the "fromObj" parameter also be a proxy
  65.  *          that refers to an object in the same address space.
  66.  * 
  67.  *  The following additional methods are provided to explicitly direct
  68.  *  method calls to the local proxy or to the remote object.
  69.  */
  70. #include <somdobj.h>
  71.  
  72. /*
  73.  * Start of bindings for IDL types
  74.  */
  75.  
  76. #ifndef SOMClass
  77.     #define SOMClass SOMObject
  78. #endif /* SOMClass */
  79. #ifndef Container
  80.     #define Container SOMObject
  81. #endif /* Container */
  82. #ifndef ImplementationDef
  83.     #define ImplementationDef SOMObject
  84. #endif /* ImplementationDef */
  85. #ifndef InterfaceDef
  86.     #define InterfaceDef SOMObject
  87. #endif /* InterfaceDef */
  88. #ifndef NVList
  89.     #define NVList SOMObject
  90. #endif /* NVList */
  91. #ifndef Context
  92.     #define Context SOMObject
  93. #endif /* Context */
  94. #ifndef Request
  95.     #define Request SOMObject
  96. #endif /* Request */
  97. #ifndef CommBinding
  98.     #define CommBinding SOMObject
  99. #endif /* CommBinding */
  100. #ifndef somdMemoryMgr
  101.     #define somdMemoryMgr SOMObject
  102. #endif /* somdMemoryMgr */
  103.  
  104. /*
  105.  * End of bindings for IDL types.
  106.  */
  107.  
  108. #define SOMDClientProxy_MajorVersion 2
  109. #define SOMDClientProxy_MinorVersion 1
  110.  
  111. /*
  112.  * External name shortening if required
  113.  */
  114. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  115. #define SOMDClientProxyNewClass c
  116. #pragma linkage(c, system)
  117. #define SOMDClientProxyClassData d
  118. #define SOMDClientProxyCClassData x
  119. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  120. /*--------------Migration------------*/
  121. #define SOMDClientProxy_classObj SOMDClientProxyClassData.classObject
  122. #define _SOMDClientProxy SOMDClientProxy_classObj
  123.  
  124. /*
  125.  * Declare the class creation procedure
  126.  */
  127. SOMEXTERN SOMClass * SOMLINK SOMDClientProxyNewClass(integer4 somtmajorVersion,
  128.         integer4 somtminorVersion);
  129. #pragma linkage(SOMDClientProxyNewClass, system)
  130.  
  131. /*
  132.  * Declare the class data structure
  133.  */
  134. SOMEXTERN struct SOMDClientProxyClassDataStructure {
  135.     SOMClass *classObject;
  136.     somMToken somdTargetFree;
  137.     somMToken somdTargetGetClass;
  138.     somMToken somdTargetGetClassName;
  139.     somMToken somdProxyFree;
  140.     somMToken somdProxyGetClass;
  141.     somMToken somdProxyGetClassName;
  142.     somMToken set_binding;
  143.     somMToken get_binding;
  144.     somMToken reset_binding;
  145.     somMToken _get_ctx_seq;
  146.     somMToken _set_ctx_seq;
  147.     somMToken somdReleaseResources;
  148.     somMToken _get_memoryMgr;
  149. } SOMDLINK SOMDClientProxyClassData;
  150.  
  151. /*
  152.  * Declare the C specific class data structure
  153.  */
  154. SOMEXTERN struct SOMDClientProxyCClassDataStructure {
  155.     somMethodTabs parentMtab;
  156.     somDToken instanceDataToken;
  157. } SOMDLINK SOMDClientProxyCClassData;
  158.  
  159. /*
  160.  * New and Renew macros for SOMDClientProxy
  161.  */
  162. #define SOMDClientProxyNew() \
  163.    ( _SOMDClientProxy ? \
  164.     _somNew(_SOMDClientProxy) \
  165.     : ( SOMDClientProxyNewClass(\
  166.         SOMDClientProxy_MajorVersion, \
  167.         SOMDClientProxy_MinorVersion),\
  168.        _somNew(_SOMDClientProxy)))
  169. #define SOMDClientProxyRenew(buf) \
  170.    ( _SOMDClientProxy ? \
  171.     _somRenew(_SOMDClientProxy, buf) \
  172.     : ( SOMDClientProxyNewClass(\
  173.         SOMDClientProxy_MajorVersion, \
  174.         SOMDClientProxy_MinorVersion),\
  175.        _somRenew(_SOMDClientProxy, buf)))
  176.  
  177. /*
  178.  * Override method: create_request
  179.  */
  180. #define SOMDClientProxy_create_request(somSelf,ev,ctx,operation,arg_list,result,request,req_flags) \
  181.     SOMDObject_create_request(somSelf,ev,ctx,operation,arg_list,result,request,req_flags)
  182.  
  183. /*
  184.  * Override method: create_request_args
  185.  */
  186. #define SOMDClientProxy_create_request_args(somSelf,ev,operation,arg_list,result) \
  187.     SOMDObject_create_request_args(somSelf,ev,operation,arg_list,result)
  188.  
  189. /*
  190.  * Override method: is_proxy
  191.  */
  192. #define SOMDClientProxy_is_proxy(somSelf,ev) \
  193.     SOMDObject_is_proxy(somSelf,ev)
  194.  
  195. /*
  196.  * Override method: release
  197.  */
  198. #define SOMDClientProxy_release(somSelf,ev) \
  199.     SOMDObject_release(somSelf,ev)
  200.  
  201. /*
  202.  * Override method: somDispatch
  203.  */
  204. #define SOMDClientProxy_somDispatch(somSelf,retValue,methodId,ap) \
  205.     SOMObject_somDispatch(somSelf,retValue,methodId,ap)
  206.  
  207. /*
  208.  * Override method: somDispatchV
  209.  */
  210. #define SOMDClientProxy_somDispatchV(somSelf,methodId,descriptor,ap) \
  211.     SOMObject_somDispatchV(somSelf,methodId,descriptor,ap)
  212.  
  213. /*
  214.  * Override method: somDispatchL
  215.  */
  216. #define SOMDClientProxy_somDispatchL(somSelf,methodId,descriptor,ap) \
  217.     SOMObject_somDispatchL(somSelf,methodId,descriptor,ap)
  218.  
  219. /*
  220.  * Override method: somDispatchD
  221.  */
  222. #define SOMDClientProxy_somDispatchD(somSelf,methodId,descriptor,ap) \
  223.     SOMObject_somDispatchD(somSelf,methodId,descriptor,ap)
  224.  
  225. /*
  226.  * Override method: somDispatchA
  227.  */
  228. #define SOMDClientProxy_somDispatchA(somSelf,methodId,descriptor,ap) \
  229.     SOMObject_somDispatchA(somSelf,methodId,descriptor,ap)
  230.  
  231. /*
  232.  * Override method: somFree
  233.  */
  234. #define SOMDClientProxy_somFree(somSelf) \
  235.     SOMObject_somFree(somSelf)
  236.  
  237. /*
  238.  * Override method: somGetClass
  239.  */
  240. #define SOMDClientProxy_somGetClass(somSelf) \
  241.     SOMObject_somGetClass(somSelf)
  242.  
  243. /*
  244.  * Override method: somGetClassName
  245.  */
  246. #define SOMDClientProxy_somGetClassName(somSelf) \
  247.     SOMObject_somGetClassName(somSelf)
  248.  
  249. /*
  250.  * Override method: somDestruct
  251.  */
  252. #define SOMDClientProxy_somDestruct(somSelf,doFree,ctrl) \
  253.     SOMObject_somDestruct(somSelf,doFree,ctrl)
  254.  
  255. /*
  256.  * Override method: somDefaultInit
  257.  */
  258. #define SOMDClientProxy_somDefaultInit(somSelf,ctrl) \
  259.     SOMObject_somDefaultInit(somSelf,ctrl)
  260.  
  261. /*
  262.  * Override method: somDefaultVCopyInit
  263.  */
  264. #define SOMDClientProxy_somDefaultVCopyInit(somSelf,ctrl,fromObj) \
  265.     SOMObject_somDefaultVCopyInit(somSelf,ctrl,fromObj)
  266.  
  267. /*
  268.  * Override method: somDefaultConstVCopyInit
  269.  */
  270. #define SOMDClientProxy_somDefaultConstVCopyInit(somSelf,ctrl,fromObj) \
  271.     SOMObject_somDefaultConstVCopyInit(somSelf,ctrl,fromObj)
  272.  
  273. /*
  274.  * Override method: somDefaultCopyInit
  275.  */
  276. #define SOMDClientProxy_somDefaultCopyInit(somSelf,ctrl,fromObj) \
  277.     SOMObject_somDefaultCopyInit(somSelf,ctrl,fromObj)
  278.  
  279. /*
  280.  * Override method: somDefaultConstCopyInit
  281.  */
  282. #define SOMDClientProxy_somDefaultConstCopyInit(somSelf,ctrl,fromObj) \
  283.     SOMObject_somDefaultConstCopyInit(somSelf,ctrl,fromObj)
  284.  
  285. /*
  286.  * Override method: somDefaultAssign
  287.  */
  288. #define SOMDClientProxy_somDefaultAssign(somSelf,ctrl,fromObj) \
  289.     SOMObject_somDefaultAssign(somSelf,ctrl,fromObj)
  290.  
  291. /*
  292.  * Override method: somDefaultConstAssign
  293.  */
  294. #define SOMDClientProxy_somDefaultConstAssign(somSelf,ctrl,fromObj) \
  295.     SOMObject_somDefaultConstAssign(somSelf,ctrl,fromObj)
  296.  
  297. /*
  298.  * Override method: somDefaultVAssign
  299.  */
  300. #define SOMDClientProxy_somDefaultVAssign(somSelf,ctrl,fromObj) \
  301.     SOMObject_somDefaultVAssign(somSelf,ctrl,fromObj)
  302.  
  303. /*
  304.  * Override method: somDefaultConstVAssign
  305.  */
  306. #define SOMDClientProxy_somDefaultConstVAssign(somSelf,ctrl,fromObj) \
  307.     SOMObject_somDefaultConstVAssign(somSelf,ctrl,fromObj)
  308.  
  309. /*
  310.  * New Method: somdTargetFree
  311.  */
  312. typedef void   SOMLINK somTP_SOMDClientProxy_somdTargetFree(SOMDClientProxy *somSelf, Environment *ev);
  313. #pragma linkage(somTP_SOMDClientProxy_somdTargetFree, system)
  314. typedef somTP_SOMDClientProxy_somdTargetFree *somTD_SOMDClientProxy_somdTargetFree;
  315. /*
  316.  *  Forwards _somFree method call to the remote target object.
  317.  */
  318. #define somMD_SOMDClientProxy_somdTargetFree "::SOMDClientProxy::somdTargetFree"
  319. #define SOMDClientProxy_somdTargetFree(somSelf,ev) \
  320.     (SOM_Resolve(somSelf, SOMDClientProxy, somdTargetFree) \
  321.     (somSelf,ev))
  322. #ifndef SOMGD_somdTargetFree
  323.     #if (defined(_somdTargetFree) || defined(__somdTargetFree))
  324.         #undef _somdTargetFree
  325.         #undef __somdTargetFree
  326.         #define SOMGD_somdTargetFree 1
  327.     #else
  328.         #define _somdTargetFree SOMDClientProxy_somdTargetFree
  329.     #endif /* _somdTargetFree */
  330. #endif /* SOMGD_somdTargetFree */
  331.  
  332. /*
  333.  * New Method: somdTargetGetClass
  334.  */
  335. typedef SOMClass*   SOMLINK somTP_SOMDClientProxy_somdTargetGetClass(SOMDClientProxy *somSelf, Environment *ev);
  336. #pragma linkage(somTP_SOMDClientProxy_somdTargetGetClass, system)
  337. typedef somTP_SOMDClientProxy_somdTargetGetClass *somTD_SOMDClientProxy_somdTargetGetClass;
  338. /*
  339.  *  Forwards _somGetClass method call to the remote target object.
  340.  */
  341. #define somMD_SOMDClientProxy_somdTargetGetClass "::SOMDClientProxy::somdTargetGetClass"
  342. #define SOMDClientProxy_somdTargetGetClass(somSelf,ev) \
  343.     (SOM_Resolve(somSelf, SOMDClientProxy, somdTargetGetClass) \
  344.     (somSelf,ev))
  345. #ifndef SOMGD_somdTargetGetClass
  346.     #if (defined(_somdTargetGetClass) || defined(__somdTargetGetClass))
  347.         #undef _somdTargetGetClass
  348.         #undef __somdTargetGetClass
  349.         #define SOMGD_somdTargetGetClass 1
  350.     #else
  351.         #define _somdTargetGetClass SOMDClientProxy_somdTargetGetClass
  352.     #endif /* _somdTargetGetClass */
  353. #endif /* SOMGD_somdTargetGetClass */
  354.  
  355. /*
  356.  * New Method: somdTargetGetClassName
  357.  */
  358. typedef string   SOMLINK somTP_SOMDClientProxy_somdTargetGetClassName(SOMDClientProxy *somSelf, Environment *ev);
  359. #pragma linkage(somTP_SOMDClientProxy_somdTargetGetClassName, system)
  360. typedef somTP_SOMDClientProxy_somdTargetGetClassName *somTD_SOMDClientProxy_somdTargetGetClassName;
  361. /*
  362.  *  Forwards _somGetClassName method call to the remote target object.
  363.  */
  364. #define somMD_SOMDClientProxy_somdTargetGetClassName "::SOMDClientProxy::somdTargetGetClassName"
  365. #define SOMDClientProxy_somdTargetGetClassName(somSelf,ev) \
  366.     (SOM_Resolve(somSelf, SOMDClientProxy, somdTargetGetClassName) \
  367.     (somSelf,ev))
  368. #ifndef SOMGD_somdTargetGetClassName
  369.     #if (defined(_somdTargetGetClassName) || defined(__somdTargetGetClassName))
  370.         #undef _somdTargetGetClassName
  371.         #undef __somdTargetGetClassName
  372.         #define SOMGD_somdTargetGetClassName 1
  373.     #else
  374.         #define _somdTargetGetClassName SOMDClientProxy_somdTargetGetClassName
  375.     #endif /* _somdTargetGetClassName */
  376. #endif /* SOMGD_somdTargetGetClassName */
  377.  
  378. /*
  379.  * New Method: somdProxyFree
  380.  */
  381. typedef void   SOMLINK somTP_SOMDClientProxy_somdProxyFree(SOMDClientProxy *somSelf, Environment *ev);
  382. #pragma linkage(somTP_SOMDClientProxy_somdProxyFree, system)
  383. typedef somTP_SOMDClientProxy_somdProxyFree *somTD_SOMDClientProxy_somdProxyFree;
  384. /*
  385.  *  Performs _somFree method call on the local proxy object.
  386.  */
  387. #define somMD_SOMDClientProxy_somdProxyFree "::SOMDClientProxy::somdProxyFree"
  388. #define SOMDClientProxy_somdProxyFree(somSelf,ev) \
  389.     (SOM_Resolve(somSelf, SOMDClientProxy, somdProxyFree) \
  390.     (somSelf,ev))
  391. #ifndef SOMGD_somdProxyFree
  392.     #if (defined(_somdProxyFree) || defined(__somdProxyFree))
  393.         #undef _somdProxyFree
  394.         #undef __somdProxyFree
  395.         #define SOMGD_somdProxyFree 1
  396.     #else
  397.         #define _somdProxyFree SOMDClientProxy_somdProxyFree
  398.     #endif /* _somdProxyFree */
  399. #endif /* SOMGD_somdProxyFree */
  400.  
  401. /*
  402.  * New Method: somdProxyGetClass
  403.  */
  404. typedef SOMClass*   SOMLINK somTP_SOMDClientProxy_somdProxyGetClass(SOMDClientProxy *somSelf, Environment *ev);
  405. #pragma linkage(somTP_SOMDClientProxy_somdProxyGetClass, system)
  406. typedef somTP_SOMDClientProxy_somdProxyGetClass *somTD_SOMDClientProxy_somdProxyGetClass;
  407. /*
  408.  *  Performs _somGetClass method call on the local proxy object.
  409.  */
  410. #define somMD_SOMDClientProxy_somdProxyGetClass "::SOMDClientProxy::somdProxyGetClass"
  411. #define SOMDClientProxy_somdProxyGetClass(somSelf,ev) \
  412.     (SOM_Resolve(somSelf, SOMDClientProxy, somdProxyGetClass) \
  413.     (somSelf,ev))
  414. #ifndef SOMGD_somdProxyGetClass
  415.     #if (defined(_somdProxyGetClass) || defined(__somdProxyGetClass))
  416.         #undef _somdProxyGetClass
  417.         #undef __somdProxyGetClass
  418.         #define SOMGD_somdProxyGetClass 1
  419.     #else
  420.         #define _somdProxyGetClass SOMDClientProxy_somdProxyGetClass
  421.     #endif /* _somdProxyGetClass */
  422. #endif /* SOMGD_somdProxyGetClass */
  423.  
  424. /*
  425.  * New Method: somdProxyGetClassName
  426.  */
  427. typedef string   SOMLINK somTP_SOMDClientProxy_somdProxyGetClassName(SOMDClientProxy *somSelf, Environment *ev);
  428. #pragma linkage(somTP_SOMDClientProxy_somdProxyGetClassName, system)
  429. typedef somTP_SOMDClientProxy_somdProxyGetClassName *somTD_SOMDClientProxy_somdProxyGetClassName;
  430. /*
  431.  *  Performs _somGetClassName method call on the local proxy object.
  432.  */
  433. #define somMD_SOMDClientProxy_somdProxyGetClassName "::SOMDClientProxy::somdProxyGetClassName"
  434. #define SOMDClientProxy_somdProxyGetClassName(somSelf,ev) \
  435.     (SOM_Resolve(somSelf, SOMDClientProxy, somdProxyGetClassName) \
  436.     (somSelf,ev))
  437. #ifndef SOMGD_somdProxyGetClassName
  438.     #if (defined(_somdProxyGetClassName) || defined(__somdProxyGetClassName))
  439.         #undef _somdProxyGetClassName
  440.         #undef __somdProxyGetClassName
  441.         #define SOMGD_somdProxyGetClassName 1
  442.     #else
  443.         #define _somdProxyGetClassName SOMDClientProxy_somdProxyGetClassName
  444.     #endif /* _somdProxyGetClassName */
  445. #endif /* SOMGD_somdProxyGetClassName */
  446.  
  447. /*
  448.  * New Method: somdReleaseResources
  449.  */
  450. typedef void   SOMLINK somTP_SOMDClientProxy_somdReleaseResources(SOMDClientProxy *somSelf, Environment *ev);
  451. #pragma linkage(somTP_SOMDClientProxy_somdReleaseResources, system)
  452. typedef somTP_SOMDClientProxy_somdReleaseResources *somTD_SOMDClientProxy_somdReleaseResources;
  453. /*
  454.  *  Instructs the proxy to free any memory it owns for use by the client.
  455.  */
  456. #define somMD_SOMDClientProxy_somdReleaseResources "::SOMDClientProxy::somdReleaseResources"
  457. #define SOMDClientProxy_somdReleaseResources(somSelf,ev) \
  458.     (SOM_Resolve(somSelf, SOMDClientProxy, somdReleaseResources) \
  459.     (somSelf,ev))
  460. #ifndef SOMGD_somdReleaseResources
  461.     #if (defined(_somdReleaseResources) || defined(__somdReleaseResources))
  462.         #undef _somdReleaseResources
  463.         #undef __somdReleaseResources
  464.         #define SOMGD_somdReleaseResources 1
  465.     #else
  466.         #define _somdReleaseResources SOMDClientProxy_somdReleaseResources
  467.     #endif /* _somdReleaseResources */
  468. #endif /* SOMGD_somdReleaseResources */
  469. #ifndef SOM_DONT_USE_INHERITED_MACROS
  470. #define SOMDClientProxy_get_implementation SOMDObject_get_implementation
  471. #define SOMDClientProxy_get_interface SOMDObject_get_interface
  472. #define SOMDClientProxy_is_nil SOMDObject_is_nil
  473. #define SOMDClientProxy_is_SOM_ref SOMDObject_is_SOM_ref
  474. #define SOMDClientProxy_is_constant SOMDObject_is_constant
  475. #define SOMDClientProxy_duplicate SOMDObject_duplicate
  476. #define SOMDClientProxy_somDumpSelfInt SOMObject_somDumpSelfInt
  477. #define SOMDClientProxy_somInit SOMObject_somInit
  478. #define SOMDClientProxy_somUninit SOMObject_somUninit
  479. #define SOMDClientProxy_somGetSize SOMObject_somGetSize
  480. #define SOMDClientProxy_somIsA SOMObject_somIsA
  481. #define SOMDClientProxy_somIsInstanceOf SOMObject_somIsInstanceOf
  482. #define SOMDClientProxy_somRespondsTo SOMObject_somRespondsTo
  483. #define SOMDClientProxy_somClassDispatch SOMObject_somClassDispatch
  484. #define SOMDClientProxy_somCastObj SOMObject_somCastObj
  485. #define SOMDClientProxy_somResetObj SOMObject_somResetObj
  486. #define SOMDClientProxy_somPrintSelf SOMObject_somPrintSelf
  487. #define SOMDClientProxy_somDumpSelf SOMObject_somDumpSelf
  488. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  489.  
  490. #endif       /* SOM_SOMDClientProxy_h */
  491.