home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / somoa.xh < prev    next >
Encoding:
Text File  |  1996-02-22  |  20.5 KB  |  784 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\SOMOA.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: Development
  7.  *     SOM Emitter emitxh.dll: Development
  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. class SOMOA;
  79. SOMEXTERN WIN32_DLLIMPORT SOMOA * SOMDLINK SOMD_SOMOAObject;
  80.  
  81.  
  82. /* A procedure to create the SOMOA Class */
  83. SOMEXTERN
  84. #if (defined(SOM_Module_SOMOA_Source) || defined(SOMOA_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMOA))
  85. WIN32_DLLEXPORT
  86. #else
  87. WIN32_DLLIMPORT
  88. #endif
  89. SOMClass * SOMLINK SOMOANewClass(
  90.         integer4,
  91.         integer4 );
  92.  
  93. /* The API to the SOMOA class object, and the methods it introduces. */
  94. SOMEXTERN struct SOMOAClassDataStructure {
  95.     SOMClass *classObject;
  96.     somMToken execute_next_request;
  97.     somMToken execute_request_loop;
  98.     somMToken create_constant;
  99.     somMToken change_id;
  100.     somMToken create_SOM_ref;
  101.     somMToken get_SOM_object;
  102.     somMToken activate_impl_failed;
  103.     somMToken interrupt_server;
  104. }
  105. #if !(defined(SOM_Module_SOMOA_Source) || defined(SOMOA_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMOA))
  106. WIN32_DLLIMPORT
  107. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  108. WIN32_DLLEXPORT
  109. #endif
  110. SOMDLINK SOMOAClassData;
  111. #define _SOMOA SOMOAClassData.classObject
  112.  
  113. /* The API to parentMtabs for SOMOA, and the instance data it introduces. */
  114. SOMEXTERN struct SOMOACClassDataStructure {
  115.     somMethodTabs parentMtab;
  116.     somDToken              instanceDataToken;
  117. }
  118. #if !(defined(SOM_Module_SOMOA_Source) || defined(SOMOA_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMOA))
  119. WIN32_DLLIMPORT
  120. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  121. WIN32_DLLEXPORT
  122. #endif
  123. SOMDLINK SOMOACClassData;
  124.  
  125. /*
  126.  * -- Typedefs for SOMOA Method Procedures
  127.  */
  128. extern "C" {
  129. typedef ORBStatus   SOMLINK somTP_SOMOA_execute_next_request(SOMOA *somSelf, Environment *ev,
  130.         Flags waitFlag);
  131. typedef somTP_SOMOA_execute_next_request *somTD_SOMOA_execute_next_request;
  132. typedef ORBStatus   SOMLINK somTP_SOMOA_execute_request_loop(SOMOA *somSelf, Environment *ev,
  133.         Flags waitFlag);
  134. typedef somTP_SOMOA_execute_request_loop *somTD_SOMOA_execute_request_loop;
  135. typedef void   SOMLINK somTP_SOMOA_change_id(SOMOA *somSelf, Environment *ev,
  136.         SOMDObject* objref,
  137.         ReferenceData* id);
  138. typedef somTP_SOMOA_change_id *somTD_SOMOA_change_id;
  139. typedef SOMDObject*   SOMLINK somTP_SOMOA_create_constant(SOMOA *somSelf, Environment *ev,
  140.         ReferenceData* id,
  141.         InterfaceDef* intf,
  142.         ImplementationDef* impl);
  143. typedef somTP_SOMOA_create_constant *somTD_SOMOA_create_constant;
  144. typedef SOMDObject*   SOMLINK somTP_SOMOA_create_SOM_ref(SOMOA *somSelf, Environment *ev,
  145.         SOMObject* somobj,
  146.         ImplementationDef* impl);
  147. typedef somTP_SOMOA_create_SOM_ref *somTD_SOMOA_create_SOM_ref;
  148. typedef SOMObject*   SOMLINK somTP_SOMOA_get_SOM_object(SOMOA *somSelf, Environment *ev,
  149.         SOMDObject* somref);
  150. typedef somTP_SOMOA_get_SOM_object *somTD_SOMOA_get_SOM_object;
  151. typedef void   SOMLINK somTP_SOMOA_activate_impl_failed(SOMOA *somSelf, Environment *ev,
  152.         ImplementationDef* impl,
  153.         ORBStatus rc);
  154. typedef somTP_SOMOA_activate_impl_failed *somTD_SOMOA_activate_impl_failed;
  155. typedef void   SOMLINK somTP_SOMOA_interrupt_server(SOMOA *somSelf, Environment *ev);
  156. typedef somTP_SOMOA_interrupt_server *somTD_SOMOA_interrupt_server;
  157.  
  158. /*
  159.  * -- Typedefs for Reintroduced Wrapper Methods
  160.  */
  161. typedef SOMDObject*   SOMLINK somTP_SOMOA_create(SOMOA *somSelf, Environment *ev,
  162.         ReferenceData* id,
  163.         InterfaceDef* intf,
  164.         ImplementationDef* impl);
  165. typedef somTP_SOMOA_create *somTD_SOMOA_create;
  166. typedef void   SOMLINK somTP_SOMOA_dispose(SOMOA *somSelf, Environment *ev,
  167.         SOMDObject* obj);
  168. typedef somTP_SOMOA_dispose *somTD_SOMOA_dispose;
  169. typedef ReferenceData   SOMLINK somTP_SOMOA_get_id(SOMOA *somSelf, Environment *ev,
  170.         SOMDObject* obj);
  171. typedef somTP_SOMOA_get_id *somTD_SOMOA_get_id;
  172. typedef Principal*   SOMLINK somTP_SOMOA_get_principal(SOMOA *somSelf, Environment *ev,
  173.         SOMDObject* obj,
  174.         Environment* req_ev);
  175. typedef somTP_SOMOA_get_principal *somTD_SOMOA_get_principal;
  176. typedef void   SOMLINK somTP_SOMOA_set_exception(SOMOA *somSelf, Environment *ev,
  177.         exception_type major,
  178.         string userid,
  179.         void* param);
  180. typedef somTP_SOMOA_set_exception *somTD_SOMOA_set_exception;
  181. typedef void   SOMLINK somTP_SOMOA_impl_is_ready(SOMOA *somSelf, Environment *ev,
  182.         ImplementationDef* impl);
  183. typedef somTP_SOMOA_impl_is_ready *somTD_SOMOA_impl_is_ready;
  184. typedef void   SOMLINK somTP_SOMOA_deactivate_impl(SOMOA *somSelf, Environment *ev,
  185.         ImplementationDef* impl);
  186. typedef somTP_SOMOA_deactivate_impl *somTD_SOMOA_deactivate_impl;
  187. typedef void   SOMLINK somTP_SOMOA_change_implementation(SOMOA *somSelf, Environment *ev,
  188.         SOMDObject* obj,
  189.         ImplementationDef* impl);
  190. typedef somTP_SOMOA_change_implementation *somTD_SOMOA_change_implementation;
  191. typedef void   SOMLINK somTP_SOMOA_obj_is_ready(SOMOA *somSelf, Environment *ev,
  192.         SOMDObject* obj,
  193.         ImplementationDef* impl);
  194. typedef somTP_SOMOA_obj_is_ready *somTD_SOMOA_obj_is_ready;
  195. typedef void   SOMLINK somTP_SOMOA_deactivate_obj(SOMOA *somSelf, Environment *ev,
  196.         SOMDObject* obj);
  197. typedef somTP_SOMOA_deactivate_obj *somTD_SOMOA_deactivate_obj;
  198. typedef void   SOMLINK somTP_SOMOA_somDefaultInit(SOMOA *somSelf,
  199.         somInitCtrl* ctrl);
  200. typedef somTP_SOMOA_somDefaultInit *somTD_SOMOA_somDefaultInit;
  201. typedef void   SOMLINK somTP_SOMOA_somDestruct(SOMOA *somSelf,
  202.         octet doFree,
  203.         somDestructCtrl* ctrl);
  204. typedef somTP_SOMOA_somDestruct *somTD_SOMOA_somDestruct;
  205. typedef void   SOMLINK somTP_SOMOA_somDefaultCopyInit(SOMOA *somSelf,
  206.         somInitCtrl* ctrl,
  207.         SOMObject* fromObj);
  208. typedef somTP_SOMOA_somDefaultCopyInit *somTD_SOMOA_somDefaultCopyInit;
  209. typedef SOMOA*   SOMLINK somTP_SOMOA_somDefaultAssign(SOMOA *somSelf,
  210.         somAssignCtrl* ctrl,
  211.         SOMObject* fromObj);
  212. typedef somTP_SOMOA_somDefaultAssign *somTD_SOMOA_somDefaultAssign;
  213. typedef void   SOMLINK somTP_SOMOA_somDefaultConstCopyInit(SOMOA *somSelf,
  214.         somInitCtrl* ctrl,
  215.         SOMObject* fromObj);
  216. typedef somTP_SOMOA_somDefaultConstCopyInit *somTD_SOMOA_somDefaultConstCopyInit;
  217. typedef void   SOMLINK somTP_SOMOA_somDefaultVCopyInit(SOMOA *somSelf,
  218.         somInitCtrl* ctrl,
  219.         SOMObject* fromObj);
  220. typedef somTP_SOMOA_somDefaultVCopyInit *somTD_SOMOA_somDefaultVCopyInit;
  221. typedef void   SOMLINK somTP_SOMOA_somDefaultConstVCopyInit(SOMOA *somSelf,
  222.         somInitCtrl* ctrl,
  223.         SOMObject* fromObj);
  224. typedef somTP_SOMOA_somDefaultConstVCopyInit *somTD_SOMOA_somDefaultConstVCopyInit;
  225. typedef SOMOA*   SOMLINK somTP_SOMOA_somDefaultConstAssign(SOMOA *somSelf,
  226.         somAssignCtrl* ctrl,
  227.         SOMObject* fromObj);
  228. typedef somTP_SOMOA_somDefaultConstAssign *somTD_SOMOA_somDefaultConstAssign;
  229. typedef SOMOA*   SOMLINK somTP_SOMOA_somDefaultVAssign(SOMOA *somSelf,
  230.         somAssignCtrl* ctrl,
  231.         SOMObject* fromObj);
  232. typedef somTP_SOMOA_somDefaultVAssign *somTD_SOMOA_somDefaultVAssign;
  233. typedef SOMOA*   SOMLINK somTP_SOMOA_somDefaultConstVAssign(SOMOA *somSelf,
  234.         somAssignCtrl* ctrl,
  235.         SOMObject* fromObj);
  236. typedef somTP_SOMOA_somDefaultConstVAssign *somTD_SOMOA_somDefaultConstVAssign;
  237. typedef void   SOMLINK somTP_SOMOA_somInit(SOMOA *somSelf);
  238. typedef somTP_SOMOA_somInit *somTD_SOMOA_somInit;
  239. typedef void   SOMLINK somTP_SOMOA_somFree(SOMOA *somSelf);
  240. typedef somTP_SOMOA_somFree *somTD_SOMOA_somFree;
  241. typedef void   SOMLINK somTP_SOMOA_somUninit(SOMOA *somSelf);
  242. typedef somTP_SOMOA_somUninit *somTD_SOMOA_somUninit;
  243. typedef SOMClass*   SOMLINK somTP_SOMOA_somGetClass(SOMOA *somSelf);
  244. typedef somTP_SOMOA_somGetClass *somTD_SOMOA_somGetClass;
  245. typedef string   SOMLINK somTP_SOMOA_somGetClassName(SOMOA *somSelf);
  246. typedef somTP_SOMOA_somGetClassName *somTD_SOMOA_somGetClassName;
  247. typedef long   SOMLINK somTP_SOMOA_somGetSize(SOMOA *somSelf);
  248. typedef somTP_SOMOA_somGetSize *somTD_SOMOA_somGetSize;
  249. typedef boolean   SOMLINK somTP_SOMOA_somIsA(SOMOA *somSelf,
  250.         SOMClass* aClassObj);
  251. typedef somTP_SOMOA_somIsA *somTD_SOMOA_somIsA;
  252. typedef boolean   SOMLINK somTP_SOMOA_somIsInstanceOf(SOMOA *somSelf,
  253.         SOMClass* aClassObj);
  254. typedef somTP_SOMOA_somIsInstanceOf *somTD_SOMOA_somIsInstanceOf;
  255. typedef boolean   SOMLINK somTP_SOMOA_somRespondsTo(SOMOA *somSelf,
  256.         somId mId);
  257. typedef somTP_SOMOA_somRespondsTo *somTD_SOMOA_somRespondsTo;
  258. typedef boolean   SOMLINK somTP_SOMOA_somDispatch(SOMOA *somSelf,
  259.         somToken* retValue,
  260.         somId methodId,
  261.         va_list ap);
  262. typedef somTP_SOMOA_somDispatch *somTD_SOMOA_somDispatch;
  263. typedef boolean   SOMLINK somTP_SOMOA_somClassDispatch(SOMOA *somSelf,
  264.         SOMClass* clsObj,
  265.         somToken* retValue,
  266.         somId methodId,
  267.         va_list ap);
  268. typedef somTP_SOMOA_somClassDispatch *somTD_SOMOA_somClassDispatch;
  269. typedef boolean   SOMLINK somTP_SOMOA_somCastObj(SOMOA *somSelf,
  270.         SOMClass* cls);
  271. typedef somTP_SOMOA_somCastObj *somTD_SOMOA_somCastObj;
  272. typedef boolean   SOMLINK somTP_SOMOA_somResetObj(SOMOA *somSelf);
  273. typedef somTP_SOMOA_somResetObj *somTD_SOMOA_somResetObj;
  274. typedef SOMObject*   SOMLINK somTP_SOMOA_somPrintSelf(SOMOA *somSelf);
  275. typedef somTP_SOMOA_somPrintSelf *somTD_SOMOA_somPrintSelf;
  276. typedef void   SOMLINK somTP_SOMOA_somDumpSelf(SOMOA *somSelf,
  277.         long level);
  278. typedef somTP_SOMOA_somDumpSelf *somTD_SOMOA_somDumpSelf;
  279. typedef void   SOMLINK somTP_SOMOA_somDumpSelfInt(SOMOA *somSelf,
  280.         long level);
  281. typedef somTP_SOMOA_somDumpSelfInt *somTD_SOMOA_somDumpSelfInt;
  282. }
  283.  
  284. #endif /* SOMOA_API */
  285.  
  286.  
  287. /*
  288.  * -- This emitter believes that method thunks are unavailable,
  289.  * -- so somResolve will be called.
  290.  */
  291. #undef somresolve_
  292. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  293.  
  294. /*
  295.  * -- The C++ Wrapper Class for SOMOA
  296.  */
  297. class SOMOA : public BOA
  298. {
  299. public:
  300.  
  301. // SOMOA::new creates the class object if necessary, and then uses somNewNoInit
  302. // to allocate memory and create the object. Initialization is in ctors.
  303. void *operator new(size_t)
  304. {
  305.    if (!_SOMOA) SOMOANewClass(SOMOA_MajorVersion,SOMOA_MinorVersion);
  306.    return (void*)
  307.       SOM_Resolve(_SOMOA,SOMClass,somNewNoInit)
  308.          ((SOMClass *)((void*)_SOMOA));
  309. }
  310.  
  311. // SOMOA::delete uses somDestruct.
  312. void operator delete(void * obj)
  313. {
  314.    if (obj && *(void**)obj) {
  315.       SOM_Resolve(obj,SOMObject,somDestruct)
  316.          ((SOMObject*)obj, 1, 0);
  317.    }
  318. }
  319.  
  320. SOMOA()
  321. {
  322.    if (*(void**)this != 
  323.        ((somParentMtabStructPtr)
  324.         (SOMOACClassData.parentMtab))->mtab)
  325.       return;
  326.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  327. }
  328.  
  329. SOMOA(SOMOA* fromObj)
  330. {
  331.    if (*(void**)this != 
  332.        ((somParentMtabStructPtr)
  333.         (SOMOACClassData.parentMtab))->mtab)
  334.       return;
  335.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  336. }
  337.  
  338. SOMOA(const SOMOA* fromObj)
  339. {
  340.    if (*(void**)this != 
  341.        ((somParentMtabStructPtr)
  342.         (SOMOACClassData.parentMtab))->mtab)
  343.       return;
  344.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  345. }
  346.  
  347.  
  348. /* method: execute_next_request */
  349. ORBStatus   execute_next_request(Environment *ev,
  350.         Flags waitFlag)
  351. {
  352.    return SOM_ResolveD(this,SOMOA,SOMOA,execute_next_request)
  353.     (this, ev,waitFlag);
  354. }
  355.  
  356.  
  357. /* method: execute_request_loop */
  358. ORBStatus   execute_request_loop(Environment *ev,
  359.         Flags waitFlag)
  360. {
  361.    return SOM_ResolveD(this,SOMOA,SOMOA,execute_request_loop)
  362.     (this, ev,waitFlag);
  363. }
  364.  
  365.  
  366. /* method: change_id */
  367. void   change_id(Environment *ev,
  368.         SOMDObject* objref,
  369.         ReferenceData* id)
  370. {
  371.    SOM_ResolveD(this,SOMOA,SOMOA,change_id)
  372.     (this, ev,objref,id);
  373. }
  374.  
  375.  
  376. /* method: create_constant */
  377. SOMDObject*   create_constant(Environment *ev,
  378.         ReferenceData* id,
  379.         InterfaceDef* intf,
  380.         ImplementationDef* impl)
  381. {
  382.    return SOM_ResolveD(this,SOMOA,SOMOA,create_constant)
  383.     (this, ev,id,intf,impl);
  384. }
  385.  
  386.  
  387. /* method: create_SOM_ref */
  388. SOMDObject*   create_SOM_ref(Environment *ev,
  389.         SOMObject* somobj,
  390.         ImplementationDef* impl)
  391. {
  392.    return SOM_ResolveD(this,SOMOA,SOMOA,create_SOM_ref)
  393.     (this, ev,somobj,impl);
  394. }
  395.  
  396.  
  397. /* method: get_SOM_object */
  398. SOMObject*   get_SOM_object(Environment *ev,
  399.         SOMDObject* somref)
  400. {
  401.    return SOM_ResolveD(this,SOMOA,SOMOA,get_SOM_object)
  402.     (this, ev,somref);
  403. }
  404.  
  405.  
  406. /* method: activate_impl_failed */
  407. void   activate_impl_failed(Environment *ev,
  408.         ImplementationDef* impl,
  409.         ORBStatus rc)
  410. {
  411.    SOM_ResolveD(this,SOMOA,SOMOA,activate_impl_failed)
  412.     (this, ev,impl,rc);
  413. }
  414.  
  415.  
  416. /* method: interrupt_server */
  417. void   interrupt_server(Environment *ev)
  418. {
  419.    SOM_ResolveD(this,SOMOA,SOMOA,interrupt_server)
  420.     (this, ev);
  421. }
  422.  
  423.  
  424. /*
  425.  * Reintroduce inherited methods
  426.  */
  427.  
  428. /* method: create */
  429. SOMDObject*   create(Environment *ev,
  430.         ReferenceData* id,
  431.         InterfaceDef* intf,
  432.         ImplementationDef* impl)
  433. {
  434.    return SOM_ResolveD(this,SOMOA,BOA,create)
  435.     (this, ev,id,intf,impl);
  436. }
  437.  
  438.  
  439. /* method: dispose */
  440. void   dispose(Environment *ev,
  441.         SOMDObject* obj)
  442. {
  443.    SOM_ResolveD(this,SOMOA,BOA,dispose)
  444.     (this, ev,obj);
  445. }
  446.  
  447.  
  448. /* method: get_id */
  449. ReferenceData   get_id(Environment *ev,
  450.         SOMDObject* obj)
  451. {
  452.    return SOM_ResolveD(this,SOMOA,BOA,get_id)
  453.     (this, ev,obj);
  454. }
  455.  
  456.  
  457. /* method: get_principal */
  458. Principal*   get_principal(Environment *ev,
  459.         SOMDObject* obj,
  460.         Environment* req_ev)
  461. {
  462.    return SOM_ResolveD(this,SOMOA,BOA,get_principal)
  463.     (this, ev,obj,req_ev);
  464. }
  465.  
  466.  
  467. /* method: set_exception */
  468. void   set_exception(Environment *ev,
  469.         exception_type major,
  470.         string userid,
  471.         void* param)
  472. {
  473.    SOM_ResolveD(this,SOMOA,BOA,set_exception)
  474.     (this, ev,major,userid,param);
  475. }
  476.  
  477.  
  478. /* method: impl_is_ready */
  479. void   impl_is_ready(Environment *ev,
  480.         ImplementationDef* impl)
  481. {
  482.    SOM_ResolveD(this,SOMOA,BOA,impl_is_ready)
  483.     (this, ev,impl);
  484. }
  485.  
  486.  
  487. /* method: deactivate_impl */
  488. void   deactivate_impl(Environment *ev,
  489.         ImplementationDef* impl)
  490. {
  491.    SOM_ResolveD(this,SOMOA,BOA,deactivate_impl)
  492.     (this, ev,impl);
  493. }
  494.  
  495.  
  496. /* method: change_implementation */
  497. void   change_implementation(Environment *ev,
  498.         SOMDObject* obj,
  499.         ImplementationDef* impl)
  500. {
  501.    SOM_ResolveD(this,SOMOA,BOA,change_implementation)
  502.     (this, ev,obj,impl);
  503. }
  504.  
  505.  
  506. /* method: obj_is_ready */
  507. void   obj_is_ready(Environment *ev,
  508.         SOMDObject* obj,
  509.         ImplementationDef* impl)
  510. {
  511.    SOM_ResolveD(this,SOMOA,BOA,obj_is_ready)
  512.     (this, ev,obj,impl);
  513. }
  514.  
  515.  
  516. /* method: deactivate_obj */
  517. void   deactivate_obj(Environment *ev,
  518.         SOMDObject* obj)
  519. {
  520.    SOM_ResolveD(this,SOMOA,BOA,deactivate_obj)
  521.     (this, ev,obj);
  522. }
  523.  
  524.  
  525. /* initializer method: somDefaultInit */
  526. void   somDefaultInit(somInitCtrl* ctrl)
  527. {
  528.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultInit)
  529.     (this,ctrl);
  530. }
  531.  
  532.  
  533. /* method: somDestruct */
  534. void   somDestruct(octet doFree,
  535.         somDestructCtrl* ctrl)
  536. {
  537.    SOM_ResolveD(this,SOMOA,SOMObject,somDestruct)
  538.     (this,doFree,ctrl);
  539. }
  540.  
  541.  
  542. /* initializer method: somDefaultCopyInit */
  543. void   somDefaultCopyInit(somInitCtrl* ctrl,
  544.         SOMObject* fromObj)
  545. {
  546.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultCopyInit)
  547.     (this,ctrl,fromObj);
  548. }
  549.  
  550.  
  551. /* method: somDefaultAssign */
  552. SOMOA*  somDefaultAssign(somAssignCtrl* ctrl,
  553.         SOMObject* fromObj)
  554. {
  555.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultAssign)
  556.     (this,ctrl,fromObj);
  557. }
  558.  
  559.  
  560. /* initializer method: somDefaultConstCopyInit */
  561. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  562.         SOMObject* fromObj)
  563. {
  564.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstCopyInit)
  565.     (this,ctrl,fromObj);
  566. }
  567.  
  568.  
  569. /* initializer method: somDefaultVCopyInit */
  570. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  571.         SOMObject* fromObj)
  572. {
  573.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultVCopyInit)
  574.     (this,ctrl,fromObj);
  575. }
  576.  
  577.  
  578. /* initializer method: somDefaultConstVCopyInit */
  579. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  580.         SOMObject* fromObj)
  581. {
  582.    SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstVCopyInit)
  583.     (this,ctrl,fromObj);
  584. }
  585.  
  586.  
  587. /* method: somDefaultConstAssign */
  588. SOMOA*  somDefaultConstAssign(somAssignCtrl* ctrl,
  589.         SOMObject* fromObj)
  590. {
  591.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstAssign)
  592.     (this,ctrl,fromObj);
  593. }
  594.  
  595.  
  596. /* method: somDefaultVAssign */
  597. SOMOA*  somDefaultVAssign(somAssignCtrl* ctrl,
  598.         SOMObject* fromObj)
  599. {
  600.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultVAssign)
  601.     (this,ctrl,fromObj);
  602. }
  603.  
  604.  
  605. /* method: somDefaultConstVAssign */
  606. SOMOA*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  607.         SOMObject* fromObj)
  608. {
  609.    return SOM_ResolveD(this,SOMOA,SOMObject,somDefaultConstVAssign)
  610.     (this,ctrl,fromObj);
  611. }
  612.  
  613.  
  614. /* method: somInit */
  615. void   somInit()
  616. {
  617.    SOM_ResolveD(this,SOMOA,SOMObject,somInit)
  618.     (this);
  619. }
  620.  
  621.  
  622. /* method: somFree */
  623. void   somFree()
  624. {
  625.    SOM_ResolveD(this,SOMOA,SOMObject,somFree)
  626.     (this);
  627. }
  628.  
  629.  
  630. /* method: somUninit */
  631. void   somUninit()
  632. {
  633.    SOM_ResolveD(this,SOMOA,SOMObject,somUninit)
  634.     (this);
  635. }
  636.  
  637.  
  638. /* method: somGetClass */
  639. SOMClass*   somGetClass()
  640. {
  641.    return SOM_ResolveD(this,SOMOA,SOMObject,somGetClass)
  642.     (this);
  643. }
  644.  
  645.  
  646. /* method: somGetClassName */
  647. string   somGetClassName()
  648. {
  649.    return SOM_ResolveD(this,SOMOA,SOMObject,somGetClassName)
  650.     (this);
  651. }
  652.  
  653.  
  654. /* method: somGetSize */
  655. long   somGetSize()
  656. {
  657.    return SOM_ResolveD(this,SOMOA,SOMObject,somGetSize)
  658.     (this);
  659. }
  660.  
  661.  
  662. /* method: somIsA */
  663. boolean   somIsA(SOMClass* aClassObj)
  664. {
  665.    return SOM_ResolveD(this,SOMOA,SOMObject,somIsA)
  666.     (this,aClassObj);
  667. }
  668.  
  669.  
  670. /* method: somIsInstanceOf */
  671. boolean   somIsInstanceOf(SOMClass* aClassObj)
  672. {
  673.    return SOM_ResolveD(this,SOMOA,SOMObject,somIsInstanceOf)
  674.     (this,aClassObj);
  675. }
  676.  
  677.  
  678. /* method: somRespondsTo */
  679. boolean   somRespondsTo(somId mId)
  680. {
  681.    return SOM_ResolveD(this,SOMOA,SOMObject,somRespondsTo)
  682.     (this,mId);
  683. }
  684.  
  685.  
  686. /* va_list method: somDispatch */
  687. /* the va_list invocation form */
  688. boolean   SOMOA_somDispatch(somToken* retValue,
  689.         somId methodId,
  690.         va_list ap)
  691. {
  692. return SOM_ResolveD(this,SOMOA,SOMObject,somDispatch)
  693.     (this,retValue,methodId,ap);
  694. }
  695.  
  696. /* the varargs invocation form */
  697. boolean   somDispatch(somToken* retValue,
  698.         somId methodId,
  699.         ...)
  700. {
  701.    va_list ap;
  702.    va_start(ap, methodId);
  703.    boolean __somResult = 
  704.       SOM_ResolveD(this,SOMOA,SOMObject,somDispatch)
  705.     (this,retValue,methodId,ap);
  706.    va_end(ap);
  707.    return __somResult;
  708. }
  709.  
  710.  
  711. /* va_list method: somClassDispatch */
  712. /* the va_list invocation form */
  713. boolean   SOMOA_somClassDispatch(SOMClass* clsObj,
  714.         somToken* retValue,
  715.         somId methodId,
  716.         va_list ap)
  717. {
  718. return SOM_ResolveD(this,SOMOA,SOMObject,somClassDispatch)
  719.     (this,clsObj,retValue,methodId,ap);
  720. }
  721.  
  722. /* the varargs invocation form */
  723. boolean   somClassDispatch(SOMClass* clsObj,
  724.         somToken* retValue,
  725.         somId methodId,
  726.         ...)
  727. {
  728.    va_list ap;
  729.    va_start(ap, methodId);
  730.    boolean __somResult = 
  731.       SOM_ResolveD(this,SOMOA,SOMObject,somClassDispatch)
  732.     (this,clsObj,retValue,methodId,ap);
  733.    va_end(ap);
  734.    return __somResult;
  735. }
  736.  
  737.  
  738. /* method: somCastObj */
  739. boolean   somCastObj(SOMClass* cls)
  740. {
  741.    return SOM_ResolveD(this,SOMOA,SOMObject,somCastObj)
  742.     (this,cls);
  743. }
  744.  
  745.  
  746. /* method: somResetObj */
  747. boolean   somResetObj()
  748. {
  749.    return SOM_ResolveD(this,SOMOA,SOMObject,somResetObj)
  750.     (this);
  751. }
  752.  
  753.  
  754. /* method: somPrintSelf */
  755. SOMObject*   somPrintSelf()
  756. {
  757.    return SOM_ResolveD(this,SOMOA,SOMObject,somPrintSelf)
  758.     (this);
  759. }
  760.  
  761.  
  762. /* method: somDumpSelf */
  763. void   somDumpSelf(long level)
  764. {
  765.    SOM_ResolveD(this,SOMOA,SOMObject,somDumpSelf)
  766.     (this,level);
  767. }
  768.  
  769.  
  770. /* method: somDumpSelfInt */
  771. void   somDumpSelfInt(long level)
  772. {
  773.    SOM_ResolveD(this,SOMOA,SOMObject,somDumpSelfInt)
  774.     (this,level);
  775. }
  776.  
  777.  
  778.  
  779. };   /* SOMOA */
  780.  
  781.  
  782.  
  783. #endif       /* SOM_SOMOA_xh */
  784.