home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / SOM / INCLUDE / SOMOA.XH < prev    next >
Text File  |  1995-08-30  |  21KB  |  844 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somoa.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.2
  7.  *     SOM Emitter emitxh: 2.41
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *    COMPONENT_NAME: somd
  13.  * 
  14.  *    ORIGINS: 27
  15.  * 
  16.  * 
  17.  *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  18.  *    All Rights Reserved
  19.  *    Licensed Materials - Property of IBM
  20.  *    US Government Users Restricted Rights - Use, duplication or
  21.  *    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  22.  * 
  23.  *    IDL interface spec for SOM Object Adapter (derived from BOA)
  24.  * 
  25.  *    This is DSOM's primary Object Adapter.  It implements the BOA interface.
  26.  */
  27.  
  28.  
  29. #ifndef SOM_SOMOA_xh
  30. #define SOM_SOMOA_xh
  31.  
  32. class SOMOA;
  33.  
  34. #define SOMOA_MajorVersion 2
  35. #define SOMOA_MinorVersion 1
  36.  
  37. /* C++ SOM defs */
  38. #include <somcls.xh>
  39. #include <somcm.xh>
  40.  
  41. /* C++ parent defs */
  42. #ifndef SOM_BOA_xh
  43. #include <boa.xh>
  44. #endif
  45.  
  46. #ifndef SOMOA_API
  47. #define SOMOA_API
  48. /*
  49.  * -- The Class API
  50.  */
  51.  
  52. /*
  53.  * Start of user-defined types:
  54.  */
  55. class SOMClass;
  56. class SOMObject;
  57. class Container;
  58. class SOMDObject;
  59. class Principal;
  60. class ImplementationDef;
  61. class InterfaceDef;
  62. class Context;
  63.  
  64. /*
  65.  * End of user-defined types.
  66.  */
  67.  
  68. /*
  69.  * Passthru lines: File: "C.xh", "after"
  70.  */
  71.  
  72. #define SOMD_WAIT     1
  73. #define SOMD_NO_WAIT  0
  74. #define SOMD_IMPL_NOT_INITIALIZED          0
  75. #define SOMD_IMPL_NOT_ACTIVE               1
  76. #define SOMD_IMPL_ACTIVE                   2
  77.  
  78. SOMEXTERN SOMOA * SOMDLINK SOMD_SOMOAObject;
  79.  
  80.  
  81. /* A procedure to create the SOMOA Class */
  82. SOMEXTERN SOMClass * SOMLINK SOMOANewClass(
  83.         integer4 majorVersion,
  84.         integer4 minorVersion);
  85.  
  86. /* The API to the SOMOA class object, and the methods it introduces. */
  87. SOMEXTERN struct SOMOAClassDataStructure {
  88.     SOMClass *classObject;
  89.     somMToken execute_next_request;
  90.     somMToken execute_request_loop;
  91.     somMToken create_constant;
  92.     somMToken change_id;
  93.     somMToken create_SOM_ref;
  94.     somMToken get_SOM_object;
  95.     somMToken activate_impl_failed;
  96.     somMToken interrupt_server;
  97. } SOMDLINK SOMOAClassData;
  98. #define _SOMOA SOMOAClassData.classObject
  99.  
  100. /* The API to parentMtabs for SOMOA, and the instance data it introduces. */
  101. SOMEXTERN struct SOMOACClassDataStructure {
  102.     somMethodTabs parentMtab;
  103.     somDToken              instanceDataToken;
  104. } SOMDLINK SOMOACClassData;
  105.  
  106. /*
  107.  * -- Typedefs for SOMOA Method Procedures
  108.  */
  109. SOMEXTERN {
  110. typedef ORBStatus   (SOMLINK * somTD_SOMOA_execute_next_request)(SOMOA *somSelf, Environment *ev,
  111.         Flags waitFlag);
  112. typedef ORBStatus   (SOMLINK * somTD_SOMOA_execute_request_loop)(SOMOA *somSelf, Environment *ev,
  113.         Flags waitFlag);
  114. typedef void   (SOMLINK * somTD_SOMOA_change_id)(SOMOA *somSelf, Environment *ev,
  115.         SOMDObject* objref,
  116.         ReferenceData* id);
  117. typedef SOMDObject*   (SOMLINK * somTD_SOMOA_create_constant)(SOMOA *somSelf, Environment *ev,
  118.         ReferenceData* id,
  119.         InterfaceDef* intf,
  120.         ImplementationDef* impl);
  121. typedef SOMDObject*   (SOMLINK * somTD_SOMOA_create_SOM_ref)(SOMOA *somSelf, Environment *ev,
  122.         SOMObject* somobj,
  123.         ImplementationDef* impl);
  124. typedef SOMObject*   (SOMLINK * somTD_SOMOA_get_SOM_object)(SOMOA *somSelf, Environment *ev,
  125.         SOMDObject* somref);
  126. typedef void   (SOMLINK * somTD_SOMOA_activate_impl_failed)(SOMOA *somSelf, Environment *ev,
  127.         ImplementationDef* impl,
  128.         ORBStatus rc);
  129. typedef void   (SOMLINK * somTD_SOMOA_interrupt_server)(SOMOA *somSelf, Environment *ev);
  130.  
  131. /*
  132.  * -- Typedefs for Reintroduced Wrapper Methods
  133.  */
  134. typedef SOMDObject*   (SOMLINK * somTD_SOMOA_create)(SOMOA *somSelf, Environment *ev,
  135.         ReferenceData* id,
  136.         InterfaceDef* intf,
  137.         ImplementationDef* impl);
  138. typedef void   (SOMLINK * somTD_SOMOA_dispose)(SOMOA *somSelf, Environment *ev,
  139.         SOMDObject* obj);
  140. typedef ReferenceData   (SOMLINK * somTD_SOMOA_get_id)(SOMOA *somSelf, Environment *ev,
  141.         SOMDObject* obj);
  142. typedef Principal*   (SOMLINK * somTD_SOMOA_get_principal)(SOMOA *somSelf, Environment *ev,
  143.         SOMDObject* obj,
  144.         Environment* req_ev);
  145. typedef void   (SOMLINK * somTD_SOMOA_set_exception)(SOMOA *somSelf, Environment *ev,
  146.         exception_type major,
  147.         string userid,
  148.         void* param);
  149. typedef void   (SOMLINK * somTD_SOMOA_impl_is_ready)(SOMOA *somSelf, Environment *ev,
  150.         ImplementationDef* impl);
  151. typedef void   (SOMLINK * somTD_SOMOA_deactivate_impl)(SOMOA *somSelf, Environment *ev,
  152.         ImplementationDef* impl);
  153. typedef void   (SOMLINK * somTD_SOMOA_change_implementation)(SOMOA *somSelf, Environment *ev,
  154.         SOMDObject* obj,
  155.         ImplementationDef* impl);
  156. typedef void   (SOMLINK * somTD_SOMOA_obj_is_ready)(SOMOA *somSelf, Environment *ev,
  157.         SOMDObject* obj,
  158.         ImplementationDef* impl);
  159. typedef void   (SOMLINK * somTD_SOMOA_deactivate_obj)(SOMOA *somSelf, Environment *ev,
  160.         SOMDObject* obj);
  161. typedef void   (SOMLINK * somTD_SOMOA_somDefaultInit)(SOMOA *somSelf,
  162.         somInitCtrl* ctrl);
  163. typedef void   (SOMLINK * somTD_SOMOA_somDestruct)(SOMOA *somSelf,
  164.         octet doFree,
  165.         somDestructCtrl* ctrl);
  166. typedef void   (SOMLINK * somTD_SOMOA_somDefaultCopyInit)(SOMOA *somSelf,
  167.         somInitCtrl* ctrl,
  168.         SOMObject* fromObj);
  169. typedef SOMOA*   (SOMLINK * somTD_SOMOA_somDefaultAssign)(SOMOA *somSelf,
  170.         somAssignCtrl* ctrl,
  171.         SOMObject* fromObj);
  172. typedef void   (SOMLINK * somTD_SOMOA_somDefaultConstCopyInit)(SOMOA *somSelf,
  173.         somInitCtrl* ctrl,
  174.         SOMObject* fromObj);
  175. typedef void   (SOMLINK * somTD_SOMOA_somDefaultVCopyInit)(SOMOA *somSelf,
  176.         somInitCtrl* ctrl,
  177.         SOMObject* fromObj);
  178. typedef void   (SOMLINK * somTD_SOMOA_somDefaultConstVCopyInit)(SOMOA *somSelf,
  179.         somInitCtrl* ctrl,
  180.         SOMObject* fromObj);
  181. typedef SOMOA*   (SOMLINK * somTD_SOMOA_somDefaultConstAssign)(SOMOA *somSelf,
  182.         somAssignCtrl* ctrl,
  183.         SOMObject* fromObj);
  184. typedef SOMOA*   (SOMLINK * somTD_SOMOA_somDefaultVAssign)(SOMOA *somSelf,
  185.         somAssignCtrl* ctrl,
  186.         SOMObject* fromObj);
  187. typedef SOMOA*   (SOMLINK * somTD_SOMOA_somDefaultConstVAssign)(SOMOA *somSelf,
  188.         somAssignCtrl* ctrl,
  189.         SOMObject* fromObj);
  190. typedef void   (SOMLINK * somTD_SOMOA_somInit)(SOMOA *somSelf);
  191. typedef void   (SOMLINK * somTD_SOMOA_somFree)(SOMOA *somSelf);
  192. typedef void   (SOMLINK * somTD_SOMOA_somUninit)(SOMOA *somSelf);
  193. typedef SOMClass*   (SOMLINK * somTD_SOMOA_somGetClass)(SOMOA *somSelf);
  194. typedef string   (SOMLINK * somTD_SOMOA_somGetClassName)(SOMOA *somSelf);
  195. typedef long   (SOMLINK * somTD_SOMOA_somGetSize)(SOMOA *somSelf);
  196. typedef boolean   (SOMLINK * somTD_SOMOA_somIsA)(SOMOA *somSelf,
  197.         SOMClass* aClassObj);
  198. typedef boolean   (SOMLINK * somTD_SOMOA_somIsInstanceOf)(SOMOA *somSelf,
  199.         SOMClass* aClassObj);
  200. typedef boolean   (SOMLINK * somTD_SOMOA_somRespondsTo)(SOMOA *somSelf,
  201.         somId mId);
  202. typedef boolean   (SOMLINK * somTD_SOMOA_somDispatch)(SOMOA *somSelf,
  203.         somToken* retValue,
  204.         somId methodId,
  205.         va_list ap);
  206. typedef boolean   (SOMLINK * somTD_SOMOA_somClassDispatch)(SOMOA *somSelf,
  207.         SOMClass* clsObj,
  208.         somToken* retValue,
  209.         somId methodId,
  210.         va_list ap);
  211. typedef boolean   (SOMLINK * somTD_SOMOA_somCastObj)(SOMOA *somSelf,
  212.         SOMClass* cls);
  213. typedef boolean   (SOMLINK * somTD_SOMOA_somResetObj)(SOMOA *somSelf);
  214. typedef void   (SOMLINK * somTD_SOMOA_somDispatchV)(SOMOA *somSelf,
  215.         somId methodId,
  216.         somId descriptor,
  217.         va_list ap);
  218. typedef long   (SOMLINK * somTD_SOMOA_somDispatchL)(SOMOA *somSelf,
  219.         somId methodId,
  220.         somId descriptor,
  221.         va_list ap);
  222. typedef void*   (SOMLINK * somTD_SOMOA_somDispatchA)(SOMOA *somSelf,
  223.         somId methodId,
  224.         somId descriptor,
  225.         va_list ap);
  226. typedef double   (SOMLINK * somTD_SOMOA_somDispatchD)(SOMOA *somSelf,
  227.         somId methodId,
  228.         somId descriptor,
  229.         va_list ap);
  230. typedef SOMObject*   (SOMLINK * somTD_SOMOA_somPrintSelf)(SOMOA *somSelf);
  231. typedef void   (SOMLINK * somTD_SOMOA_somDumpSelf)(SOMOA *somSelf,
  232.         long level);
  233. typedef void   (SOMLINK * somTD_SOMOA_somDumpSelfInt)(SOMOA *somSelf,
  234.         long level);
  235. }
  236.  
  237. #endif /* SOMOA_API */
  238.  
  239.  
  240. /*
  241.  * -- This emitter treats Method Tokens as Thunks by default.
  242.  * -- Use the sc modifier "nothunks" to change this default
  243.  */
  244. #undef somresolve_
  245. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  246.  
  247. /*
  248.  * -- The C++ Wrapper Class for SOMOA
  249.  */
  250. class SOMOA : public BOA
  251. {
  252. public:
  253.  
  254. // SOMOA::new creates the class object if necessary, and then uses somNewNoInit
  255. // to allocate memory and create the object. Initialization is in ctors.
  256. void *operator new(size_t size)
  257. {
  258.    SOM_IgnoreWarning(size);
  259.    if (!_SOMOA) SOMOANewClass(SOMOA_MajorVersion,SOMOA_MinorVersion);
  260.    return (void*)
  261.       SOM_Resolve(_SOMOA,SOMClass,somNewNoInit)
  262.          ((SOMClass *)((void*)_SOMOA));
  263. }
  264.  
  265. // SOMOA::delete uses the default deallocator for the object's class.
  266. void operator delete(void * obj)
  267. {
  268.    somToken objCls = obj ? *(void**)obj : (somToken) NULL;
  269.    if (somIsObj(objCls)) {
  270.       SOM_Resolve(objCls,SOMClass,somDeallocate)
  271.          ((SOMClass*)objCls, (string)obj);
  272.    }
  273. }
  274.  
  275. SOMOA()
  276. {
  277.    if (*(void**)this != 
  278.        ((somParentMtabStructPtr)
  279.         (SOMOACClassData.parentMtab))->mtab)
  280.       return;
  281.    somDefaultInit(0);
  282. }
  283.  
  284. SOMOA(SOMOA* fromObj)
  285. {
  286.    if (*(void**)this != 
  287.        ((somParentMtabStructPtr)
  288.         (SOMOACClassData.parentMtab))->mtab)
  289.       return;
  290.    somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  291. }
  292.  
  293. SOMOA(const SOMOA* fromObj)
  294. {
  295.    if (*(void**)this != 
  296.        ((somParentMtabStructPtr)
  297.         (SOMOACClassData.parentMtab))->mtab)
  298.       return;
  299.    somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  300. }
  301.  
  302. ~SOMOA()
  303. {
  304.    if (!somIsObj(this)) return;
  305.    somDestruct(0,0);
  306.    *(void**)this = **(void***)this;
  307. }
  308.  
  309.  
  310. /* method: execute_next_request */
  311. ORBStatus   execute_next_request(Environment *ev,
  312.         Flags waitFlag)
  313. {
  314.    return SOM_ResolveD(this,SOMOA,SOMOA,execute_next_request)
  315.     (this, ev,waitFlag);
  316. }
  317.  
  318.  
  319. /* method: execute_request_loop */
  320. ORBStatus   execute_request_loop(Environment *ev,
  321.         Flags waitFlag)
  322. {
  323.    return SOM_ResolveD(this,SOMOA,SOMOA,execute_request_loop)
  324.     (this, ev,waitFlag);
  325. }
  326.  
  327.  
  328. /* method: change_id */
  329. void   change_id(Environment *ev,
  330.         SOMDObject* objref,
  331.         ReferenceData* id)
  332. {
  333.    SOM_ResolveD(this,SOMOA,SOMOA,change_id)
  334.     (this, ev,objref,id);
  335. }
  336.  
  337.  
  338. /* method: create_constant */
  339. SOMDObject*   create_constant(Environment *ev,
  340.         ReferenceData* id,
  341.         InterfaceDef* intf,
  342.         ImplementationDef* impl)
  343. {
  344.    return SOM_ResolveD(this,SOMOA,SOMOA,create_constant)
  345.     (this, ev,id,intf,impl);
  346. }
  347.  
  348.  
  349. /* method: create_SOM_ref */
  350. SOMDObject*   create_SOM_ref(Environment *ev,
  351.         SOMObject* somobj,
  352.         ImplementationDef* impl)
  353. {
  354.    return SOM_ResolveD(this,SOMOA,SOMOA,create_SOM_ref)
  355.     (this, ev,somobj,impl);
  356. }
  357.  
  358.  
  359. /* method: get_SOM_object */
  360. SOMObject*   get_SOM_object(Environment *ev,
  361.         SOMDObject* somref)
  362. {
  363.    return SOM_ResolveD(this,SOMOA,SOMOA,get_SOM_object)
  364.     (this, ev,somref);
  365. }
  366.  
  367.  
  368. /* method: activate_impl_failed */
  369. void   activate_impl_failed(Environment *ev,
  370.         ImplementationDef* impl,
  371.         ORBStatus rc)
  372. {
  373.    SOM_ResolveD(this,SOMOA,SOMOA,activate_impl_failed)
  374.     (this, ev,impl,rc);
  375. }
  376.  
  377.  
  378. /* method: interrupt_server */
  379. void   interrupt_server(Environment *ev)
  380. {
  381.    SOM_ResolveD(this,SOMOA,SOMOA,interrupt_server)
  382.     (this, ev);
  383. }
  384.  
  385.  
  386. /*
  387.  * Reintroduce inherited methods
  388.  */
  389.  
  390. /* method: create */
  391. SOMDObject*   create(Environment *ev,
  392.         ReferenceData* id,
  393.         InterfaceDef* intf,
  394.         ImplementationDef* impl)
  395. {
  396.    return SOM_ResolveD(this,SOMOA,BOA,create)
  397.     (this, ev,id,intf,impl);
  398. }
  399.  
  400.  
  401. /* method: dispose */
  402. void   dispose(Environment *ev,
  403.         SOMDObject* obj)
  404. {
  405.    SOM_ResolveD(this,SOMOA,BOA,dispose)
  406.     (this, ev,obj);
  407. }
  408.  
  409.  
  410. /* method: get_id */
  411. ReferenceData   get_id(Environment *ev,
  412.         SOMDObject* obj)
  413. {
  414.    return SOM_ResolveD(this,SOMOA,BOA,get_id)
  415.     (this, ev,obj);
  416. }
  417.  
  418.  
  419. /* method: get_principal */
  420. Principal*   get_principal(Environment *ev,
  421.         SOMDObject* obj,
  422.         Environment* req_ev)
  423. {
  424.    return SOM_ResolveD(this,SOMOA,BOA,get_principal)
  425.     (this, ev,obj,req_ev);
  426. }
  427.  
  428.  
  429. /* method: set_exception */
  430. void   set_exception(Environment *ev,
  431.         exception_type major,
  432.         string userid,
  433.         void* param)
  434. {
  435.    SOM_ResolveD(this,SOMOA,BOA,set_exception)
  436.     (this, ev,major,userid,param);
  437. }
  438.  
  439.  
  440. /* method: impl_is_ready */
  441. void   impl_is_ready(Environment *ev,
  442.         ImplementationDef* impl)
  443. {
  444.    SOM_ResolveD(this,SOMOA,BOA,impl_is_ready)
  445.     (this, ev,impl);
  446. }
  447.  
  448.  
  449. /* method: deactivate_impl */
  450. void   deactivate_impl(Environment *ev,
  451.         ImplementationDef* impl)
  452. {
  453.    SOM_ResolveD(this,SOMOA,BOA,deactivate_impl)
  454.     (this, ev,impl);
  455. }
  456.  
  457.  
  458. /* method: change_implementation */
  459. void   change_implementation(Environment *ev,
  460.         SOMDObject* obj,
  461.         ImplementationDef* impl)
  462. {
  463.    SOM_ResolveD(this,SOMOA,BOA,change_implementation)
  464.     (this, ev,obj,impl);
  465. }
  466.  
  467.  
  468. /* method: obj_is_ready */
  469. void   obj_is_ready(Environment *ev,
  470.         SOMDObject* obj,
  471.         ImplementationDef* impl)
  472. {
  473.    SOM_ResolveD(this,SOMOA,BOA,obj_is_ready)
  474.     (this, ev,obj,impl);
  475. }
  476.  
  477.  
  478. /* method: deactivate_obj */
  479. void   deactivate_obj(Environment *ev,
  480.         SOMDObject* obj)
  481. {
  482.    SOM_ResolveD(this,SOMOA,BOA,deactivate_obj)
  483.     (this, ev,obj);
  484. }
  485.  
  486.  
  487. /* initializer method: somDefaultInit */
  488. void   somDefaultInit(somInitCtrl* ctrl)
  489. {
  490.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultInit)
  491.     (this,ctrl);
  492. }
  493.  
  494.  
  495. /* method: somDestruct */
  496. void   somDestruct(octet doFree,
  497.         somDestructCtrl* ctrl)
  498. {
  499.    SOM_ResolveD(this,SOMOA,SOMObject,somDestruct)
  500.     (this,doFree,ctrl);
  501. }
  502.  
  503.  
  504. /* method: somDefaultCopyInit */
  505. void   somDefaultCopyInit(somInitCtrl* ctrl,
  506.         SOMObject* fromObj)
  507. {
  508.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultCopyInit)
  509.     (this,ctrl,fromObj);
  510. }
  511.  
  512.  
  513. /* method: somDefaultAssign */
  514. SOMOA*  somDefaultAssign(somAssignCtrl* ctrl,
  515.         SOMObject* fromObj)
  516. {
  517.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultAssign)
  518.     (this,ctrl,fromObj);
  519. }
  520.  
  521.  
  522. /* method: somDefaultConstCopyInit */
  523. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  524.         SOMObject* fromObj)
  525. {
  526.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstCopyInit)
  527.     (this,ctrl,fromObj);
  528. }
  529.  
  530.  
  531. /* method: somDefaultVCopyInit */
  532. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  533.         SOMObject* fromObj)
  534. {
  535.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultVCopyInit)
  536.     (this,ctrl,fromObj);
  537. }
  538.  
  539.  
  540. /* method: somDefaultConstVCopyInit */
  541. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  542.         SOMObject* fromObj)
  543. {
  544.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstVCopyInit)
  545.     (this,ctrl,fromObj);
  546. }
  547.  
  548.  
  549. /* method: somDefaultConstAssign */
  550. SOMOA*  somDefaultConstAssign(somAssignCtrl* ctrl,
  551.         SOMObject* fromObj)
  552. {
  553.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstAssign)
  554.     (this,ctrl,fromObj);
  555. }
  556.  
  557.  
  558. /* method: somDefaultVAssign */
  559. SOMOA*  somDefaultVAssign(somAssignCtrl* ctrl,
  560.         SOMObject* fromObj)
  561. {
  562.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultVAssign)
  563.     (this,ctrl,fromObj);
  564. }
  565.  
  566.  
  567. /* method: somDefaultConstVAssign */
  568. SOMOA*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  569.         SOMObject* fromObj)
  570. {
  571.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstVAssign)
  572.     (this,ctrl,fromObj);
  573. }
  574.  
  575.  
  576. /* method: somInit */
  577. void   somInit()
  578. {
  579.    SOM_ResolveD(this,SOMOA,SOMObject,somInit)
  580.     (this);
  581. }
  582.  
  583.  
  584. /* method: somFree */
  585. void   somFree()
  586. {
  587.    SOM_ResolveD(this,SOMOA,SOMObject,somFree)
  588.     (this);
  589. }
  590.  
  591.  
  592. /* method: somUninit */
  593. void   somUninit()
  594. {
  595.    SOM_ResolveD(this,SOMOA,SOMObject,somUninit)
  596.     (this);
  597. }
  598.  
  599.  
  600. /* method: somGetClass */
  601. SOMClass*   somGetClass()
  602. {
  603.    return SOM_ResolveD(this,SOMOA,SOMObject,somGetClass)
  604.     (this);
  605. }
  606.  
  607.  
  608. /* method: somGetClassName */
  609. string   somGetClassName()
  610. {
  611.    return SOM_ResolveD(this,SOMOA,SOMObject,somGetClassName)
  612.     (this);
  613. }
  614.  
  615.  
  616. /* method: somGetSize */
  617. long   somGetSize()
  618. {
  619.    return SOM_ResolveD(this,SOMOA,SOMObject,somGetSize)
  620.     (this);
  621. }
  622.  
  623.  
  624. /* method: somIsA */
  625. boolean   somIsA(SOMClass* aClassObj)
  626. {
  627.    return SOM_ResolveD(this,SOMOA,SOMObject,somIsA)
  628.     (this,aClassObj);
  629. }
  630.  
  631.  
  632. /* method: somIsInstanceOf */
  633. boolean   somIsInstanceOf(SOMClass* aClassObj)
  634. {
  635.    return SOM_ResolveD(this,SOMOA,SOMObject,somIsInstanceOf)
  636.     (this,aClassObj);
  637. }
  638.  
  639.  
  640. /* method: somRespondsTo */
  641. boolean   somRespondsTo(somId mId)
  642. {
  643.    return SOM_ResolveD(this,SOMOA,SOMObject,somRespondsTo)
  644.     (this,mId);
  645. }
  646.  
  647.  
  648. /* va_list method: somDispatch */
  649. /* the va_list invocation form */
  650. boolean   SOMOA_somDispatch(somToken* retValue,
  651.         somId methodId,
  652.         va_list ap)
  653. {
  654. return SOM_ResolveD(this,SOMOA,SOMObject,somDispatch)
  655.     (this,retValue,methodId,ap);
  656. }
  657.  
  658. /* the varargs invocation form */
  659. boolean   somDispatch(somToken* retValue,
  660.         somId methodId,
  661.         ...)
  662. {
  663.    va_list ap;
  664.    va_start(ap, methodId);
  665.    boolean __somResult = 
  666.       SOM_ResolveD(this,SOMOA,SOMObject,somDispatch)
  667.     (this,retValue,methodId,ap);
  668.    va_end(ap);
  669.    return __somResult;
  670. }
  671.  
  672.  
  673. /* va_list method: somClassDispatch */
  674. /* the va_list invocation form */
  675. boolean   SOMOA_somClassDispatch(SOMClass* clsObj,
  676.         somToken* retValue,
  677.         somId methodId,
  678.         va_list ap)
  679. {
  680. return SOM_ResolveD(this,SOMOA,SOMObject,somClassDispatch)
  681.     (this,clsObj,retValue,methodId,ap);
  682. }
  683.  
  684. /* the varargs invocation form */
  685. boolean   somClassDispatch(SOMClass* clsObj,
  686.         somToken* retValue,
  687.         somId methodId,
  688.         ...)
  689. {
  690.    va_list ap;
  691.    va_start(ap, methodId);
  692.    boolean __somResult = 
  693.       SOM_ResolveD(this,SOMOA,SOMObject,somClassDispatch)
  694.     (this,clsObj,retValue,methodId,ap);
  695.    va_end(ap);
  696.    return __somResult;
  697. }
  698.  
  699.  
  700. /* method: somCastObj */
  701. boolean   somCastObj(SOMClass* cls)
  702. {
  703.    return SOM_ResolveD(this,SOMOA,SOMObject,somCastObj)
  704.     (this,cls);
  705. }
  706.  
  707.  
  708. /* method: somResetObj */
  709. boolean   somResetObj()
  710. {
  711.    return SOM_ResolveD(this,SOMOA,SOMObject,somResetObj)
  712.     (this);
  713. }
  714.  
  715.  
  716. /* va_list method: somDispatchV */
  717. /* the va_list invocation form */
  718. void   SOMOA_somDispatchV(somId methodId,
  719.         somId descriptor,
  720.         va_list ap)
  721. {
  722.    SOM_ResolveD(this,SOMOA,SOMObject,somDispatchV)
  723.     (this,methodId,descriptor,ap);
  724. }
  725.  
  726. /* the varargs invocation form */
  727. void   somDispatchV(somId methodId,
  728.         somId descriptor,
  729.         ...)
  730. {
  731.    va_list ap;
  732.    va_start(ap, descriptor);
  733.    SOM_ResolveD(this,SOMOA,SOMObject,somDispatchV)
  734.     (this,methodId,descriptor,ap);
  735.    va_end(ap);
  736. }
  737.  
  738.  
  739. /* va_list method: somDispatchL */
  740. /* the va_list invocation form */
  741. long   SOMOA_somDispatchL(somId methodId,
  742.         somId descriptor,
  743.         va_list ap)
  744. {
  745. return SOM_ResolveD(this,SOMOA,SOMObject,somDispatchL)
  746.     (this,methodId,descriptor,ap);
  747. }
  748.  
  749. /* the varargs invocation form */
  750. long   somDispatchL(somId methodId,
  751.         somId descriptor,
  752.         ...)
  753. {
  754.    va_list ap;
  755.    va_start(ap, descriptor);
  756.    long __somResult = 
  757.       SOM_ResolveD(this,SOMOA,SOMObject,somDispatchL)
  758.     (this,methodId,descriptor,ap);
  759.    va_end(ap);
  760.    return __somResult;
  761. }
  762.  
  763.  
  764. /* va_list method: somDispatchA */
  765. /* the va_list invocation form */
  766. void*   SOMOA_somDispatchA(somId methodId,
  767.         somId descriptor,
  768.         va_list ap)
  769. {
  770. return SOM_ResolveD(this,SOMOA,SOMObject,somDispatchA)
  771.     (this,methodId,descriptor,ap);
  772. }
  773.  
  774. /* the varargs invocation form */
  775. void*   somDispatchA(somId methodId,
  776.         somId descriptor,
  777.         ...)
  778. {
  779.    va_list ap;
  780.    va_start(ap, descriptor);
  781.    void* __somResult = 
  782.       SOM_ResolveD(this,SOMOA,SOMObject,somDispatchA)
  783.     (this,methodId,descriptor,ap);
  784.    va_end(ap);
  785.    return __somResult;
  786. }
  787.  
  788.  
  789. /* va_list method: somDispatchD */
  790. /* the va_list invocation form */
  791. double   SOMOA_somDispatchD(somId methodId,
  792.         somId descriptor,
  793.         va_list ap)
  794. {
  795. return SOM_ResolveD(this,SOMOA,SOMObject,somDispatchD)
  796.     (this,methodId,descriptor,ap);
  797. }
  798.  
  799. /* the varargs invocation form */
  800. double   somDispatchD(somId methodId,
  801.         somId descriptor,
  802.         ...)
  803. {
  804.    va_list ap;
  805.    va_start(ap, descriptor);
  806.    double __somResult = 
  807.       SOM_ResolveD(this,SOMOA,SOMObject,somDispatchD)
  808.     (this,methodId,descriptor,ap);
  809.    va_end(ap);
  810.    return __somResult;
  811. }
  812.  
  813.  
  814. /* method: somPrintSelf */
  815. SOMObject*   somPrintSelf()
  816. {
  817.    return SOM_ResolveD(this,SOMOA,SOMObject,somPrintSelf)
  818.     (this);
  819. }
  820.  
  821.  
  822. /* method: somDumpSelf */
  823. void   somDumpSelf(long level)
  824. {
  825.    SOM_ResolveD(this,SOMOA,SOMObject,somDumpSelf)
  826.     (this,level);
  827. }
  828.  
  829.  
  830. /* method: somDumpSelfInt */
  831. void   somDumpSelfInt(long level)
  832. {
  833.    SOM_ResolveD(this,SOMOA,SOMObject,somDumpSelfInt)
  834.     (this,level);
  835. }
  836.  
  837.  
  838.  
  839. };   /* SOMOA */
  840.  
  841.  
  842.  
  843. #endif       /* SOM_SOMOA_xh */
  844.