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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\somcls.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: Development
  7.  *     SOM Emitter emitxh.dll: Development
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *    COMPONENT_NAME: somk
  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.  *   SOMObject: System Object Model root class
  24.  */
  25.  
  26.  
  27. #ifndef SOM_SOMClass_xh
  28. #define SOM_SOMClass_xh
  29.  
  30. class SOMClass;
  31.  
  32. /*
  33.  * 
  34.  *   This is the SOM metaclass.  That is, the instances of this class
  35.  *   are class objects.  When the SOM environment is created an instance
  36.  *   of SOMClass is created and a pointer to it is placed in the external
  37.  *   data location (SOMClassClassData.classObject). Bindings provide the
  38.  *   macro _SOMClass for this expression. _SOMClass is unique in that it
  39.  *   is its own class object. I.e., _SOMClass == _somGetClass(_SOMClass).
  40.  *   SOMClass can be subclassed just like any SOM class. The subclasses
  41.  *   of SOMClass are new metaclasses and can generate class objects with
  42.  *   different implementations than those produced by _SOMClass.
  43.  * 
  44.  *   An important rule for metaclass programming is that no methods
  45.  *   introduced by SOMClass should ever be overridden. While this
  46.  *   limits the utility of metaclass programming in SOM, it guarantees
  47.  *   that SOM will operate correctly. Special class frameworks may be
  48.  *   available from IBM to alleviate this restriction.
  49.  * 
  50.  */
  51.  
  52. #define SOMClass_MajorVersion 1
  53. #define SOMClass_MinorVersion 4
  54.  
  55. /* C++ SOM defs */
  56. #include <som.xh>
  57.  
  58. /* C++ parent defs */
  59. #ifndef SOM_SOMObject_xh
  60. #include <somobj.xh>
  61. #endif
  62.  
  63. #ifndef SOMClass_API
  64. #define SOMClass_API
  65. /*
  66.  * -- The Class API
  67.  */
  68.  
  69. /*
  70.  * Start of user-defined types:
  71.  */
  72. class SOMClass;
  73. class SOMObject;
  74. #ifndef _IDL_SEQUENCE_somToken_defined
  75. #define _IDL_SEQUENCE_somToken_defined
  76. typedef struct {
  77.     unsigned long _maximum;
  78.     unsigned long _length;
  79.     somToken *_buffer;
  80. } _IDL_SEQUENCE_somToken;
  81. #endif /* _IDL_SEQUENCE_somToken_defined */ 
  82. typedef
  83. _IDL_SEQUENCE_somToken SOMClass_somTokenSequence;
  84.  
  85. /*
  86.  *  a (generic) sequence of somTokens
  87.  */
  88. #ifndef _IDL_SEQUENCE_SOMClass_defined
  89. #define _IDL_SEQUENCE_SOMClass_defined
  90. typedef struct {
  91.     unsigned long _maximum;
  92.     unsigned long _length;
  93.     SOMClass **_buffer;
  94. } _IDL_SEQUENCE_SOMClass;
  95. #endif /* _IDL_SEQUENCE_SOMClass_defined */ 
  96. typedef
  97. _IDL_SEQUENCE_SOMClass SOMClass_SOMClassSequence;
  98.  
  99. /*
  100.  *  a sequence of classes
  101.  */
  102. typedef
  103. struct SOMClass_somOffsetInfo {
  104. SOMClass* cls;
  105. long  offset;
  106. } SOMClass_somOffsetInfo;
  107.  
  108. /*
  109.  *  a structure to describe a class-related offset
  110.  */
  111. struct SOMClass_somOffsetInfo;
  112. #ifndef _IDL_SEQUENCE_SOMClass_somOffsetInfo_defined
  113. #define _IDL_SEQUENCE_SOMClass_somOffsetInfo_defined
  114. typedef struct {
  115.     unsigned long _maximum;
  116.     unsigned long _length;
  117.     struct SOMClass_somOffsetInfo *_buffer;
  118. } _IDL_SEQUENCE_SOMClass_somOffsetInfo;
  119. #endif /* _IDL_SEQUENCE_SOMClass_somOffsetInfo_defined */ 
  120. typedef
  121. _IDL_SEQUENCE_SOMClass_somOffsetInfo SOMClass_somOffsets;
  122.  
  123. /*
  124.  *  a sequence of class-related offsets
  125.  */
  126. #ifndef _IDL_SEQUENCE_somId_defined
  127. #define _IDL_SEQUENCE_somId_defined
  128. typedef struct {
  129.     unsigned long _maximum;
  130.     unsigned long _length;
  131.     somId *_buffer;
  132. } _IDL_SEQUENCE_somId;
  133. #endif /* _IDL_SEQUENCE_somId_defined */ 
  134. typedef
  135. _IDL_SEQUENCE_somId SOMClass_somIdSequence;
  136.  
  137. /*
  138.  *  a sequence of somIds
  139.  */
  140.  
  141. #ifndef SOM_DONT_USE_SHORT_NAMES
  142.  
  143. #ifndef SOM_DONT_USE_SHORT_NAMES
  144. #ifndef SOMTGD_somTokenSequence
  145.     #ifdef somTokenSequence
  146.         #undef somTokenSequence
  147.         #define SOMTGD_somTokenSequence 1
  148.     #else
  149.         #define somTokenSequence SOMClass_somTokenSequence
  150.     #endif /* somTokenSequence */
  151. #endif /* SOMTGD_somTokenSequence */
  152. #endif /* SOM_DONT_USE_SHORT_NAMES */
  153.  
  154. #ifndef SOM_DONT_USE_SHORT_NAMES
  155. #ifndef SOMTGD_SOMClassSequence
  156.     #ifdef SOMClassSequence
  157.         #undef SOMClassSequence
  158.         #define SOMTGD_SOMClassSequence 1
  159.     #else
  160.         #define SOMClassSequence SOMClass_SOMClassSequence
  161.     #endif /* SOMClassSequence */
  162. #endif /* SOMTGD_SOMClassSequence */
  163. #endif /* SOM_DONT_USE_SHORT_NAMES */
  164. #ifndef SOMTGD_somOffsetInfo
  165.     #ifdef somOffsetInfo
  166.         #undef somOffsetInfo
  167.         #define SOMTGD_somOffsetInfo 1
  168.     #else
  169.         #define somOffsetInfo SOMClass_somOffsetInfo
  170.     #endif /* somOffsetInfo */
  171. #endif /* SOMTGD_somOffsetInfo */
  172. #ifndef SOMTGD__IDL_SEQUENCE_somOffsetInfo
  173.     #ifdef _IDL_SEQUENCE_somOffsetInfo
  174.         #undef _IDL_SEQUENCE_somOffsetInfo
  175.         #define SOMTGD__IDL_SEQUENCE_somOffsetInfo 1
  176.     #else
  177.         #define _IDL_SEQUENCE_somOffsetInfo _IDL_SEQUENCE_SOMClass_somOffsetInfo
  178.     #endif /* _IDL_SEQUENCE_somOffsetInfo */
  179. #endif /* SOMTGD__IDL_SEQUENCE_somOffsetInfo */
  180.  
  181. #ifndef SOM_DONT_USE_SHORT_NAMES
  182. #ifndef SOMTGD_somOffsets
  183.     #ifdef somOffsets
  184.         #undef somOffsets
  185.         #define SOMTGD_somOffsets 1
  186.     #else
  187.         #define somOffsets SOMClass_somOffsets
  188.     #endif /* somOffsets */
  189. #endif /* SOMTGD_somOffsets */
  190. #endif /* SOM_DONT_USE_SHORT_NAMES */
  191.  
  192. #ifndef SOM_DONT_USE_SHORT_NAMES
  193. #ifndef SOMTGD_somIdSequence
  194.     #ifdef somIdSequence
  195.         #undef somIdSequence
  196.         #define SOMTGD_somIdSequence 1
  197.     #else
  198.         #define somIdSequence SOMClass_somIdSequence
  199.     #endif /* somIdSequence */
  200. #endif /* SOMTGD_somIdSequence */
  201. #endif /* SOM_DONT_USE_SHORT_NAMES */
  202. #endif /* SOM_DONT_USE_SHORT_NAMES */
  203.  
  204. /*
  205.  * End of user-defined types.
  206.  */
  207.  
  208. /* A procedure to create the SOMClass Class */
  209. SOMEXTERN
  210. #if (defined(SOM_Module_somcls_Source) || defined(SOMClass_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMClass))
  211. WIN32_DLLEXPORT
  212. #else
  213. WIN32_DLLIMPORT
  214. #endif
  215. SOMClass * SOMLINK SOMClassNewClass(
  216.         integer4,
  217.         integer4 );
  218.  
  219. /* The API to the SOMClass class object, and the methods it introduces. */
  220. SOMEXTERN struct SOMClassClassDataStructure {
  221.     SOMClass *classObject;
  222.     somMToken somNew;
  223.     somMToken somRenew;
  224.     somMToken somInitClass;
  225.     somMToken somClassReady;
  226.     somMToken somGetName;
  227.     somMToken somGetParent;
  228.     somMToken somDescendedFrom;
  229.     somMToken somCheckVersion;
  230.     somMToken somFindMethod;
  231.     somMToken somFindMethodOk;
  232.     somMToken somSupportsMethod;
  233.     somMToken somGetNumMethods;
  234.     somMToken somGetInstanceSize;
  235.     somMToken somGetInstanceOffset;
  236.     somMToken somGetInstancePartSize;
  237.     somMToken somGetMethodIndex;
  238.     somMToken somGetNumStaticMethods;
  239.     somMToken somGetPClsMtab;
  240.     somMToken somGetClassMtab;
  241.     somMToken somAddStaticMethod;
  242.     somMToken somOverrideSMethod;
  243.     somMToken somAddDynamicMethod;
  244.     somMToken somcPrivate0;
  245.     somMToken somGetApplyStub;
  246.     somMToken somFindSMethod;
  247.     somMToken somFindSMethodOk;
  248.     somMToken somGetMethodDescriptor;
  249.     somMToken somGetNthMethodInfo;
  250.     somMToken somSetClassData;
  251.     somMToken somGetClassData;
  252.     somMToken somNewNoInit;
  253.     somMToken somRenewNoInit;
  254.     somMToken somGetInstanceToken;
  255.     somMToken somGetMemberToken;
  256.     somMToken somSetMethodDescriptor;
  257.     somMToken somGetMethodData;
  258.     somMToken somOverrideMtab;
  259.     somMToken somGetMethodToken;
  260.     somMToken somGetParents;
  261.     somMToken somGetPClsMtabs;
  262.     somMToken somInitMIClass;
  263.     somMToken somGetVersionNumbers;
  264.     somMToken somLookupMethod;
  265.     somMToken _get_somInstanceDataOffsets;
  266.     somMToken somRenewNoZero;
  267.     somMToken somRenewNoInitNoZero;
  268.     somMToken somAllocate;
  269.     somMToken somDeallocate;
  270.     somMToken somGetRdStub;
  271.     somMToken somGetNthMethodData;
  272.     somMToken somcPrivate1;
  273.     somMToken somcPrivate2;
  274.     somMToken _get_somDirectInitClasses;
  275.     somMToken _set_somDirectInitClasses;
  276.     somMToken somGetInstanceInitMask;
  277.     somMToken somGetInstanceDestructionMask;
  278.     somMToken somcPrivate3;
  279.     somMToken somcPrivate4;
  280.     somMToken somcPrivate5;
  281.     somMToken somcPrivate6;
  282.     somMToken somcPrivate7;
  283.     somMToken somDefinedMethod;
  284.     somMToken somcPrivate8;
  285.     somMToken somcPrivate9;
  286.     somMToken somcPrivate10;
  287.     somMToken somcPrivate11;
  288.     somMToken somcPrivate12;
  289.     somMToken somcPrivate13;
  290.     somMToken somcPrivate14;
  291.     somMToken somcPrivate15;
  292.     somMToken _get_somDataAlignment;
  293.     somMToken somGetInstanceAssignmentMask;
  294.     somMToken somcPrivate16;
  295.     somMToken somcPrivate17;
  296.     somMToken _get_somClassAllocate;
  297.     somMToken _get_somClassDeallocate;
  298. }
  299. #if !(defined(SOM_Module_somcls_Source) || defined(SOMClass_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMClass))
  300. WIN32_DLLIMPORT
  301. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  302. WIN32_DLLEXPORT
  303. #endif
  304. SOMDLINK SOMClassClassData;
  305. #define _SOMClass SOMClassClassData.classObject
  306.  
  307. /* The API to parentMtabs for SOMClass, and the instance data it introduces. */
  308. SOMEXTERN struct SOMClassCClassDataStructure {
  309.     somMethodTabs parentMtab;
  310.     somDToken              instanceDataToken;
  311. }
  312. #if !(defined(SOM_Module_somcls_Source) || defined(SOMClass_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMClass))
  313. WIN32_DLLIMPORT
  314. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  315. WIN32_DLLEXPORT
  316. #endif
  317. SOMDLINK SOMClassCClassData;
  318.  
  319. /*
  320.  * -- Typedefs for SOMClass Method Procedures
  321.  */
  322. extern "C" {
  323. typedef long   SOMLINK somTP_SOMClass__get_somDataAlignment(SOMClass *somSelf);
  324. typedef somTP_SOMClass__get_somDataAlignment *somTD_SOMClass__get_somDataAlignment;
  325. typedef SOMClass_somOffsets   SOMLINK somTP_SOMClass__get_somInstanceDataOffsets(SOMClass *somSelf);
  326. typedef somTP_SOMClass__get_somInstanceDataOffsets *somTD_SOMClass__get_somInstanceDataOffsets;
  327. typedef SOMClass_SOMClassSequence   SOMLINK somTP_SOMClass__get_somDirectInitClasses(SOMClass *somSelf);
  328. typedef somTP_SOMClass__get_somDirectInitClasses *somTD_SOMClass__get_somDirectInitClasses;
  329. typedef void   SOMLINK somTP_SOMClass__set_somDirectInitClasses(SOMClass *somSelf,
  330.         SOMClass_SOMClassSequence* somDirectInitClasses);
  331. typedef somTP_SOMClass__set_somDirectInitClasses *somTD_SOMClass__set_somDirectInitClasses;
  332. typedef SOMObject*   SOMLINK somTP_SOMClass_somNew(SOMClass *somSelf);
  333. typedef somTP_SOMClass_somNew *somTD_SOMClass_somNew;
  334. typedef SOMObject*   SOMLINK somTP_SOMClass_somNewNoInit(SOMClass *somSelf);
  335. typedef somTP_SOMClass_somNewNoInit *somTD_SOMClass_somNewNoInit;
  336. typedef SOMObject*   SOMLINK somTP_SOMClass_somRenew(SOMClass *somSelf,
  337.         void* obj);
  338. typedef somTP_SOMClass_somRenew *somTD_SOMClass_somRenew;
  339. typedef SOMObject*   SOMLINK somTP_SOMClass_somRenewNoInit(SOMClass *somSelf,
  340.         void* obj);
  341. typedef somTP_SOMClass_somRenewNoInit *somTD_SOMClass_somRenewNoInit;
  342. typedef SOMObject*   SOMLINK somTP_SOMClass_somRenewNoZero(SOMClass *somSelf,
  343.         void* obj);
  344. typedef somTP_SOMClass_somRenewNoZero *somTD_SOMClass_somRenewNoZero;
  345. typedef SOMObject*   SOMLINK somTP_SOMClass_somRenewNoInitNoZero(SOMClass *somSelf,
  346.         void* obj);
  347. typedef somTP_SOMClass_somRenewNoInitNoZero *somTD_SOMClass_somRenewNoInitNoZero;
  348. typedef string   SOMLINK somTP_SOMClass_somAllocate(SOMClass *somSelf,
  349.         long size);
  350. typedef somTP_SOMClass_somAllocate *somTD_SOMClass_somAllocate;
  351. typedef void   SOMLINK somTP_SOMClass_somDeallocate(SOMClass *somSelf,
  352.         string memptr);
  353. typedef somTP_SOMClass_somDeallocate *somTD_SOMClass_somDeallocate;
  354. typedef somMethodProc*   SOMLINK somTP_SOMClass__get_somClassAllocate(SOMClass *somSelf);
  355. typedef somTP_SOMClass__get_somClassAllocate *somTD_SOMClass__get_somClassAllocate;
  356. typedef somMethodProc*   SOMLINK somTP_SOMClass__get_somClassDeallocate(SOMClass *somSelf);
  357. typedef somTP_SOMClass__get_somClassDeallocate *somTD_SOMClass__get_somClassDeallocate;
  358. typedef somBooleanVector   SOMLINK somTP_SOMClass_somGetInstanceInitMask(SOMClass *somSelf,
  359.         somInitCtrl* ctrl);
  360. typedef somTP_SOMClass_somGetInstanceInitMask *somTD_SOMClass_somGetInstanceInitMask;
  361. typedef somBooleanVector   SOMLINK somTP_SOMClass_somGetInstanceDestructionMask(SOMClass *somSelf,
  362.         somDestructCtrl* ctrl);
  363. typedef somTP_SOMClass_somGetInstanceDestructionMask *somTD_SOMClass_somGetInstanceDestructionMask;
  364. typedef somBooleanVector   SOMLINK somTP_SOMClass_somGetInstanceAssignmentMask(SOMClass *somSelf,
  365.         somAssignCtrl* ctrl);
  366. typedef somTP_SOMClass_somGetInstanceAssignmentMask *somTD_SOMClass_somGetInstanceAssignmentMask;
  367. typedef void   SOMLINK somTP_SOMClass_somInitClass(SOMClass *somSelf,
  368.         string className,
  369.         SOMClass* parentClass,
  370.         long dataSize,
  371.         long maxStaticMethods,
  372.         long majorVersion,
  373.         long minorVersion);
  374. typedef somTP_SOMClass_somInitClass *somTD_SOMClass_somInitClass;
  375. typedef void   SOMLINK somTP_SOMClass_somInitMIClass(SOMClass *somSelf,
  376.         long inherit_vars,
  377.         string className,
  378.         SOMClass_SOMClassSequence* parentClasses,
  379.         long dataSize,
  380.         long dataAlignment,
  381.         long maxStaticMethods,
  382.         long majorVersion,
  383.         long minorVersion);
  384. typedef somTP_SOMClass_somInitMIClass *somTD_SOMClass_somInitMIClass;
  385. typedef somMToken   SOMLINK somTP_SOMClass_somAddStaticMethod(SOMClass *somSelf,
  386.         somId methodId,
  387.         somId methodDescriptor,
  388.         somMethodPtr method,
  389.         somMethodPtr redispatchStub,
  390.         somMethodPtr applyStub);
  391. typedef somTP_SOMClass_somAddStaticMethod *somTD_SOMClass_somAddStaticMethod;
  392. typedef void   SOMLINK somTP_SOMClass_somAddDynamicMethod(SOMClass *somSelf,
  393.         somId methodId,
  394.         somId methodDescriptor,
  395.         somMethodPtr method,
  396.         somMethodPtr applyStub);
  397. typedef somTP_SOMClass_somAddDynamicMethod *somTD_SOMClass_somAddDynamicMethod;
  398. typedef void   SOMLINK somTP_SOMClass_somOverrideSMethod(SOMClass *somSelf,
  399.         somId methodId,
  400.         somMethodPtr method);
  401. typedef somTP_SOMClass_somOverrideSMethod *somTD_SOMClass_somOverrideSMethod;
  402. typedef void   SOMLINK somTP_SOMClass_somClassReady(SOMClass *somSelf);
  403. typedef somTP_SOMClass_somClassReady *somTD_SOMClass_somClassReady;
  404. typedef somClassDataStructure*   SOMLINK somTP_SOMClass_somGetClassData(SOMClass *somSelf);
  405. typedef somTP_SOMClass_somGetClassData *somTD_SOMClass_somGetClassData;
  406. typedef void   SOMLINK somTP_SOMClass_somSetClassData(SOMClass *somSelf,
  407.         somClassDataStructure* cds);
  408. typedef somTP_SOMClass_somSetClassData *somTD_SOMClass_somSetClassData;
  409. typedef somMethodTab*   SOMLINK somTP_SOMClass_somGetClassMtab(SOMClass *somSelf);
  410. typedef somTP_SOMClass_somGetClassMtab *somTD_SOMClass_somGetClassMtab;
  411. typedef long   SOMLINK somTP_SOMClass_somGetInstanceOffset(SOMClass *somSelf);
  412. typedef somTP_SOMClass_somGetInstanceOffset *somTD_SOMClass_somGetInstanceOffset;
  413. typedef long   SOMLINK somTP_SOMClass_somGetInstancePartSize(SOMClass *somSelf);
  414. typedef somTP_SOMClass_somGetInstancePartSize *somTD_SOMClass_somGetInstancePartSize;
  415. typedef long   SOMLINK somTP_SOMClass_somGetInstanceSize(SOMClass *somSelf);
  416. typedef somTP_SOMClass_somGetInstanceSize *somTD_SOMClass_somGetInstanceSize;
  417. typedef somDToken   SOMLINK somTP_SOMClass_somGetInstanceToken(SOMClass *somSelf);
  418. typedef somTP_SOMClass_somGetInstanceToken *somTD_SOMClass_somGetInstanceToken;
  419. typedef somDToken   SOMLINK somTP_SOMClass_somGetMemberToken(SOMClass *somSelf,
  420.         long memberOffset,
  421.         somDToken instanceToken);
  422. typedef somTP_SOMClass_somGetMemberToken *somTD_SOMClass_somGetMemberToken;
  423. typedef boolean   SOMLINK somTP_SOMClass_somGetMethodData(SOMClass *somSelf,
  424.         somId methodId,
  425.         somMethodData* md);
  426. typedef somTP_SOMClass_somGetMethodData *somTD_SOMClass_somGetMethodData;
  427. typedef somMethodProc*   SOMLINK somTP_SOMClass_somGetRdStub(SOMClass *somSelf,
  428.         somId methodId);
  429. typedef somTP_SOMClass_somGetRdStub *somTD_SOMClass_somGetRdStub;
  430. typedef somId   SOMLINK somTP_SOMClass_somGetMethodDescriptor(SOMClass *somSelf,
  431.         somId methodId);
  432. typedef somTP_SOMClass_somGetMethodDescriptor *somTD_SOMClass_somGetMethodDescriptor;
  433. typedef long   SOMLINK somTP_SOMClass_somGetMethodIndex(SOMClass *somSelf,
  434.         somId id);
  435. typedef somTP_SOMClass_somGetMethodIndex *somTD_SOMClass_somGetMethodIndex;
  436. typedef somMToken   SOMLINK somTP_SOMClass_somGetMethodToken(SOMClass *somSelf,
  437.         somId methodId);
  438. typedef somTP_SOMClass_somGetMethodToken *somTD_SOMClass_somGetMethodToken;
  439. typedef string   SOMLINK somTP_SOMClass_somGetName(SOMClass *somSelf);
  440. typedef somTP_SOMClass_somGetName *somTD_SOMClass_somGetName;
  441. typedef boolean   SOMLINK somTP_SOMClass_somGetNthMethodData(SOMClass *somSelf,
  442.         long n,
  443.         somMethodData* md);
  444. typedef somTP_SOMClass_somGetNthMethodData *somTD_SOMClass_somGetNthMethodData;
  445. typedef somId   SOMLINK somTP_SOMClass_somGetNthMethodInfo(SOMClass *somSelf,
  446.         long n,
  447.         somId* descriptor);
  448. typedef somTP_SOMClass_somGetNthMethodInfo *somTD_SOMClass_somGetNthMethodInfo;
  449. typedef long   SOMLINK somTP_SOMClass_somGetNumMethods(SOMClass *somSelf);
  450. typedef somTP_SOMClass_somGetNumMethods *somTD_SOMClass_somGetNumMethods;
  451. typedef long   SOMLINK somTP_SOMClass_somGetNumStaticMethods(SOMClass *somSelf);
  452. typedef somTP_SOMClass_somGetNumStaticMethods *somTD_SOMClass_somGetNumStaticMethods;
  453. typedef SOMClass*   SOMLINK somTP_SOMClass_somGetParent(SOMClass *somSelf);
  454. typedef somTP_SOMClass_somGetParent *somTD_SOMClass_somGetParent;
  455. typedef SOMClass_SOMClassSequence   SOMLINK somTP_SOMClass_somGetParents(SOMClass *somSelf);
  456. typedef somTP_SOMClass_somGetParents *somTD_SOMClass_somGetParents;
  457. typedef somMethodTabs   SOMLINK somTP_SOMClass_somGetPClsMtab(SOMClass *somSelf);
  458. typedef somTP_SOMClass_somGetPClsMtab *somTD_SOMClass_somGetPClsMtab;
  459. typedef somMethodTabs   SOMLINK somTP_SOMClass_somGetPClsMtabs(SOMClass *somSelf);
  460. typedef somTP_SOMClass_somGetPClsMtabs *somTD_SOMClass_somGetPClsMtabs;
  461. typedef void   SOMLINK somTP_SOMClass_somGetVersionNumbers(SOMClass *somSelf,
  462.         long* majorVersion,
  463.         long* minorVersion);
  464. typedef somTP_SOMClass_somGetVersionNumbers *somTD_SOMClass_somGetVersionNumbers;
  465. typedef boolean   SOMLINK somTP_SOMClass_somSetMethodDescriptor(SOMClass *somSelf,
  466.         somId methodId,
  467.         somId descriptor);
  468. typedef somTP_SOMClass_somSetMethodDescriptor *somTD_SOMClass_somSetMethodDescriptor;
  469. typedef boolean   SOMLINK somTP_SOMClass_somFindMethod(SOMClass *somSelf,
  470.         somId methodId,
  471.         somMethodPtr* m);
  472. typedef somTP_SOMClass_somFindMethod *somTD_SOMClass_somFindMethod;
  473. typedef boolean   SOMLINK somTP_SOMClass_somFindMethodOk(SOMClass *somSelf,
  474.         somId methodId,
  475.         somMethodPtr* m);
  476. typedef somTP_SOMClass_somFindMethodOk *somTD_SOMClass_somFindMethodOk;
  477. typedef somMethodPtr   SOMLINK somTP_SOMClass_somFindSMethod(SOMClass *somSelf,
  478.         somId methodId);
  479. typedef somTP_SOMClass_somFindSMethod *somTD_SOMClass_somFindSMethod;
  480. typedef somMethodPtr   SOMLINK somTP_SOMClass_somFindSMethodOk(SOMClass *somSelf,
  481.         somId methodId);
  482. typedef somTP_SOMClass_somFindSMethodOk *somTD_SOMClass_somFindSMethodOk;
  483. typedef somMethodPtr   SOMLINK somTP_SOMClass_somLookupMethod(SOMClass *somSelf,
  484.         somId methodId);
  485. typedef somTP_SOMClass_somLookupMethod *somTD_SOMClass_somLookupMethod;
  486. typedef boolean   SOMLINK somTP_SOMClass_somCheckVersion(SOMClass *somSelf,
  487.         long majorVersion,
  488.         long minorVersion);
  489. typedef somTP_SOMClass_somCheckVersion *somTD_SOMClass_somCheckVersion;
  490. typedef boolean   SOMLINK somTP_SOMClass_somDescendedFrom(SOMClass *somSelf,
  491.         SOMClass* aClassObj);
  492. typedef somTP_SOMClass_somDescendedFrom *somTD_SOMClass_somDescendedFrom;
  493. typedef boolean   SOMLINK somTP_SOMClass_somSupportsMethod(SOMClass *somSelf,
  494.         somId mId);
  495. typedef somTP_SOMClass_somSupportsMethod *somTD_SOMClass_somSupportsMethod;
  496. typedef somMethodPtr   SOMLINK somTP_SOMClass_somDefinedMethod(SOMClass *somSelf,
  497.         somMToken method);
  498. typedef somTP_SOMClass_somDefinedMethod *somTD_SOMClass_somDefinedMethod;
  499. typedef void   SOMLINK somTP_SOMClass_somOverrideMtab(SOMClass *somSelf);
  500. typedef somTP_SOMClass_somOverrideMtab *somTD_SOMClass_somOverrideMtab;
  501.  
  502. /*
  503.  * -- Typedefs for Reintroduced Wrapper Methods
  504.  */
  505. typedef void   SOMLINK somTP_SOMClass_somDefaultInit(SOMClass *somSelf,
  506.         somInitCtrl* ctrl);
  507. typedef somTP_SOMClass_somDefaultInit *somTD_SOMClass_somDefaultInit;
  508. typedef void   SOMLINK somTP_SOMClass_somDestruct(SOMClass *somSelf,
  509.         octet doFree,
  510.         somDestructCtrl* ctrl);
  511. typedef somTP_SOMClass_somDestruct *somTD_SOMClass_somDestruct;
  512. typedef void   SOMLINK somTP_SOMClass_somDefaultCopyInit(SOMClass *somSelf,
  513.         somInitCtrl* ctrl,
  514.         SOMObject* fromObj);
  515. typedef somTP_SOMClass_somDefaultCopyInit *somTD_SOMClass_somDefaultCopyInit;
  516. typedef SOMClass*   SOMLINK somTP_SOMClass_somDefaultAssign(SOMClass *somSelf,
  517.         somAssignCtrl* ctrl,
  518.         SOMObject* fromObj);
  519. typedef somTP_SOMClass_somDefaultAssign *somTD_SOMClass_somDefaultAssign;
  520. typedef void   SOMLINK somTP_SOMClass_somDefaultConstCopyInit(SOMClass *somSelf,
  521.         somInitCtrl* ctrl,
  522.         SOMObject* fromObj);
  523. typedef somTP_SOMClass_somDefaultConstCopyInit *somTD_SOMClass_somDefaultConstCopyInit;
  524. typedef void   SOMLINK somTP_SOMClass_somDefaultVCopyInit(SOMClass *somSelf,
  525.         somInitCtrl* ctrl,
  526.         SOMObject* fromObj);
  527. typedef somTP_SOMClass_somDefaultVCopyInit *somTD_SOMClass_somDefaultVCopyInit;
  528. typedef void   SOMLINK somTP_SOMClass_somDefaultConstVCopyInit(SOMClass *somSelf,
  529.         somInitCtrl* ctrl,
  530.         SOMObject* fromObj);
  531. typedef somTP_SOMClass_somDefaultConstVCopyInit *somTD_SOMClass_somDefaultConstVCopyInit;
  532. typedef SOMClass*   SOMLINK somTP_SOMClass_somDefaultConstAssign(SOMClass *somSelf,
  533.         somAssignCtrl* ctrl,
  534.         SOMObject* fromObj);
  535. typedef somTP_SOMClass_somDefaultConstAssign *somTD_SOMClass_somDefaultConstAssign;
  536. typedef SOMClass*   SOMLINK somTP_SOMClass_somDefaultVAssign(SOMClass *somSelf,
  537.         somAssignCtrl* ctrl,
  538.         SOMObject* fromObj);
  539. typedef somTP_SOMClass_somDefaultVAssign *somTD_SOMClass_somDefaultVAssign;
  540. typedef SOMClass*   SOMLINK somTP_SOMClass_somDefaultConstVAssign(SOMClass *somSelf,
  541.         somAssignCtrl* ctrl,
  542.         SOMObject* fromObj);
  543. typedef somTP_SOMClass_somDefaultConstVAssign *somTD_SOMClass_somDefaultConstVAssign;
  544. typedef void   SOMLINK somTP_SOMClass_somInit(SOMClass *somSelf);
  545. typedef somTP_SOMClass_somInit *somTD_SOMClass_somInit;
  546. typedef void   SOMLINK somTP_SOMClass_somFree(SOMClass *somSelf);
  547. typedef somTP_SOMClass_somFree *somTD_SOMClass_somFree;
  548. typedef void   SOMLINK somTP_SOMClass_somUninit(SOMClass *somSelf);
  549. typedef somTP_SOMClass_somUninit *somTD_SOMClass_somUninit;
  550. typedef SOMClass*   SOMLINK somTP_SOMClass_somGetClass(SOMClass *somSelf);
  551. typedef somTP_SOMClass_somGetClass *somTD_SOMClass_somGetClass;
  552. typedef string   SOMLINK somTP_SOMClass_somGetClassName(SOMClass *somSelf);
  553. typedef somTP_SOMClass_somGetClassName *somTD_SOMClass_somGetClassName;
  554. typedef long   SOMLINK somTP_SOMClass_somGetSize(SOMClass *somSelf);
  555. typedef somTP_SOMClass_somGetSize *somTD_SOMClass_somGetSize;
  556. typedef boolean   SOMLINK somTP_SOMClass_somIsA(SOMClass *somSelf,
  557.         SOMClass* aClassObj);
  558. typedef somTP_SOMClass_somIsA *somTD_SOMClass_somIsA;
  559. typedef boolean   SOMLINK somTP_SOMClass_somIsInstanceOf(SOMClass *somSelf,
  560.         SOMClass* aClassObj);
  561. typedef somTP_SOMClass_somIsInstanceOf *somTD_SOMClass_somIsInstanceOf;
  562. typedef boolean   SOMLINK somTP_SOMClass_somRespondsTo(SOMClass *somSelf,
  563.         somId mId);
  564. typedef somTP_SOMClass_somRespondsTo *somTD_SOMClass_somRespondsTo;
  565. typedef boolean   SOMLINK somTP_SOMClass_somDispatch(SOMClass *somSelf,
  566.         somToken* retValue,
  567.         somId methodId,
  568.         va_list ap);
  569. typedef somTP_SOMClass_somDispatch *somTD_SOMClass_somDispatch;
  570. typedef boolean   SOMLINK somTP_SOMClass_somClassDispatch(SOMClass *somSelf,
  571.         SOMClass* clsObj,
  572.         somToken* retValue,
  573.         somId methodId,
  574.         va_list ap);
  575. typedef somTP_SOMClass_somClassDispatch *somTD_SOMClass_somClassDispatch;
  576. typedef boolean   SOMLINK somTP_SOMClass_somCastObj(SOMClass *somSelf,
  577.         SOMClass* cls);
  578. typedef somTP_SOMClass_somCastObj *somTD_SOMClass_somCastObj;
  579. typedef boolean   SOMLINK somTP_SOMClass_somResetObj(SOMClass *somSelf);
  580. typedef somTP_SOMClass_somResetObj *somTD_SOMClass_somResetObj;
  581. typedef SOMObject*   SOMLINK somTP_SOMClass_somPrintSelf(SOMClass *somSelf);
  582. typedef somTP_SOMClass_somPrintSelf *somTD_SOMClass_somPrintSelf;
  583. typedef void   SOMLINK somTP_SOMClass_somDumpSelf(SOMClass *somSelf,
  584.         long level);
  585. typedef somTP_SOMClass_somDumpSelf *somTD_SOMClass_somDumpSelf;
  586. typedef void   SOMLINK somTP_SOMClass_somDumpSelfInt(SOMClass *somSelf,
  587.         long level);
  588. typedef somTP_SOMClass_somDumpSelfInt *somTD_SOMClass_somDumpSelfInt;
  589. }
  590.  
  591. #endif /* SOMClass_API */
  592.  
  593.  
  594. /*
  595.  * -- This emitter believes that method thunks are unavailable,
  596.  * -- so somResolve will be called.
  597.  */
  598. #undef somresolve_
  599. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  600.  
  601. /*
  602.  * -- The C++ Wrapper Class for SOMClass
  603.  */
  604. class SOMClass : public SOMObject
  605. {
  606. public:
  607.  
  608. // SOMClass::new creates the class object if necessary, and then uses somNewNoInit
  609. // to allocate memory and create the object. Initialization is in ctors.
  610. void *operator new(size_t)
  611. {
  612.    if (!_SOMClass) SOMClassNewClass(SOMClass_MajorVersion,SOMClass_MinorVersion);
  613.    return (void*)
  614.       SOM_Resolve(_SOMClass,SOMClass,somNewNoInit)
  615.          ((SOMClass *)((void*)_SOMClass));
  616. }
  617.  
  618. // SOMClass::delete uses somDestruct.
  619. void operator delete(void * obj)
  620. {
  621.    if (obj && *(void**)obj) {
  622.       SOM_Resolve(obj,SOMObject,somDestruct)
  623.          ((SOMObject*)obj, 1, 0);
  624.    }
  625. }
  626.  
  627. SOMClass()
  628. {
  629.    if (*(void**)this != 
  630.        ((somParentMtabStructPtr)
  631.         (SOMClassCClassData.parentMtab))->mtab)
  632.       return;
  633.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  634. }
  635.  
  636. SOMClass(SOMClass* fromObj)
  637. {
  638.    if (*(void**)this != 
  639.        ((somParentMtabStructPtr)
  640.         (SOMClassCClassData.parentMtab))->mtab)
  641.       return;
  642.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  643. }
  644.  
  645. SOMClass(const SOMClass* fromObj)
  646. {
  647.    if (*(void**)this != 
  648.        ((somParentMtabStructPtr)
  649.         (SOMClassCClassData.parentMtab))->mtab)
  650.       return;
  651.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  652. }
  653.  
  654.  
  655. /* method: _get_somDataAlignment */
  656. long   _get_somDataAlignment()
  657. {
  658.    return SOM_ResolveD(this,SOMClass,SOMClass,_get_somDataAlignment)
  659.     (this);
  660. }
  661.  
  662.  
  663. /* nonstatic method: _get_somInstanceDataOffsets */
  664. SOMClass_somOffsets   _get_somInstanceDataOffsets()
  665. {
  666.    return SOM_ResolveD(this,SOMClass,SOMClass,_get_somInstanceDataOffsets)
  667.     (this);
  668. }
  669.  
  670.  
  671. /* nonstatic method: _get_somDirectInitClasses */
  672. SOMClass_SOMClassSequence   _get_somDirectInitClasses()
  673. {
  674.    return SOM_ResolveD(this,SOMClass,SOMClass,_get_somDirectInitClasses)
  675.     (this);
  676. }
  677.  
  678.  
  679. /* nonstatic method: _set_somDirectInitClasses */
  680. void   _set_somDirectInitClasses(SOMClass_SOMClassSequence* somDirectInitClasses)
  681. {
  682.    SOM_ResolveD(this,SOMClass,SOMClass,_set_somDirectInitClasses)
  683.     (this,somDirectInitClasses);
  684. }
  685.  
  686.  
  687. /* method: somNew */
  688. SOMObject*   somNew()
  689. {
  690.    return SOM_ResolveD(this,SOMClass,SOMClass,somNew)
  691.     (this);
  692. }
  693.  
  694.  
  695. /* method: somNewNoInit */
  696. SOMObject*   somNewNoInit()
  697. {
  698.    return SOM_ResolveD(this,SOMClass,SOMClass,somNewNoInit)
  699.     (this);
  700. }
  701.  
  702.  
  703. /* method: somRenew */
  704. SOMObject*   somRenew(void* obj)
  705. {
  706.    return SOM_ResolveD(this,SOMClass,SOMClass,somRenew)
  707.     (this,obj);
  708. }
  709.  
  710.  
  711. /* method: somRenewNoInit */
  712. SOMObject*   somRenewNoInit(void* obj)
  713. {
  714.    return SOM_ResolveD(this,SOMClass,SOMClass,somRenewNoInit)
  715.     (this,obj);
  716. }
  717.  
  718.  
  719. /* method: somRenewNoZero */
  720. SOMObject*   somRenewNoZero(void* obj)
  721. {
  722.    return SOM_ResolveD(this,SOMClass,SOMClass,somRenewNoZero)
  723.     (this,obj);
  724. }
  725.  
  726.  
  727. /* method: somRenewNoInitNoZero */
  728. SOMObject*   somRenewNoInitNoZero(void* obj)
  729. {
  730.    return SOM_ResolveD(this,SOMClass,SOMClass,somRenewNoInitNoZero)
  731.     (this,obj);
  732. }
  733.  
  734.  
  735. /* nonstatic method: somAllocate */
  736. string   somAllocate(long size)
  737. {
  738.    return SOM_ResolveD(this,SOMClass,SOMClass,somAllocate)
  739.     (this,size);
  740. }
  741.  
  742.  
  743. /* nonstatic method: somDeallocate */
  744. void   somDeallocate(string memptr)
  745. {
  746.    SOM_ResolveD(this,SOMClass,SOMClass,somDeallocate)
  747.     (this,memptr);
  748. }
  749.  
  750.  
  751. /* nonstatic method: _get_somClassAllocate */
  752. somMethodProc*   _get_somClassAllocate()
  753. {
  754.    return SOM_ResolveD(this,SOMClass,SOMClass,_get_somClassAllocate)
  755.     (this);
  756. }
  757.  
  758.  
  759. /* nonstatic method: _get_somClassDeallocate */
  760. somMethodProc*   _get_somClassDeallocate()
  761. {
  762.    return SOM_ResolveD(this,SOMClass,SOMClass,_get_somClassDeallocate)
  763.     (this);
  764. }
  765.  
  766.  
  767. /* method: somGetInstanceInitMask */
  768. somBooleanVector   somGetInstanceInitMask(somInitCtrl* ctrl)
  769. {
  770.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceInitMask)
  771.     (this,ctrl);
  772. }
  773.  
  774.  
  775. /* method: somGetInstanceDestructionMask */
  776. somBooleanVector   somGetInstanceDestructionMask(somDestructCtrl* ctrl)
  777. {
  778.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceDestructionMask)
  779.     (this,ctrl);
  780. }
  781.  
  782.  
  783. /* method: somGetInstanceAssignmentMask */
  784. somBooleanVector   somGetInstanceAssignmentMask(somAssignCtrl* ctrl)
  785. {
  786.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceAssignmentMask)
  787.     (this,ctrl);
  788. }
  789.  
  790.  
  791. /* method: somInitClass */
  792. void   somInitClass(string className,
  793.         SOMClass* parentClass,
  794.         long dataSize,
  795.         long maxStaticMethods,
  796.         long majorVersion,
  797.         long minorVersion)
  798. {
  799.    SOM_ResolveD(this,SOMClass,SOMClass,somInitClass)
  800.     (this,className,parentClass,dataSize,maxStaticMethods,majorVersion,minorVersion);
  801. }
  802.  
  803.  
  804. /* method: somInitMIClass */
  805. void   somInitMIClass(long inherit_vars,
  806.         string className,
  807.         SOMClass_SOMClassSequence* parentClasses,
  808.         long dataSize,
  809.         long dataAlignment,
  810.         long maxStaticMethods,
  811.         long majorVersion,
  812.         long minorVersion)
  813. {
  814.    SOM_ResolveD(this,SOMClass,SOMClass,somInitMIClass)
  815.     (this,inherit_vars,className,parentClasses,dataSize,dataAlignment,maxStaticMethods,majorVersion,minorVersion);
  816. }
  817.  
  818.  
  819. /* method: somAddStaticMethod */
  820. somMToken   somAddStaticMethod(somId methodId,
  821.         somId methodDescriptor,
  822.         somMethodPtr method,
  823.         somMethodPtr redispatchStub,
  824.         somMethodPtr applyStub)
  825. {
  826.    return SOM_ResolveD(this,SOMClass,SOMClass,somAddStaticMethod)
  827.     (this,methodId,methodDescriptor,method,redispatchStub,applyStub);
  828. }
  829.  
  830.  
  831. /* method: somAddDynamicMethod */
  832. void   somAddDynamicMethod(somId methodId,
  833.         somId methodDescriptor,
  834.         somMethodPtr method,
  835.         somMethodPtr applyStub)
  836. {
  837.    SOM_ResolveD(this,SOMClass,SOMClass,somAddDynamicMethod)
  838.     (this,methodId,methodDescriptor,method,applyStub);
  839. }
  840.  
  841.  
  842. /* method: somOverrideSMethod */
  843. void   somOverrideSMethod(somId methodId,
  844.         somMethodPtr method)
  845. {
  846.    SOM_ResolveD(this,SOMClass,SOMClass,somOverrideSMethod)
  847.     (this,methodId,method);
  848. }
  849.  
  850.  
  851. /* method: somClassReady */
  852. void   somClassReady()
  853. {
  854.    SOM_ResolveD(this,SOMClass,SOMClass,somClassReady)
  855.     (this);
  856. }
  857.  
  858.  
  859. /* method: somGetClassData */
  860. somClassDataStructure*   somGetClassData()
  861. {
  862.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetClassData)
  863.     (this);
  864. }
  865.  
  866.  
  867. /* method: somSetClassData */
  868. void   somSetClassData(somClassDataStructure* cds)
  869. {
  870.    SOM_ResolveD(this,SOMClass,SOMClass,somSetClassData)
  871.     (this,cds);
  872. }
  873.  
  874.  
  875. /* method: somGetClassMtab */
  876. somMethodTab*   somGetClassMtab()
  877. {
  878.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetClassMtab)
  879.     (this);
  880. }
  881.  
  882.  
  883. /* method: somGetInstanceOffset */
  884. long   somGetInstanceOffset()
  885. {
  886.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceOffset)
  887.     (this);
  888. }
  889.  
  890.  
  891. /* method: somGetInstancePartSize */
  892. long   somGetInstancePartSize()
  893. {
  894.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstancePartSize)
  895.     (this);
  896. }
  897.  
  898.  
  899. /* method: somGetInstanceSize */
  900. long   somGetInstanceSize()
  901. {
  902.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceSize)
  903.     (this);
  904. }
  905.  
  906.  
  907. /* method: somGetInstanceToken */
  908. somDToken   somGetInstanceToken()
  909. {
  910.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceToken)
  911.     (this);
  912. }
  913.  
  914.  
  915. /* method: somGetMemberToken */
  916. somDToken   somGetMemberToken(long memberOffset,
  917.         somDToken instanceToken)
  918. {
  919.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetMemberToken)
  920.     (this,memberOffset,instanceToken);
  921. }
  922.  
  923.  
  924. /* method: somGetMethodData */
  925. boolean   somGetMethodData(somId methodId,
  926.         somMethodData* md)
  927. {
  928.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodData)
  929.     (this,methodId,md);
  930. }
  931.  
  932.  
  933. /* method: somGetRdStub */
  934. somMethodProc*   somGetRdStub(somId methodId)
  935. {
  936.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetRdStub)
  937.     (this,methodId);
  938. }
  939.  
  940.  
  941. /* method: somGetMethodDescriptor */
  942. somId   somGetMethodDescriptor(somId methodId)
  943. {
  944.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodDescriptor)
  945.     (this,methodId);
  946. }
  947.  
  948.  
  949. /* method: somGetMethodIndex */
  950. long   somGetMethodIndex(somId id)
  951. {
  952.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodIndex)
  953.     (this,id);
  954. }
  955.  
  956.  
  957. /* method: somGetMethodToken */
  958. somMToken   somGetMethodToken(somId methodId)
  959. {
  960.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodToken)
  961.     (this,methodId);
  962. }
  963.  
  964.  
  965. /* method: somGetName */
  966. string   somGetName()
  967. {
  968.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetName)
  969.     (this);
  970. }
  971.  
  972.  
  973. /* method: somGetNthMethodData */
  974. boolean   somGetNthMethodData(long n,
  975.         somMethodData* md)
  976. {
  977.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetNthMethodData)
  978.     (this,n,md);
  979. }
  980.  
  981.  
  982. /* method: somGetNthMethodInfo */
  983. somId   somGetNthMethodInfo(long n,
  984.         somId* descriptor)
  985. {
  986.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetNthMethodInfo)
  987.     (this,n,descriptor);
  988. }
  989.  
  990.  
  991. /* method: somGetNumMethods */
  992. long   somGetNumMethods()
  993. {
  994.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetNumMethods)
  995.     (this);
  996. }
  997.  
  998.  
  999. /* method: somGetNumStaticMethods */
  1000. long   somGetNumStaticMethods()
  1001. {
  1002.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetNumStaticMethods)
  1003.     (this);
  1004. }
  1005.  
  1006.  
  1007. /* method: somGetParent */
  1008. SOMClass*   somGetParent()
  1009. {
  1010.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetParent)
  1011.     (this);
  1012. }
  1013.  
  1014.  
  1015. /* method: somGetParents */
  1016. SOMClass_SOMClassSequence   somGetParents()
  1017. {
  1018.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetParents)
  1019.     (this);
  1020. }
  1021.  
  1022.  
  1023. /* method: somGetPClsMtab */
  1024. somMethodTabs   somGetPClsMtab()
  1025. {
  1026.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetPClsMtab)
  1027.     (this);
  1028. }
  1029.  
  1030.  
  1031. /* method: somGetPClsMtabs */
  1032. somMethodTabs   somGetPClsMtabs()
  1033. {
  1034.    return SOM_ResolveD(this,SOMClass,SOMClass,somGetPClsMtabs)
  1035.     (this);
  1036. }
  1037.  
  1038.  
  1039. /* method: somGetVersionNumbers */
  1040. void   somGetVersionNumbers(long* majorVersion,
  1041.         long* minorVersion)
  1042. {
  1043.    SOM_ResolveD(this,SOMClass,SOMClass,somGetVersionNumbers)
  1044.     (this,majorVersion,minorVersion);
  1045. }
  1046.  
  1047.  
  1048. /* method: somSetMethodDescriptor */
  1049. boolean   somSetMethodDescriptor(somId methodId,
  1050.         somId descriptor)
  1051. {
  1052.    return SOM_ResolveD(this,SOMClass,SOMClass,somSetMethodDescriptor)
  1053.     (this,methodId,descriptor);
  1054. }
  1055.  
  1056.  
  1057. /* method: somFindMethod */
  1058. boolean   somFindMethod(somId methodId,
  1059.         somMethodPtr* m)
  1060. {
  1061.    return SOM_ResolveD(this,SOMClass,SOMClass,somFindMethod)
  1062.     (this,methodId,m);
  1063. }
  1064.  
  1065.  
  1066. /* method: somFindMethodOk */
  1067. boolean   somFindMethodOk(somId methodId,
  1068.         somMethodPtr* m)
  1069. {
  1070.    return SOM_ResolveD(this,SOMClass,SOMClass,somFindMethodOk)
  1071.     (this,methodId,m);
  1072. }
  1073.  
  1074.  
  1075. /* method: somFindSMethod */
  1076. somMethodPtr   somFindSMethod(somId methodId)
  1077. {
  1078.    return SOM_ResolveD(this,SOMClass,SOMClass,somFindSMethod)
  1079.     (this,methodId);
  1080. }
  1081.  
  1082.  
  1083. /* method: somFindSMethodOk */
  1084. somMethodPtr   somFindSMethodOk(somId methodId)
  1085. {
  1086.    return SOM_ResolveD(this,SOMClass,SOMClass,somFindSMethodOk)
  1087.     (this,methodId);
  1088. }
  1089.  
  1090.  
  1091. /* method: somLookupMethod */
  1092. somMethodPtr   somLookupMethod(somId methodId)
  1093. {
  1094.    return SOM_ResolveD(this,SOMClass,SOMClass,somLookupMethod)
  1095.     (this,methodId);
  1096. }
  1097.  
  1098.  
  1099. /* method: somCheckVersion */
  1100. boolean   somCheckVersion(long majorVersion,
  1101.         long minorVersion)
  1102. {
  1103.    return SOM_ResolveD(this,SOMClass,SOMClass,somCheckVersion)
  1104.     (this,majorVersion,minorVersion);
  1105. }
  1106.  
  1107.  
  1108. /* method: somDescendedFrom */
  1109. boolean   somDescendedFrom(SOMClass* aClassObj)
  1110. {
  1111.    return SOM_ResolveD(this,SOMClass,SOMClass,somDescendedFrom)
  1112.     (this,aClassObj);
  1113. }
  1114.  
  1115.  
  1116. /* method: somSupportsMethod */
  1117. boolean   somSupportsMethod(somId mId)
  1118. {
  1119.    return SOM_ResolveD(this,SOMClass,SOMClass,somSupportsMethod)
  1120.     (this,mId);
  1121. }
  1122.  
  1123.  
  1124. /* method: somDefinedMethod */
  1125. somMethodPtr   somDefinedMethod(somMToken method)
  1126. {
  1127.    return SOM_ResolveD(this,SOMClass,SOMClass,somDefinedMethod)
  1128.     (this,method);
  1129. }
  1130.  
  1131.  
  1132. /* method: somOverrideMtab */
  1133. void   somOverrideMtab()
  1134. {
  1135.    SOM_ResolveD(this,SOMClass,SOMClass,somOverrideMtab)
  1136.     (this);
  1137. }
  1138.  
  1139.  
  1140. /*
  1141.  * Reintroduce inherited methods
  1142.  */
  1143.  
  1144. /* initializer method: somDefaultInit */
  1145. void   somDefaultInit(somInitCtrl* ctrl)
  1146. {
  1147.    SOM_ResolveD(this,SOMClass,SOMObject,somDefaultInit)
  1148.     (this,ctrl);
  1149. }
  1150.  
  1151.  
  1152. /* method: somDestruct */
  1153. void   somDestruct(octet doFree,
  1154.         somDestructCtrl* ctrl)
  1155. {
  1156.    SOM_ResolveD(this,SOMClass,SOMObject,somDestruct)
  1157.     (this,doFree,ctrl);
  1158. }
  1159.  
  1160.  
  1161. /* initializer method: somDefaultCopyInit */
  1162. void   somDefaultCopyInit(somInitCtrl* ctrl,
  1163.         SOMObject* fromObj)
  1164. {
  1165.    SOM_ResolveD(this,SOMClass,SOMObject,somDefaultCopyInit)
  1166.     (this,ctrl,fromObj);
  1167. }
  1168.  
  1169.  
  1170. /* method: somDefaultAssign */
  1171. SOMClass*  somDefaultAssign(somAssignCtrl* ctrl,
  1172.         SOMObject* fromObj)
  1173. {
  1174.    return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultAssign)
  1175.     (this,ctrl,fromObj);
  1176. }
  1177.  
  1178.  
  1179. /* initializer method: somDefaultConstCopyInit */
  1180. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  1181.         SOMObject* fromObj)
  1182. {
  1183.    SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstCopyInit)
  1184.     (this,ctrl,fromObj);
  1185. }
  1186.  
  1187.  
  1188. /* initializer method: somDefaultVCopyInit */
  1189. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  1190.         SOMObject* fromObj)
  1191. {
  1192.    SOM_ResolveD(this,SOMClass,SOMObject,somDefaultVCopyInit)
  1193.     (this,ctrl,fromObj);
  1194. }
  1195.  
  1196.  
  1197. /* initializer method: somDefaultConstVCopyInit */
  1198. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  1199.         SOMObject* fromObj)
  1200. {
  1201.    SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstVCopyInit)
  1202.     (this,ctrl,fromObj);
  1203. }
  1204.  
  1205.  
  1206. /* method: somDefaultConstAssign */
  1207. SOMClass*  somDefaultConstAssign(somAssignCtrl* ctrl,
  1208.         SOMObject* fromObj)
  1209. {
  1210.    return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstAssign)
  1211.     (this,ctrl,fromObj);
  1212. }
  1213.  
  1214.  
  1215. /* method: somDefaultVAssign */
  1216. SOMClass*  somDefaultVAssign(somAssignCtrl* ctrl,
  1217.         SOMObject* fromObj)
  1218. {
  1219.    return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultVAssign)
  1220.     (this,ctrl,fromObj);
  1221. }
  1222.  
  1223.  
  1224. /* method: somDefaultConstVAssign */
  1225. SOMClass*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  1226.         SOMObject* fromObj)
  1227. {
  1228.    return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstVAssign)
  1229.     (this,ctrl,fromObj);
  1230. }
  1231.  
  1232.  
  1233. /* method: somInit */
  1234. void   somInit()
  1235. {
  1236.    SOM_ResolveD(this,SOMClass,SOMObject,somInit)
  1237.     (this);
  1238. }
  1239.  
  1240.  
  1241. /* method: somFree */
  1242. void   somFree()
  1243. {
  1244.    SOM_ResolveD(this,SOMClass,SOMObject,somFree)
  1245.     (this);
  1246. }
  1247.  
  1248.  
  1249. /* method: somUninit */
  1250. void   somUninit()
  1251. {
  1252.    SOM_ResolveD(this,SOMClass,SOMObject,somUninit)
  1253.     (this);
  1254. }
  1255.  
  1256.  
  1257. /* method: somGetClass */
  1258. SOMClass*   somGetClass()
  1259. {
  1260.    return SOM_ResolveD(this,SOMClass,SOMObject,somGetClass)
  1261.     (this);
  1262. }
  1263.  
  1264.  
  1265. /* method: somGetClassName */
  1266. string   somGetClassName()
  1267. {
  1268.    return SOM_ResolveD(this,SOMClass,SOMObject,somGetClassName)
  1269.     (this);
  1270. }
  1271.  
  1272.  
  1273. /* method: somGetSize */
  1274. long   somGetSize()
  1275. {
  1276.    return SOM_ResolveD(this,SOMClass,SOMObject,somGetSize)
  1277.     (this);
  1278. }
  1279.  
  1280.  
  1281. /* method: somIsA */
  1282. boolean   somIsA(SOMClass* aClassObj)
  1283. {
  1284.    return SOM_ResolveD(this,SOMClass,SOMObject,somIsA)
  1285.     (this,aClassObj);
  1286. }
  1287.  
  1288.  
  1289. /* method: somIsInstanceOf */
  1290. boolean   somIsInstanceOf(SOMClass* aClassObj)
  1291. {
  1292.    return SOM_ResolveD(this,SOMClass,SOMObject,somIsInstanceOf)
  1293.     (this,aClassObj);
  1294. }
  1295.  
  1296.  
  1297. /* method: somRespondsTo */
  1298. boolean   somRespondsTo(somId mId)
  1299. {
  1300.    return SOM_ResolveD(this,SOMClass,SOMObject,somRespondsTo)
  1301.     (this,mId);
  1302. }
  1303.  
  1304.  
  1305. /* va_list method: somDispatch */
  1306. /* the va_list invocation form */
  1307. boolean   SOMClass_somDispatch(somToken* retValue,
  1308.         somId methodId,
  1309.         va_list ap)
  1310. {
  1311. return SOM_ResolveD(this,SOMClass,SOMObject,somDispatch)
  1312.     (this,retValue,methodId,ap);
  1313. }
  1314.  
  1315. /* the varargs invocation form */
  1316. boolean   somDispatch(somToken* retValue,
  1317.         somId methodId,
  1318.         ...)
  1319. {
  1320.    va_list ap;
  1321.    va_start(ap, methodId);
  1322.    boolean __somResult = 
  1323.       SOM_ResolveD(this,SOMClass,SOMObject,somDispatch)
  1324.     (this,retValue,methodId,ap);
  1325.    va_end(ap);
  1326.    return __somResult;
  1327. }
  1328.  
  1329.  
  1330. /* va_list method: somClassDispatch */
  1331. /* the va_list invocation form */
  1332. boolean   SOMClass_somClassDispatch(SOMClass* clsObj,
  1333.         somToken* retValue,
  1334.         somId methodId,
  1335.         va_list ap)
  1336. {
  1337. return SOM_ResolveD(this,SOMClass,SOMObject,somClassDispatch)
  1338.     (this,clsObj,retValue,methodId,ap);
  1339. }
  1340.  
  1341. /* the varargs invocation form */
  1342. boolean   somClassDispatch(SOMClass* clsObj,
  1343.         somToken* retValue,
  1344.         somId methodId,
  1345.         ...)
  1346. {
  1347.    va_list ap;
  1348.    va_start(ap, methodId);
  1349.    boolean __somResult = 
  1350.       SOM_ResolveD(this,SOMClass,SOMObject,somClassDispatch)
  1351.     (this,clsObj,retValue,methodId,ap);
  1352.    va_end(ap);
  1353.    return __somResult;
  1354. }
  1355.  
  1356.  
  1357. /* method: somCastObj */
  1358. boolean   somCastObj(SOMClass* cls)
  1359. {
  1360.    return SOM_ResolveD(this,SOMClass,SOMObject,somCastObj)
  1361.     (this,cls);
  1362. }
  1363.  
  1364.  
  1365. /* method: somResetObj */
  1366. boolean   somResetObj()
  1367. {
  1368.    return SOM_ResolveD(this,SOMClass,SOMObject,somResetObj)
  1369.     (this);
  1370. }
  1371.  
  1372.  
  1373. /* method: somPrintSelf */
  1374. SOMObject*   somPrintSelf()
  1375. {
  1376.    return SOM_ResolveD(this,SOMClass,SOMObject,somPrintSelf)
  1377.     (this);
  1378. }
  1379.  
  1380.  
  1381. /* method: somDumpSelf */
  1382. void   somDumpSelf(long level)
  1383. {
  1384.    SOM_ResolveD(this,SOMClass,SOMObject,somDumpSelf)
  1385.     (this,level);
  1386. }
  1387.  
  1388.  
  1389. /* method: somDumpSelfInt */
  1390. void   somDumpSelfInt(long level)
  1391. {
  1392.    SOM_ResolveD(this,SOMClass,SOMObject,somDumpSelfInt)
  1393.     (this,level);
  1394. }
  1395.  
  1396.  
  1397.  
  1398. };   /* SOMClass */
  1399.  
  1400.  
  1401.  
  1402. #endif       /* SOM_SOMClass_xh */
  1403.