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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somdobj.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.  *    Interface for CORBA Object Reference.
  24.  * 
  25.  *    This is the class that implements the behavior of CORBA object references,
  26.  *    e.g., get_implementation, get_interface, duplicate, release, etc.
  27.  * 
  28.  *    In addition, there are some private methods, which are exposed only to
  29.  *    the ORB classes, to implement the ORB functions related to object
  30.  *    references (e.g., ORB_object_to_string).
  31.  * 
  32.  *    In DSOM, there is also another derivation of this class:  SOMDClientProxy.
  33.  *    This subclass inherits the implementation of this class, but extends it
  34.  *    by overriding somDispatch with a "remote dispatch" method, and caches the
  35.  *    binding to the server process.  Whenever a remote object is accessed, it
  36.  *    is represented in the client process by a SOMDClientProxy object.
  37.  * 
  38.  * 
  39.  */
  40.  
  41.  
  42. #ifndef SOM_SOMDObject_xh
  43. #define SOM_SOMDObject_xh
  44.  
  45. class SOMDObject;
  46.  
  47. #define SOMDObject_MajorVersion 2
  48. #define SOMDObject_MinorVersion 1
  49.  
  50. /* C++ SOM defs */
  51. #include <somcls.xh>
  52. #include <somcm.xh>
  53.  
  54. /* C++ parent defs */
  55. #ifndef SOM_SOMObject_xh
  56. #include <somobj.xh>
  57. #endif
  58.  
  59. #ifndef SOMDObject_API
  60. #define SOMDObject_API
  61. /*
  62.  * -- The Class API
  63.  */
  64.  
  65. /*
  66.  * Start of user-defined types:
  67.  */
  68. class SOMClass;
  69. class SOMObject;
  70. class Container;
  71. class ImplementationDef;
  72. class InterfaceDef;
  73. class NVList;
  74. class Context;
  75. class Request;
  76.  
  77. /*
  78.  * End of user-defined types.
  79.  */
  80.  
  81. /* A procedure to create the SOMDObject Class */
  82. SOMEXTERN SOMClass * SOMLINK SOMDObjectNewClass(
  83.         integer4 majorVersion,
  84.         integer4 minorVersion);
  85.  
  86. /* The API to the SOMDObject class object, and the methods it introduces. */
  87. SOMEXTERN struct SOMDObjectClassDataStructure {
  88.     SOMClass *classObject;
  89.     somMToken get_implementation;
  90.     somMToken get_interface;
  91.     somMToken set_to_nil;
  92.     somMethodProc *is_nil;
  93.     somMToken is_SOM_ref;
  94.     somMToken is_constant;
  95.     somMToken is_proxy;
  96.     somMToken duplicate;
  97.     somMToken release;
  98.     somMToken create_request;
  99.     somMToken create_request_args;
  100.     somMToken _get_somd_tag;
  101.     somMToken _get_somd_flags;
  102.     somMToken _set_somd_flags;
  103.     somMToken _get_somd_impl;
  104.     somMToken _set_somd_impl;
  105.     somMToken _get_somd_rid;
  106.     somMToken _set_somd_rid;
  107.     somMToken _get_somd_id;
  108.     somMToken _set_somd_id;
  109. } SOMDLINK SOMDObjectClassData;
  110. #define _SOMDObject SOMDObjectClassData.classObject
  111.  
  112. /* The API to parentMtabs for SOMDObject, and the instance data it introduces. */
  113. SOMEXTERN struct SOMDObjectCClassDataStructure {
  114.     somMethodTabs parentMtab;
  115.     somDToken              instanceDataToken;
  116. } SOMDLINK SOMDObjectCClassData;
  117.  
  118. /*
  119.  * -- Typedefs for SOMDObject Method Procedures
  120.  */
  121. SOMEXTERN {
  122. typedef ImplementationDef*   (SOMLINK * somTD_SOMDObject_get_implementation)(SOMDObject *somSelf, Environment *ev);
  123. typedef InterfaceDef*   (SOMLINK * somTD_SOMDObject_get_interface)(SOMDObject *somSelf, Environment *ev);
  124. typedef boolean   (SOMLINK * somTD_SOMDObject_is_nil)(SOMDObject *somSelf, Environment *ev);
  125. typedef boolean   (SOMLINK * somTD_SOMDObject_is_SOM_ref)(SOMDObject *somSelf, Environment *ev);
  126. typedef boolean   (SOMLINK * somTD_SOMDObject_is_constant)(SOMDObject *somSelf, Environment *ev);
  127. typedef boolean   (SOMLINK * somTD_SOMDObject_is_proxy)(SOMDObject *somSelf, Environment *ev);
  128. typedef SOMDObject*   (SOMLINK * somTD_SOMDObject_duplicate)(SOMDObject *somSelf, Environment *ev);
  129. typedef void   (SOMLINK * somTD_SOMDObject_release)(SOMDObject *somSelf, Environment *ev);
  130. typedef ORBStatus   (SOMLINK * somTD_SOMDObject_create_request)(SOMDObject *somSelf, Environment *ev,
  131.         Context* ctx,
  132.         Identifier operation,
  133.         NVList* arg_list,
  134.         NamedValue* result,
  135.         Request** request,
  136.         Flags req_flags);
  137. typedef ORBStatus   (SOMLINK * somTD_SOMDObject_create_request_args)(SOMDObject *somSelf, Environment *ev,
  138.         Identifier operation,
  139.         NVList** arg_list,
  140.         NamedValue* result);
  141.  
  142. /*
  143.  * -- Typedefs for Reintroduced Wrapper Methods
  144.  */
  145. typedef void   (SOMLINK * somTD_SOMDObject_somDefaultInit)(SOMDObject *somSelf,
  146.         somInitCtrl* ctrl);
  147. typedef void   (SOMLINK * somTD_SOMDObject_somDestruct)(SOMDObject *somSelf,
  148.         octet doFree,
  149.         somDestructCtrl* ctrl);
  150. typedef void   (SOMLINK * somTD_SOMDObject_somDefaultCopyInit)(SOMDObject *somSelf,
  151.         somInitCtrl* ctrl,
  152.         SOMObject* fromObj);
  153. typedef SOMDObject*   (SOMLINK * somTD_SOMDObject_somDefaultAssign)(SOMDObject *somSelf,
  154.         somAssignCtrl* ctrl,
  155.         SOMObject* fromObj);
  156. typedef void   (SOMLINK * somTD_SOMDObject_somDefaultConstCopyInit)(SOMDObject *somSelf,
  157.         somInitCtrl* ctrl,
  158.         SOMObject* fromObj);
  159. typedef void   (SOMLINK * somTD_SOMDObject_somDefaultVCopyInit)(SOMDObject *somSelf,
  160.         somInitCtrl* ctrl,
  161.         SOMObject* fromObj);
  162. typedef void   (SOMLINK * somTD_SOMDObject_somDefaultConstVCopyInit)(SOMDObject *somSelf,
  163.         somInitCtrl* ctrl,
  164.         SOMObject* fromObj);
  165. typedef SOMDObject*   (SOMLINK * somTD_SOMDObject_somDefaultConstAssign)(SOMDObject *somSelf,
  166.         somAssignCtrl* ctrl,
  167.         SOMObject* fromObj);
  168. typedef SOMDObject*   (SOMLINK * somTD_SOMDObject_somDefaultVAssign)(SOMDObject *somSelf,
  169.         somAssignCtrl* ctrl,
  170.         SOMObject* fromObj);
  171. typedef SOMDObject*   (SOMLINK * somTD_SOMDObject_somDefaultConstVAssign)(SOMDObject *somSelf,
  172.         somAssignCtrl* ctrl,
  173.         SOMObject* fromObj);
  174. typedef void   (SOMLINK * somTD_SOMDObject_somInit)(SOMDObject *somSelf);
  175. typedef void   (SOMLINK * somTD_SOMDObject_somFree)(SOMDObject *somSelf);
  176. typedef void   (SOMLINK * somTD_SOMDObject_somUninit)(SOMDObject *somSelf);
  177. typedef SOMClass*   (SOMLINK * somTD_SOMDObject_somGetClass)(SOMDObject *somSelf);
  178. typedef string   (SOMLINK * somTD_SOMDObject_somGetClassName)(SOMDObject *somSelf);
  179. typedef long   (SOMLINK * somTD_SOMDObject_somGetSize)(SOMDObject *somSelf);
  180. typedef boolean   (SOMLINK * somTD_SOMDObject_somIsA)(SOMDObject *somSelf,
  181.         SOMClass* aClassObj);
  182. typedef boolean   (SOMLINK * somTD_SOMDObject_somIsInstanceOf)(SOMDObject *somSelf,
  183.         SOMClass* aClassObj);
  184. typedef boolean   (SOMLINK * somTD_SOMDObject_somRespondsTo)(SOMDObject *somSelf,
  185.         somId mId);
  186. typedef boolean   (SOMLINK * somTD_SOMDObject_somDispatch)(SOMDObject *somSelf,
  187.         somToken* retValue,
  188.         somId methodId,
  189.         va_list ap);
  190. typedef boolean   (SOMLINK * somTD_SOMDObject_somClassDispatch)(SOMDObject *somSelf,
  191.         SOMClass* clsObj,
  192.         somToken* retValue,
  193.         somId methodId,
  194.         va_list ap);
  195. typedef boolean   (SOMLINK * somTD_SOMDObject_somCastObj)(SOMDObject *somSelf,
  196.         SOMClass* cls);
  197. typedef boolean   (SOMLINK * somTD_SOMDObject_somResetObj)(SOMDObject *somSelf);
  198. typedef void   (SOMLINK * somTD_SOMDObject_somDispatchV)(SOMDObject *somSelf,
  199.         somId methodId,
  200.         somId descriptor,
  201.         va_list ap);
  202. typedef long   (SOMLINK * somTD_SOMDObject_somDispatchL)(SOMDObject *somSelf,
  203.         somId methodId,
  204.         somId descriptor,
  205.         va_list ap);
  206. typedef void*   (SOMLINK * somTD_SOMDObject_somDispatchA)(SOMDObject *somSelf,
  207.         somId methodId,
  208.         somId descriptor,
  209.         va_list ap);
  210. typedef double   (SOMLINK * somTD_SOMDObject_somDispatchD)(SOMDObject *somSelf,
  211.         somId methodId,
  212.         somId descriptor,
  213.         va_list ap);
  214. typedef SOMObject*   (SOMLINK * somTD_SOMDObject_somPrintSelf)(SOMDObject *somSelf);
  215. typedef void   (SOMLINK * somTD_SOMDObject_somDumpSelf)(SOMDObject *somSelf,
  216.         long level);
  217. typedef void   (SOMLINK * somTD_SOMDObject_somDumpSelfInt)(SOMDObject *somSelf,
  218.         long level);
  219. }
  220.  
  221. #endif /* SOMDObject_API */
  222.  
  223.  
  224. /*
  225.  * -- This emitter treats Method Tokens as Thunks by default.
  226.  * -- Use the sc modifier "nothunks" to change this default
  227.  */
  228. #undef somresolve_
  229. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  230.  
  231. /*
  232.  * -- The C++ Wrapper Class for SOMDObject
  233.  */
  234. class SOMDObject : public SOMObject
  235. {
  236. public:
  237.  
  238. // SOMDObject::new creates the class object if necessary, and then uses somNewNoInit
  239. // to allocate memory and create the object. Initialization is in ctors.
  240. void *operator new(size_t size)
  241. {
  242.    SOM_IgnoreWarning(size);
  243.    if (!_SOMDObject) SOMDObjectNewClass(SOMDObject_MajorVersion,SOMDObject_MinorVersion);
  244.    return (void*)
  245.       SOM_Resolve(_SOMDObject,SOMClass,somNewNoInit)
  246.          ((SOMClass *)((void*)_SOMDObject));
  247. }
  248.  
  249. // SOMDObject::delete uses the default deallocator for the object's class.
  250. void operator delete(void * obj)
  251. {
  252.    somToken objCls = obj ? *(void**)obj : (somToken) NULL;
  253.    if (somIsObj(objCls)) {
  254.       SOM_Resolve(objCls,SOMClass,somDeallocate)
  255.          ((SOMClass*)objCls, (string)obj);
  256.    }
  257. }
  258.  
  259. SOMDObject()
  260. {
  261.    if (*(void**)this != 
  262.        ((somParentMtabStructPtr)
  263.         (SOMDObjectCClassData.parentMtab))->mtab)
  264.       return;
  265.    somDefaultInit(0);
  266. }
  267.  
  268. SOMDObject(SOMDObject* fromObj)
  269. {
  270.    if (*(void**)this != 
  271.        ((somParentMtabStructPtr)
  272.         (SOMDObjectCClassData.parentMtab))->mtab)
  273.       return;
  274.    somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  275. }
  276.  
  277. SOMDObject(const SOMDObject* fromObj)
  278. {
  279.    if (*(void**)this != 
  280.        ((somParentMtabStructPtr)
  281.         (SOMDObjectCClassData.parentMtab))->mtab)
  282.       return;
  283.    somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  284. }
  285.  
  286. ~SOMDObject()
  287. {
  288.    if (!somIsObj(this)) return;
  289.    somDestruct(0,0);
  290.    *(void**)this = **(void***)this;
  291. }
  292.  
  293.  
  294. /* method: get_implementation */
  295. ImplementationDef*   get_implementation(Environment *ev)
  296. {
  297.    return SOM_ResolveD(this,SOMDObject,SOMDObject,get_implementation)
  298.     (this, ev);
  299. }
  300.  
  301.  
  302. /* method: get_interface */
  303. InterfaceDef*   get_interface(Environment *ev)
  304. {
  305.    return SOM_ResolveD(this,SOMDObject,SOMDObject,get_interface)
  306.     (this, ev);
  307. }
  308.  
  309.  
  310. /* procedure: is_nil */
  311. static boolean   is_nil(SOMDObject *somSelf, Environment *ev)
  312. {
  313.    return ((somTD_SOMDObject_is_nil)SOMDObjectClassData.is_nil)
  314.     (somSelf, ev);
  315. }
  316.  
  317.  
  318. /* method: is_SOM_ref */
  319. boolean   is_SOM_ref(Environment *ev)
  320. {
  321.    return SOM_ResolveD(this,SOMDObject,SOMDObject,is_SOM_ref)
  322.     (this, ev);
  323. }
  324.  
  325.  
  326. /* method: is_constant */
  327. boolean   is_constant(Environment *ev)
  328. {
  329.    return SOM_ResolveD(this,SOMDObject,SOMDObject,is_constant)
  330.     (this, ev);
  331. }
  332.  
  333.  
  334. /* method: is_proxy */
  335. boolean   is_proxy(Environment *ev)
  336. {
  337.    return SOM_ResolveD(this,SOMDObject,SOMDObject,is_proxy)
  338.     (this, ev);
  339. }
  340.  
  341.  
  342. /* method: duplicate */
  343. SOMDObject*   duplicate(Environment *ev)
  344. {
  345.    return SOM_ResolveD(this,SOMDObject,SOMDObject,duplicate)
  346.     (this, ev);
  347. }
  348.  
  349.  
  350. /* method: release */
  351. void   release(Environment *ev)
  352. {
  353.    SOM_ResolveD(this,SOMDObject,SOMDObject,release)
  354.     (this, ev);
  355. }
  356.  
  357.  
  358. /* method: create_request */
  359. ORBStatus   create_request(Environment *ev,
  360.         Context* ctx,
  361.         Identifier operation,
  362.         NVList* arg_list,
  363.         NamedValue* result,
  364.         Request** request,
  365.         Flags req_flags)
  366. {
  367.    return SOM_ResolveD(this,SOMDObject,SOMDObject,create_request)
  368.     (this, ev,ctx,operation,arg_list,result,request,req_flags);
  369. }
  370.  
  371.  
  372. /* method: create_request_args */
  373. ORBStatus   create_request_args(Environment *ev,
  374.         Identifier operation,
  375.         NVList** arg_list,
  376.         NamedValue* result)
  377. {
  378.    return SOM_ResolveD(this,SOMDObject,SOMDObject,create_request_args)
  379.     (this, ev,operation,arg_list,result);
  380. }
  381.  
  382.  
  383. /*
  384.  * Reintroduce inherited methods
  385.  */
  386.  
  387. /* initializer method: somDefaultInit */
  388. void   somDefaultInit(somInitCtrl* ctrl)
  389. {
  390.    SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultInit)
  391.     (this,ctrl);
  392. }
  393.  
  394.  
  395. /* method: somDestruct */
  396. void   somDestruct(octet doFree,
  397.         somDestructCtrl* ctrl)
  398. {
  399.    SOM_ResolveD(this,SOMDObject,SOMObject,somDestruct)
  400.     (this,doFree,ctrl);
  401. }
  402.  
  403.  
  404. /* method: somDefaultCopyInit */
  405. void   somDefaultCopyInit(somInitCtrl* ctrl,
  406.         SOMObject* fromObj)
  407. {
  408.    SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultCopyInit)
  409.     (this,ctrl,fromObj);
  410. }
  411.  
  412.  
  413. /* method: somDefaultAssign */
  414. SOMDObject*  somDefaultAssign(somAssignCtrl* ctrl,
  415.         SOMObject* fromObj)
  416. {
  417.    return SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultAssign)
  418.     (this,ctrl,fromObj);
  419. }
  420.  
  421.  
  422. /* method: somDefaultConstCopyInit */
  423. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  424.         SOMObject* fromObj)
  425. {
  426.    SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultConstCopyInit)
  427.     (this,ctrl,fromObj);
  428. }
  429.  
  430.  
  431. /* method: somDefaultVCopyInit */
  432. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  433.         SOMObject* fromObj)
  434. {
  435.    SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultVCopyInit)
  436.     (this,ctrl,fromObj);
  437. }
  438.  
  439.  
  440. /* method: somDefaultConstVCopyInit */
  441. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  442.         SOMObject* fromObj)
  443. {
  444.    SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultConstVCopyInit)
  445.     (this,ctrl,fromObj);
  446. }
  447.  
  448.  
  449. /* method: somDefaultConstAssign */
  450. SOMDObject*  somDefaultConstAssign(somAssignCtrl* ctrl,
  451.         SOMObject* fromObj)
  452. {
  453.    return SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultConstAssign)
  454.     (this,ctrl,fromObj);
  455. }
  456.  
  457.  
  458. /* method: somDefaultVAssign */
  459. SOMDObject*  somDefaultVAssign(somAssignCtrl* ctrl,
  460.         SOMObject* fromObj)
  461. {
  462.    return SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultVAssign)
  463.     (this,ctrl,fromObj);
  464. }
  465.  
  466.  
  467. /* method: somDefaultConstVAssign */
  468. SOMDObject*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  469.         SOMObject* fromObj)
  470. {
  471.    return SOM_ResolveD(this,SOMDObject,SOMObject,somDefaultConstVAssign)
  472.     (this,ctrl,fromObj);
  473. }
  474.  
  475.  
  476. /* method: somInit */
  477. void   somInit()
  478. {
  479.    SOM_ResolveD(this,SOMDObject,SOMObject,somInit)
  480.     (this);
  481. }
  482.  
  483.  
  484. /* method: somFree */
  485. void   somFree()
  486. {
  487.    SOM_ResolveD(this,SOMDObject,SOMObject,somFree)
  488.     (this);
  489. }
  490.  
  491.  
  492. /* method: somUninit */
  493. void   somUninit()
  494. {
  495.    SOM_ResolveD(this,SOMDObject,SOMObject,somUninit)
  496.     (this);
  497. }
  498.  
  499.  
  500. /* method: somGetClass */
  501. SOMClass*   somGetClass()
  502. {
  503.    return SOM_ResolveD(this,SOMDObject,SOMObject,somGetClass)
  504.     (this);
  505. }
  506.  
  507.  
  508. /* method: somGetClassName */
  509. string   somGetClassName()
  510. {
  511.    return SOM_ResolveD(this,SOMDObject,SOMObject,somGetClassName)
  512.     (this);
  513. }
  514.  
  515.  
  516. /* method: somGetSize */
  517. long   somGetSize()
  518. {
  519.    return SOM_ResolveD(this,SOMDObject,SOMObject,somGetSize)
  520.     (this);
  521. }
  522.  
  523.  
  524. /* method: somIsA */
  525. boolean   somIsA(SOMClass* aClassObj)
  526. {
  527.    return SOM_ResolveD(this,SOMDObject,SOMObject,somIsA)
  528.     (this,aClassObj);
  529. }
  530.  
  531.  
  532. /* method: somIsInstanceOf */
  533. boolean   somIsInstanceOf(SOMClass* aClassObj)
  534. {
  535.    return SOM_ResolveD(this,SOMDObject,SOMObject,somIsInstanceOf)
  536.     (this,aClassObj);
  537. }
  538.  
  539.  
  540. /* method: somRespondsTo */
  541. boolean   somRespondsTo(somId mId)
  542. {
  543.    return SOM_ResolveD(this,SOMDObject,SOMObject,somRespondsTo)
  544.     (this,mId);
  545. }
  546.  
  547.  
  548. /* va_list method: somDispatch */
  549. /* the va_list invocation form */
  550. boolean   SOMDObject_somDispatch(somToken* retValue,
  551.         somId methodId,
  552.         va_list ap)
  553. {
  554. return SOM_ResolveD(this,SOMDObject,SOMObject,somDispatch)
  555.     (this,retValue,methodId,ap);
  556. }
  557.  
  558. /* the varargs invocation form */
  559. boolean   somDispatch(somToken* retValue,
  560.         somId methodId,
  561.         ...)
  562. {
  563.    va_list ap;
  564.    va_start(ap, methodId);
  565.    boolean __somResult = 
  566.       SOM_ResolveD(this,SOMDObject,SOMObject,somDispatch)
  567.     (this,retValue,methodId,ap);
  568.    va_end(ap);
  569.    return __somResult;
  570. }
  571.  
  572.  
  573. /* va_list method: somClassDispatch */
  574. /* the va_list invocation form */
  575. boolean   SOMDObject_somClassDispatch(SOMClass* clsObj,
  576.         somToken* retValue,
  577.         somId methodId,
  578.         va_list ap)
  579. {
  580. return SOM_ResolveD(this,SOMDObject,SOMObject,somClassDispatch)
  581.     (this,clsObj,retValue,methodId,ap);
  582. }
  583.  
  584. /* the varargs invocation form */
  585. boolean   somClassDispatch(SOMClass* clsObj,
  586.         somToken* retValue,
  587.         somId methodId,
  588.         ...)
  589. {
  590.    va_list ap;
  591.    va_start(ap, methodId);
  592.    boolean __somResult = 
  593.       SOM_ResolveD(this,SOMDObject,SOMObject,somClassDispatch)
  594.     (this,clsObj,retValue,methodId,ap);
  595.    va_end(ap);
  596.    return __somResult;
  597. }
  598.  
  599.  
  600. /* method: somCastObj */
  601. boolean   somCastObj(SOMClass* cls)
  602. {
  603.    return SOM_ResolveD(this,SOMDObject,SOMObject,somCastObj)
  604.     (this,cls);
  605. }
  606.  
  607.  
  608. /* method: somResetObj */
  609. boolean   somResetObj()
  610. {
  611.    return SOM_ResolveD(this,SOMDObject,SOMObject,somResetObj)
  612.     (this);
  613. }
  614.  
  615.  
  616. /* va_list method: somDispatchV */
  617. /* the va_list invocation form */
  618. void   SOMDObject_somDispatchV(somId methodId,
  619.         somId descriptor,
  620.         va_list ap)
  621. {
  622.    SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchV)
  623.     (this,methodId,descriptor,ap);
  624. }
  625.  
  626. /* the varargs invocation form */
  627. void   somDispatchV(somId methodId,
  628.         somId descriptor,
  629.         ...)
  630. {
  631.    va_list ap;
  632.    va_start(ap, descriptor);
  633.    SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchV)
  634.     (this,methodId,descriptor,ap);
  635.    va_end(ap);
  636. }
  637.  
  638.  
  639. /* va_list method: somDispatchL */
  640. /* the va_list invocation form */
  641. long   SOMDObject_somDispatchL(somId methodId,
  642.         somId descriptor,
  643.         va_list ap)
  644. {
  645. return SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchL)
  646.     (this,methodId,descriptor,ap);
  647. }
  648.  
  649. /* the varargs invocation form */
  650. long   somDispatchL(somId methodId,
  651.         somId descriptor,
  652.         ...)
  653. {
  654.    va_list ap;
  655.    va_start(ap, descriptor);
  656.    long __somResult = 
  657.       SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchL)
  658.     (this,methodId,descriptor,ap);
  659.    va_end(ap);
  660.    return __somResult;
  661. }
  662.  
  663.  
  664. /* va_list method: somDispatchA */
  665. /* the va_list invocation form */
  666. void*   SOMDObject_somDispatchA(somId methodId,
  667.         somId descriptor,
  668.         va_list ap)
  669. {
  670. return SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchA)
  671.     (this,methodId,descriptor,ap);
  672. }
  673.  
  674. /* the varargs invocation form */
  675. void*   somDispatchA(somId methodId,
  676.         somId descriptor,
  677.         ...)
  678. {
  679.    va_list ap;
  680.    va_start(ap, descriptor);
  681.    void* __somResult = 
  682.       SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchA)
  683.     (this,methodId,descriptor,ap);
  684.    va_end(ap);
  685.    return __somResult;
  686. }
  687.  
  688.  
  689. /* va_list method: somDispatchD */
  690. /* the va_list invocation form */
  691. double   SOMDObject_somDispatchD(somId methodId,
  692.         somId descriptor,
  693.         va_list ap)
  694. {
  695. return SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchD)
  696.     (this,methodId,descriptor,ap);
  697. }
  698.  
  699. /* the varargs invocation form */
  700. double   somDispatchD(somId methodId,
  701.         somId descriptor,
  702.         ...)
  703. {
  704.    va_list ap;
  705.    va_start(ap, descriptor);
  706.    double __somResult = 
  707.       SOM_ResolveD(this,SOMDObject,SOMObject,somDispatchD)
  708.     (this,methodId,descriptor,ap);
  709.    va_end(ap);
  710.    return __somResult;
  711. }
  712.  
  713.  
  714. /* method: somPrintSelf */
  715. SOMObject*   somPrintSelf()
  716. {
  717.    return SOM_ResolveD(this,SOMDObject,SOMObject,somPrintSelf)
  718.     (this);
  719. }
  720.  
  721.  
  722. /* method: somDumpSelf */
  723. void   somDumpSelf(long level)
  724. {
  725.    SOM_ResolveD(this,SOMDObject,SOMObject,somDumpSelf)
  726.     (this,level);
  727. }
  728.  
  729.  
  730. /* method: somDumpSelfInt */
  731. void   somDumpSelfInt(long level)
  732. {
  733.    SOM_ResolveD(this,SOMDObject,SOMObject,somDumpSelfInt)
  734.     (this,level);
  735. }
  736.  
  737.  
  738.  
  739. };   /* SOMDObject */
  740.  
  741.  
  742.  
  743. #endif       /* SOM_SOMDObject_xh */
  744.