home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / scclass.xh < prev    next >
Text File  |  1999-02-22  |  59KB  |  1,767 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: scclass.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. /*
  11.  *   COMPONENT_NAME: some
  12.  * 
  13.  *   ORIGINS: 27
  14.  * 
  15.  * 
  16.  *    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,1996
  17.  *   All Rights Reserved
  18.  *   Licensed Materials - Property of IBM
  19.  *   US Government Users Restricted Rights - Use, duplication or
  20.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  21.  *  @(#) somc/sctypes.h 2.7 12/26/95 16:26:17 [7/30/96 14:46:04]
  22.  * 
  23.  */
  24.  
  25.  
  26. #ifndef SOM_SOMTClassEntryC_xh
  27. #define SOM_SOMTClassEntryC_xh
  28.  
  29. class SOMTClassEntryC;
  30.  
  31. /*
  32.  *  This entry is the anchor for all information about a class
  33.  *  definition. The part it inherits from <SOMTEntryC> concerns
  34.  *  the actual class statement in the interface definition.  The new
  35.  *  methods and attributes provided by the class concern the class
  36.  *  definition as a whole.
  37.  *  A number of the possible statements in a class definition are
  38.  *  optional, when they are missing from the class definition then
  39.  *  methods that would return an entry for this kind of statement, will
  40.  *  return NULL.
  41.  */
  42.  
  43. #define SOMTClassEntryC_MajorVersion 2
  44. #define SOMTClassEntryC_MinorVersion 1
  45.  
  46. /* C++ SOM defs */
  47. #include <somcls.xh>
  48. #include <somcm.xh>
  49.  
  50. /* C++ parent defs */
  51. #ifndef SOM_SOMTEntryC_xh
  52. #include <scentry.xh>
  53. #endif
  54.  
  55. #ifndef SOMTClassEntryC_API
  56. #define SOMTClassEntryC_API
  57. /*
  58.  * -- The Class API
  59.  */
  60.  
  61. /*
  62.  * Start of bindings for IDL types
  63.  */
  64.  
  65. class SOMClass;
  66. class SOMObject;
  67. class SOMTEntryC;
  68. class SOMTEmitC;
  69. class SOMTMetaClassEntryC;
  70. class SOMTAttributeEntryC;
  71. class SOMTTypedefEntryC;
  72. class SOMTBaseClassEntryC;
  73. class SOMTPassthruEntryC;
  74. class SOMTDataEntryC;
  75. class SOMTMethodEntryC;
  76. class SOMTClassEntryC;
  77. class SOMTModuleEntryC;
  78. class SOMTParameterEntryC;
  79. class SOMTStructEntryC;
  80. class SOMTUnionEntryC;
  81. class SOMTEnumEntryC;
  82. class SOMTConstEntryC;
  83. class SOMTSequenceEntryC;
  84. class SOMTStringEntryC;
  85. class SOMTEnumNameEntryC;
  86. class SOMTCommonEntryC;
  87. class SOMTUserDefinedTypeEntryC;
  88.  
  89. /*
  90.  * End of bindings for IDL types.
  91.  */
  92.  
  93. /* A procedure to create the SOMTClassEntryC Class */
  94. SOMEXTERN SOMClass * SOMLINK SOMTClassEntryCNewClass(
  95.         integer4 majorVersion,
  96.         integer4 minorVersion);
  97.  
  98. /* The API to the SOMTClassEntryC class object, and the methods it introduces. */
  99. SOMEXTERN struct SOMTClassEntryCClassDataStructure {
  100.     SOMClass *classObject;
  101.     somMToken _get_somtSourceFileName;
  102.     somMToken _get_somtMetaClassEntry;
  103.     somMToken _get_somtNewMethodCount;
  104.     somMToken _get_somtLocalInclude;
  105.     somMToken _get_somtPrivateMethodCount;
  106.     somMToken _get_somtStaticMethodCount;
  107.     somMToken _get_somtOverrideMethodCount;
  108.     somMToken _get_somtProcMethodCount;
  109.     somMToken _get_somtVAMethodCount;
  110.     somMToken _get_somtBaseCount;
  111.     somMToken _get_somtExternalDataCount;
  112.     somMToken _get_somtPublicDataCount;
  113.     somMToken _get_somtPrivateDataCount;
  114.     somMToken somtGetFirstBaseClass;
  115.     somMToken somtGetNextBaseClass;
  116.     somMToken somtGetFirstReleaseName;
  117.     somMToken somtGetNextReleaseName;
  118.     somMToken somtGetReleaseNameList;
  119.     somMToken somtGetFirstPassthru;
  120.     somMToken somtGetNextPassthru;
  121.     somMToken somtGetFirstData;
  122.     somMToken somtGetNextData;
  123.     somMToken somtGetFirstMethod;
  124.     somMToken somtGetNextMethod;
  125.     somMToken somtGetFirstInheritedMethod;
  126.     somMToken somtGetNextInheritedMethod;
  127.     somMToken somtFilterNew;
  128.     somMToken somtFilterOverridden;
  129.     somMToken somtFilterPrivOrPub;
  130.     somMToken _get_somtMetaclassFor;
  131.     somMToken _get_somtForwardRef;
  132.     somMToken somtGetFirstAttribute;
  133.     somMToken somtGetNextAttribute;
  134.     somMToken somtGetFirstStruct;
  135.     somMToken somtGetNextStruct;
  136.     somMToken somtGetFirstTypedef;
  137.     somMToken somtGetNextTypedef;
  138.     somMToken somtGetFirstUnion;
  139.     somMToken somtGetNextUnion;
  140.     somMToken somtGetFirstEnum;
  141.     somMToken somtGetNextEnum;
  142.     somMToken somtGetFirstConstant;
  143.     somMToken somtGetNextConstant;
  144.     somMToken somtGetFirstSequence;
  145.     somMToken somtGetNextSequence;
  146.     somMToken _get_somtClassModule;
  147.     somMToken somtGetFirstPubdef;
  148.     somMToken somtGetNextPubdef;
  149.     somMToken somtGetFirstStaticData;
  150.     somMToken somtGetNextStaticData;
  151. } SOMDLINK SOMTClassEntryCClassData;
  152. #define _SOMTClassEntryC SOMTClassEntryCClassData.classObject
  153.  
  154. /* The API to parentMtabs for SOMTClassEntryC, and the instance data it introduces. */
  155. SOMEXTERN struct SOMTClassEntryCCClassDataStructure {
  156.     somMethodTabs parentMtab;
  157.     somDToken              instanceDataToken;
  158. } SOMDLINK SOMTClassEntryCCClassData;
  159.  
  160. /*
  161.  * -- Typedefs for SOMTClassEntryC Method Procedures
  162.  */
  163. SOMEXTERN {
  164. typedef string   SOMLINK somTP_SOMTClassEntryC__get_somtSourceFileName(SOMTClassEntryC *somSelf);
  165. typedef somTP_SOMTClassEntryC__get_somtSourceFileName *somTD_SOMTClassEntryC__get_somtSourceFileName;
  166. typedef SOMTMetaClassEntryC*   SOMLINK somTP_SOMTClassEntryC__get_somtMetaClassEntry(SOMTClassEntryC *somSelf);
  167. typedef somTP_SOMTClassEntryC__get_somtMetaClassEntry *somTD_SOMTClassEntryC__get_somtMetaClassEntry;
  168. typedef SOMTModuleEntryC*   SOMLINK somTP_SOMTClassEntryC__get_somtClassModule(SOMTClassEntryC *somSelf);
  169. typedef somTP_SOMTClassEntryC__get_somtClassModule *somTD_SOMTClassEntryC__get_somtClassModule;
  170. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtNewMethodCount(SOMTClassEntryC *somSelf);
  171. typedef somTP_SOMTClassEntryC__get_somtNewMethodCount *somTD_SOMTClassEntryC__get_somtNewMethodCount;
  172. typedef boolean   SOMLINK somTP_SOMTClassEntryC__get_somtLocalInclude(SOMTClassEntryC *somSelf);
  173. typedef somTP_SOMTClassEntryC__get_somtLocalInclude *somTD_SOMTClassEntryC__get_somtLocalInclude;
  174. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtPrivateMethodCount(SOMTClassEntryC *somSelf);
  175. typedef somTP_SOMTClassEntryC__get_somtPrivateMethodCount *somTD_SOMTClassEntryC__get_somtPrivateMethodCount;
  176. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtStaticMethodCount(SOMTClassEntryC *somSelf);
  177. typedef somTP_SOMTClassEntryC__get_somtStaticMethodCount *somTD_SOMTClassEntryC__get_somtStaticMethodCount;
  178. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtOverrideMethodCount(SOMTClassEntryC *somSelf);
  179. typedef somTP_SOMTClassEntryC__get_somtOverrideMethodCount *somTD_SOMTClassEntryC__get_somtOverrideMethodCount;
  180. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtProcMethodCount(SOMTClassEntryC *somSelf);
  181. typedef somTP_SOMTClassEntryC__get_somtProcMethodCount *somTD_SOMTClassEntryC__get_somtProcMethodCount;
  182. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtVAMethodCount(SOMTClassEntryC *somSelf);
  183. typedef somTP_SOMTClassEntryC__get_somtVAMethodCount *somTD_SOMTClassEntryC__get_somtVAMethodCount;
  184. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtBaseCount(SOMTClassEntryC *somSelf);
  185. typedef somTP_SOMTClassEntryC__get_somtBaseCount *somTD_SOMTClassEntryC__get_somtBaseCount;
  186. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtExternalDataCount(SOMTClassEntryC *somSelf);
  187. typedef somTP_SOMTClassEntryC__get_somtExternalDataCount *somTD_SOMTClassEntryC__get_somtExternalDataCount;
  188. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtPublicDataCount(SOMTClassEntryC *somSelf);
  189. typedef somTP_SOMTClassEntryC__get_somtPublicDataCount *somTD_SOMTClassEntryC__get_somtPublicDataCount;
  190. typedef long   SOMLINK somTP_SOMTClassEntryC__get_somtPrivateDataCount(SOMTClassEntryC *somSelf);
  191. typedef somTP_SOMTClassEntryC__get_somtPrivateDataCount *somTD_SOMTClassEntryC__get_somtPrivateDataCount;
  192. typedef SOMTClassEntryC*   SOMLINK somTP_SOMTClassEntryC__get_somtMetaclassFor(SOMTClassEntryC *somSelf);
  193. typedef somTP_SOMTClassEntryC__get_somtMetaclassFor *somTD_SOMTClassEntryC__get_somtMetaclassFor;
  194. typedef boolean   SOMLINK somTP_SOMTClassEntryC__get_somtForwardRef(SOMTClassEntryC *somSelf);
  195. typedef somTP_SOMTClassEntryC__get_somtForwardRef *somTD_SOMTClassEntryC__get_somtForwardRef;
  196. typedef SOMTBaseClassEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstBaseClass(SOMTClassEntryC *somSelf);
  197. typedef somTP_SOMTClassEntryC_somtGetFirstBaseClass *somTD_SOMTClassEntryC_somtGetFirstBaseClass;
  198. typedef SOMTBaseClassEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextBaseClass(SOMTClassEntryC *somSelf);
  199. typedef somTP_SOMTClassEntryC_somtGetNextBaseClass *somTD_SOMTClassEntryC_somtGetNextBaseClass;
  200. typedef string   SOMLINK somTP_SOMTClassEntryC_somtGetFirstReleaseName(SOMTClassEntryC *somSelf);
  201. typedef somTP_SOMTClassEntryC_somtGetFirstReleaseName *somTD_SOMTClassEntryC_somtGetFirstReleaseName;
  202. typedef string   SOMLINK somTP_SOMTClassEntryC_somtGetNextReleaseName(SOMTClassEntryC *somSelf);
  203. typedef somTP_SOMTClassEntryC_somtGetNextReleaseName *somTD_SOMTClassEntryC_somtGetNextReleaseName;
  204. typedef long   SOMLINK somTP_SOMTClassEntryC_somtGetReleaseNameList(SOMTClassEntryC *somSelf, 
  205.         string buffer);
  206. typedef somTP_SOMTClassEntryC_somtGetReleaseNameList *somTD_SOMTClassEntryC_somtGetReleaseNameList;
  207. typedef SOMTPassthruEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstPassthru(SOMTClassEntryC *somSelf);
  208. typedef somTP_SOMTClassEntryC_somtGetFirstPassthru *somTD_SOMTClassEntryC_somtGetFirstPassthru;
  209. typedef SOMTPassthruEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextPassthru(SOMTClassEntryC *somSelf);
  210. typedef somTP_SOMTClassEntryC_somtGetNextPassthru *somTD_SOMTClassEntryC_somtGetNextPassthru;
  211. typedef SOMTDataEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstData(SOMTClassEntryC *somSelf);
  212. typedef somTP_SOMTClassEntryC_somtGetFirstData *somTD_SOMTClassEntryC_somtGetFirstData;
  213. typedef SOMTDataEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextData(SOMTClassEntryC *somSelf);
  214. typedef somTP_SOMTClassEntryC_somtGetNextData *somTD_SOMTClassEntryC_somtGetNextData;
  215. typedef SOMTDataEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstStaticData(SOMTClassEntryC *somSelf);
  216. typedef somTP_SOMTClassEntryC_somtGetFirstStaticData *somTD_SOMTClassEntryC_somtGetFirstStaticData;
  217. typedef SOMTDataEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextStaticData(SOMTClassEntryC *somSelf);
  218. typedef somTP_SOMTClassEntryC_somtGetNextStaticData *somTD_SOMTClassEntryC_somtGetNextStaticData;
  219. typedef SOMTMethodEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstMethod(SOMTClassEntryC *somSelf);
  220. typedef somTP_SOMTClassEntryC_somtGetFirstMethod *somTD_SOMTClassEntryC_somtGetFirstMethod;
  221. typedef SOMTMethodEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextMethod(SOMTClassEntryC *somSelf);
  222. typedef somTP_SOMTClassEntryC_somtGetNextMethod *somTD_SOMTClassEntryC_somtGetNextMethod;
  223. typedef SOMTMethodEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstInheritedMethod(SOMTClassEntryC *somSelf);
  224. typedef somTP_SOMTClassEntryC_somtGetFirstInheritedMethod *somTD_SOMTClassEntryC_somtGetFirstInheritedMethod;
  225. typedef SOMTMethodEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextInheritedMethod(SOMTClassEntryC *somSelf);
  226. typedef somTP_SOMTClassEntryC_somtGetNextInheritedMethod *somTD_SOMTClassEntryC_somtGetNextInheritedMethod;
  227. typedef SOMTAttributeEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstAttribute(SOMTClassEntryC *somSelf);
  228. typedef somTP_SOMTClassEntryC_somtGetFirstAttribute *somTD_SOMTClassEntryC_somtGetFirstAttribute;
  229. typedef SOMTAttributeEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextAttribute(SOMTClassEntryC *somSelf);
  230. typedef somTP_SOMTClassEntryC_somtGetNextAttribute *somTD_SOMTClassEntryC_somtGetNextAttribute;
  231. typedef SOMTStructEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstStruct(SOMTClassEntryC *somSelf);
  232. typedef somTP_SOMTClassEntryC_somtGetFirstStruct *somTD_SOMTClassEntryC_somtGetFirstStruct;
  233. typedef SOMTStructEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextStruct(SOMTClassEntryC *somSelf);
  234. typedef somTP_SOMTClassEntryC_somtGetNextStruct *somTD_SOMTClassEntryC_somtGetNextStruct;
  235. typedef SOMTTypedefEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstTypedef(SOMTClassEntryC *somSelf);
  236. typedef somTP_SOMTClassEntryC_somtGetFirstTypedef *somTD_SOMTClassEntryC_somtGetFirstTypedef;
  237. typedef SOMTTypedefEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextTypedef(SOMTClassEntryC *somSelf);
  238. typedef somTP_SOMTClassEntryC_somtGetNextTypedef *somTD_SOMTClassEntryC_somtGetNextTypedef;
  239. typedef SOMTUnionEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstUnion(SOMTClassEntryC *somSelf);
  240. typedef somTP_SOMTClassEntryC_somtGetFirstUnion *somTD_SOMTClassEntryC_somtGetFirstUnion;
  241. typedef SOMTUnionEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextUnion(SOMTClassEntryC *somSelf);
  242. typedef somTP_SOMTClassEntryC_somtGetNextUnion *somTD_SOMTClassEntryC_somtGetNextUnion;
  243. typedef SOMTEnumEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstEnum(SOMTClassEntryC *somSelf);
  244. typedef somTP_SOMTClassEntryC_somtGetFirstEnum *somTD_SOMTClassEntryC_somtGetFirstEnum;
  245. typedef SOMTEnumEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextEnum(SOMTClassEntryC *somSelf);
  246. typedef somTP_SOMTClassEntryC_somtGetNextEnum *somTD_SOMTClassEntryC_somtGetNextEnum;
  247. typedef SOMTConstEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstConstant(SOMTClassEntryC *somSelf);
  248. typedef somTP_SOMTClassEntryC_somtGetFirstConstant *somTD_SOMTClassEntryC_somtGetFirstConstant;
  249. typedef SOMTConstEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextConstant(SOMTClassEntryC *somSelf);
  250. typedef somTP_SOMTClassEntryC_somtGetNextConstant *somTD_SOMTClassEntryC_somtGetNextConstant;
  251. typedef SOMTSequenceEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstSequence(SOMTClassEntryC *somSelf);
  252. typedef somTP_SOMTClassEntryC_somtGetFirstSequence *somTD_SOMTClassEntryC_somtGetFirstSequence;
  253. typedef SOMTSequenceEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextSequence(SOMTClassEntryC *somSelf);
  254. typedef somTP_SOMTClassEntryC_somtGetNextSequence *somTD_SOMTClassEntryC_somtGetNextSequence;
  255. typedef SOMTEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetFirstPubdef(SOMTClassEntryC *somSelf);
  256. typedef somTP_SOMTClassEntryC_somtGetFirstPubdef *somTD_SOMTClassEntryC_somtGetFirstPubdef;
  257. typedef SOMTEntryC*   SOMLINK somTP_SOMTClassEntryC_somtGetNextPubdef(SOMTClassEntryC *somSelf);
  258. typedef somTP_SOMTClassEntryC_somtGetNextPubdef *somTD_SOMTClassEntryC_somtGetNextPubdef;
  259. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somtFilterNew(SOMTClassEntryC *somSelf, 
  260.         SOMTMethodEntryC* entry);
  261. typedef somTP_SOMTClassEntryC_somtFilterNew *somTD_SOMTClassEntryC_somtFilterNew;
  262. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somtFilterOverridden(SOMTClassEntryC *somSelf, 
  263.         SOMTMethodEntryC* entry);
  264. typedef somTP_SOMTClassEntryC_somtFilterOverridden *somTD_SOMTClassEntryC_somtFilterOverridden;
  265. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somtFilterPrivOrPub(SOMTClassEntryC *somSelf, 
  266.         SOMTCommonEntryC* entry);
  267. typedef somTP_SOMTClassEntryC_somtFilterPrivOrPub *somTD_SOMTClassEntryC_somtFilterPrivOrPub;
  268.  
  269. /*
  270.  * -- Typedefs for Reintroduced Wrapper Methods
  271.  */
  272. typedef string   SOMLINK somTP_SOMTClassEntryC__get_somtEntryName(SOMTClassEntryC *somSelf);
  273. typedef somTP_SOMTClassEntryC__get_somtEntryName *somTD_SOMTClassEntryC__get_somtEntryName;
  274. typedef void   SOMLINK somTP_SOMTClassEntryC__set_somtEntryName(SOMTClassEntryC *somSelf, 
  275.         string somtEntryName);
  276. typedef somTP_SOMTClassEntryC__set_somtEntryName *somTD_SOMTClassEntryC__set_somtEntryName;
  277. typedef SOMTTypes   SOMLINK somTP_SOMTClassEntryC__get_somtElementType(SOMTClassEntryC *somSelf);
  278. typedef somTP_SOMTClassEntryC__get_somtElementType *somTD_SOMTClassEntryC__get_somtElementType;
  279. typedef void   SOMLINK somTP_SOMTClassEntryC__set_somtElementType(SOMTClassEntryC *somSelf, 
  280.         SOMTTypes somtElementType);
  281. typedef somTP_SOMTClassEntryC__set_somtElementType *somTD_SOMTClassEntryC__set_somtElementType;
  282. typedef string   SOMLINK somTP_SOMTClassEntryC__get_somtElementTypeName(SOMTClassEntryC *somSelf);
  283. typedef somTP_SOMTClassEntryC__get_somtElementTypeName *somTD_SOMTClassEntryC__get_somtElementTypeName;
  284. typedef string   SOMLINK somTP_SOMTClassEntryC__get_somtEntryComment(SOMTClassEntryC *somSelf);
  285. typedef somTP_SOMTClassEntryC__get_somtEntryComment *somTD_SOMTClassEntryC__get_somtEntryComment;
  286. typedef unsigned long   SOMLINK somTP_SOMTClassEntryC__get_somtSourceLineNumber(SOMTClassEntryC *somSelf);
  287. typedef somTP_SOMTClassEntryC__get_somtSourceLineNumber *somTD_SOMTClassEntryC__get_somtSourceLineNumber;
  288. typedef TypeCode   SOMLINK somTP_SOMTClassEntryC__get_somtTypeCode(SOMTClassEntryC *somSelf);
  289. typedef somTP_SOMTClassEntryC__get_somtTypeCode *somTD_SOMTClassEntryC__get_somtTypeCode;
  290. typedef boolean   SOMLINK somTP_SOMTClassEntryC__get_somtIsReference(SOMTClassEntryC *somSelf);
  291. typedef somTP_SOMTClassEntryC__get_somtIsReference *somTD_SOMTClassEntryC__get_somtIsReference;
  292. typedef string   SOMLINK somTP_SOMTClassEntryC__get_somtIDLScopedName(SOMTClassEntryC *somSelf);
  293. typedef somTP_SOMTClassEntryC__get_somtIDLScopedName *somTD_SOMTClassEntryC__get_somtIDLScopedName;
  294. typedef string   SOMLINK somTP_SOMTClassEntryC__get_somtCScopedName(SOMTClassEntryC *somSelf);
  295. typedef somTP_SOMTClassEntryC__get_somtCScopedName *somTD_SOMTClassEntryC__get_somtCScopedName;
  296. typedef string   SOMLINK somTP_SOMTClassEntryC_somtGetModifierValue(SOMTClassEntryC *somSelf, 
  297.         string modifierName);
  298. typedef somTP_SOMTClassEntryC_somtGetModifierValue *somTD_SOMTClassEntryC_somtGetModifierValue;
  299. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somtGetFirstModifier(SOMTClassEntryC *somSelf, 
  300.         string* modifierName, 
  301.         string* modifierValue);
  302. typedef somTP_SOMTClassEntryC_somtGetFirstModifier *somTD_SOMTClassEntryC_somtGetFirstModifier;
  303. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somtGetNextModifier(SOMTClassEntryC *somSelf, 
  304.         string* modifierName, 
  305.         string* modifierValue);
  306. typedef somTP_SOMTClassEntryC_somtGetNextModifier *somTD_SOMTClassEntryC_somtGetNextModifier;
  307. typedef long   SOMLINK somTP_SOMTClassEntryC_somtFormatModifier(SOMTClassEntryC *somSelf, 
  308.         string buffer, 
  309.         string name, 
  310.         string value);
  311. typedef somTP_SOMTClassEntryC_somtFormatModifier *somTD_SOMTClassEntryC_somtFormatModifier;
  312. typedef long   SOMLINK somTP_SOMTClassEntryC_somtGetModifierList(SOMTClassEntryC *somSelf, 
  313.         string buffer);
  314. typedef somTP_SOMTClassEntryC_somtGetModifierList *somTD_SOMTClassEntryC_somtGetModifierList;
  315. typedef long   SOMLINK somTP_SOMTClassEntryC_somtSetSymbolsOnEntry(SOMTClassEntryC *somSelf, 
  316.         SOMTEmitC* emitter, 
  317.         string prefix);
  318. typedef somTP_SOMTClassEntryC_somtSetSymbolsOnEntry *somTD_SOMTClassEntryC_somtSetSymbolsOnEntry;
  319. typedef void   SOMLINK somTP_SOMTClassEntryC_somtSetEntryStruct(SOMTClassEntryC *somSelf, 
  320.         Entry* es);
  321. typedef somTP_SOMTClassEntryC_somtSetEntryStruct *somTD_SOMTClassEntryC_somtSetEntryStruct;
  322. typedef void   SOMLINK somTP_SOMTClassEntryC_somInit(SOMTClassEntryC *somSelf);
  323. typedef somTP_SOMTClassEntryC_somInit *somTD_SOMTClassEntryC_somInit;
  324. typedef void   SOMLINK somTP_SOMTClassEntryC_somUninit(SOMTClassEntryC *somSelf);
  325. typedef somTP_SOMTClassEntryC_somUninit *somTD_SOMTClassEntryC_somUninit;
  326. typedef SOMObject*   SOMLINK somTP_SOMTClassEntryC_somPrintSelf(SOMTClassEntryC *somSelf);
  327. typedef somTP_SOMTClassEntryC_somPrintSelf *somTD_SOMTClassEntryC_somPrintSelf;
  328. typedef void   SOMLINK somTP_SOMTClassEntryC_somDumpSelfInt(SOMTClassEntryC *somSelf, 
  329.         long level);
  330. typedef somTP_SOMTClassEntryC_somDumpSelfInt *somTD_SOMTClassEntryC_somDumpSelfInt;
  331. typedef void   SOMLINK somTP_SOMTClassEntryC_somDumpSelf(SOMTClassEntryC *somSelf, 
  332.         long level);
  333. typedef somTP_SOMTClassEntryC_somDumpSelf *somTD_SOMTClassEntryC_somDumpSelf;
  334. typedef void   SOMLINK somTP_SOMTClassEntryC_somDefaultInit(SOMTClassEntryC *somSelf, 
  335.         som3InitCtrl* ctrl);
  336. typedef somTP_SOMTClassEntryC_somDefaultInit *somTD_SOMTClassEntryC_somDefaultInit;
  337. typedef void   SOMLINK somTP_SOMTClassEntryC_somDestruct(SOMTClassEntryC *somSelf, 
  338.         octet doFree, 
  339.         som3DestructCtrl* ctrl);
  340. typedef somTP_SOMTClassEntryC_somDestruct *somTD_SOMTClassEntryC_somDestruct;
  341. typedef void   SOMLINK somTP_SOMTClassEntryC_somDefaultCopyInit(SOMTClassEntryC *somSelf, 
  342.         som3InitCtrl* ctrl, 
  343.         SOMObject* fromObj);
  344. typedef somTP_SOMTClassEntryC_somDefaultCopyInit *somTD_SOMTClassEntryC_somDefaultCopyInit;
  345. typedef SOMTClassEntryC*   SOMLINK somTP_SOMTClassEntryC_somDefaultAssign(SOMTClassEntryC *somSelf, 
  346.         som3AssignCtrl* ctrl, 
  347.         SOMObject* fromObj);
  348. typedef somTP_SOMTClassEntryC_somDefaultAssign *somTD_SOMTClassEntryC_somDefaultAssign;
  349. typedef void   SOMLINK somTP_SOMTClassEntryC_somDefaultConstCopyInit(SOMTClassEntryC *somSelf, 
  350.         som3InitCtrl* ctrl, 
  351.         SOMObject* fromObj);
  352. typedef somTP_SOMTClassEntryC_somDefaultConstCopyInit *somTD_SOMTClassEntryC_somDefaultConstCopyInit;
  353. typedef void   SOMLINK somTP_SOMTClassEntryC_somDefaultVCopyInit(SOMTClassEntryC *somSelf, 
  354.         som3InitCtrl* ctrl, 
  355.         SOMObject* fromObj);
  356. typedef somTP_SOMTClassEntryC_somDefaultVCopyInit *somTD_SOMTClassEntryC_somDefaultVCopyInit;
  357. typedef void   SOMLINK somTP_SOMTClassEntryC_somDefaultConstVCopyInit(SOMTClassEntryC *somSelf, 
  358.         som3InitCtrl* ctrl, 
  359.         SOMObject* fromObj);
  360. typedef somTP_SOMTClassEntryC_somDefaultConstVCopyInit *somTD_SOMTClassEntryC_somDefaultConstVCopyInit;
  361. typedef SOMTClassEntryC*   SOMLINK somTP_SOMTClassEntryC_somDefaultConstAssign(SOMTClassEntryC *somSelf, 
  362.         som3AssignCtrl* ctrl, 
  363.         SOMObject* fromObj);
  364. typedef somTP_SOMTClassEntryC_somDefaultConstAssign *somTD_SOMTClassEntryC_somDefaultConstAssign;
  365. typedef SOMTClassEntryC*   SOMLINK somTP_SOMTClassEntryC_somDefaultVAssign(SOMTClassEntryC *somSelf, 
  366.         som3AssignCtrl* ctrl, 
  367.         SOMObject* fromObj);
  368. typedef somTP_SOMTClassEntryC_somDefaultVAssign *somTD_SOMTClassEntryC_somDefaultVAssign;
  369. typedef SOMTClassEntryC*   SOMLINK somTP_SOMTClassEntryC_somDefaultConstVAssign(SOMTClassEntryC *somSelf, 
  370.         som3AssignCtrl* ctrl, 
  371.         SOMObject* fromObj);
  372. typedef somTP_SOMTClassEntryC_somDefaultConstVAssign *somTD_SOMTClassEntryC_somDefaultConstVAssign;
  373. typedef void   SOMLINK somTP_SOMTClassEntryC_somFree(SOMTClassEntryC *somSelf);
  374. typedef somTP_SOMTClassEntryC_somFree *somTD_SOMTClassEntryC_somFree;
  375. typedef SOMClass*   SOMLINK somTP_SOMTClassEntryC_somGetClass(SOMTClassEntryC *somSelf);
  376. typedef somTP_SOMTClassEntryC_somGetClass *somTD_SOMTClassEntryC_somGetClass;
  377. typedef string   SOMLINK somTP_SOMTClassEntryC_somGetClassName(SOMTClassEntryC *somSelf);
  378. typedef somTP_SOMTClassEntryC_somGetClassName *somTD_SOMTClassEntryC_somGetClassName;
  379. typedef long   SOMLINK somTP_SOMTClassEntryC_somGetSize(SOMTClassEntryC *somSelf);
  380. typedef somTP_SOMTClassEntryC_somGetSize *somTD_SOMTClassEntryC_somGetSize;
  381. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somIsA(SOMTClassEntryC *somSelf, 
  382.         SOMClass* aClassObj);
  383. typedef somTP_SOMTClassEntryC_somIsA *somTD_SOMTClassEntryC_somIsA;
  384. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somIsInstanceOf(SOMTClassEntryC *somSelf, 
  385.         SOMClass* aClassObj);
  386. typedef somTP_SOMTClassEntryC_somIsInstanceOf *somTD_SOMTClassEntryC_somIsInstanceOf;
  387. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somRespondsTo(SOMTClassEntryC *somSelf, 
  388.         somId mId);
  389. typedef somTP_SOMTClassEntryC_somRespondsTo *somTD_SOMTClassEntryC_somRespondsTo;
  390. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somDispatch(SOMTClassEntryC *somSelf, 
  391.         somToken* retValue, 
  392.         somId methodId, 
  393.         va_list ap);
  394. typedef somTP_SOMTClassEntryC_somDispatch *somTD_SOMTClassEntryC_somDispatch;
  395. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somClassDispatch(SOMTClassEntryC *somSelf, 
  396.         SOMClass* clsObj, 
  397.         somToken* retValue, 
  398.         somId methodId, 
  399.         va_list ap);
  400. typedef somTP_SOMTClassEntryC_somClassDispatch *somTD_SOMTClassEntryC_somClassDispatch;
  401. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somCastObj(SOMTClassEntryC *somSelf, 
  402.         SOMClass* cls);
  403. typedef somTP_SOMTClassEntryC_somCastObj *somTD_SOMTClassEntryC_somCastObj;
  404. typedef boolean   SOMLINK somTP_SOMTClassEntryC_somResetObj(SOMTClassEntryC *somSelf);
  405. typedef somTP_SOMTClassEntryC_somResetObj *somTD_SOMTClassEntryC_somResetObj;
  406. typedef void   SOMLINK somTP_SOMTClassEntryC_somDispatchV(SOMTClassEntryC *somSelf, 
  407.         somId methodId, 
  408.         somId descriptor, 
  409.         va_list ap);
  410. typedef somTP_SOMTClassEntryC_somDispatchV *somTD_SOMTClassEntryC_somDispatchV;
  411. typedef long   SOMLINK somTP_SOMTClassEntryC_somDispatchL(SOMTClassEntryC *somSelf, 
  412.         somId methodId, 
  413.         somId descriptor, 
  414.         va_list ap);
  415. typedef somTP_SOMTClassEntryC_somDispatchL *somTD_SOMTClassEntryC_somDispatchL;
  416. typedef void*   SOMLINK somTP_SOMTClassEntryC_somDispatchA(SOMTClassEntryC *somSelf, 
  417.         somId methodId, 
  418.         somId descriptor, 
  419.         va_list ap);
  420. typedef somTP_SOMTClassEntryC_somDispatchA *somTD_SOMTClassEntryC_somDispatchA;
  421. typedef double   SOMLINK somTP_SOMTClassEntryC_somDispatchD(SOMTClassEntryC *somSelf, 
  422.         somId methodId, 
  423.         somId descriptor, 
  424.         va_list ap);
  425. typedef somTP_SOMTClassEntryC_somDispatchD *somTD_SOMTClassEntryC_somDispatchD;
  426. }
  427.  
  428. #endif /* SOMTClassEntryC_API */
  429.  
  430.  
  431. /*
  432.  * -- This emitter treats Method Tokens as Thunks by default.
  433.  * -- Use the sc modifier "nothunks" to change this default
  434.  */
  435. #undef somresolve_
  436. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  437.  
  438. /*
  439.  * -- The C++ Wrapper Class for SOMTClassEntryC
  440.  */
  441. class SOMTClassEntryC : public SOMTEntryC
  442. {
  443. /*
  444.  *  This entry is the anchor for all information about a class
  445.  *  definition. The part it inherits from <SOMTEntryC> concerns
  446.  *  the actual class statement in the interface definition.  The new
  447.  *  methods and attributes provided by the class concern the class
  448.  *  definition as a whole.
  449.  *  A number of the possible statements in a class definition are
  450.  *  optional, when they are missing from the class definition then
  451.  *  methods that would return an entry for this kind of statement, will
  452.  *  return NULL.
  453.  */
  454. public:
  455.  
  456. // SOMTClassEntryC::new creates the class object if necessary, and then uses somNewNoInit
  457. // to allocate memory and create the object. Initialization is in ctors.
  458. void *operator new(size_t)
  459. {
  460.    if (!_SOMTClassEntryC) SOMTClassEntryCNewClass(SOMTClassEntryC_MajorVersion,SOMTClassEntryC_MinorVersion);
  461.    return (void*)
  462.       SOM_Resolve(_SOMTClassEntryC,SOMClass,somNewNoInit)
  463.          ((SOMClass *)((void*)_SOMTClassEntryC));
  464. }
  465.  
  466. // SOMTClassEntryC::delete uses somDestruct.
  467. void operator delete(void * obj)
  468. {
  469.    if (obj && *(void**)obj) {
  470.       SOM_Resolve(obj,SOMObject,somFree)
  471.          ((SOMObject*)obj);
  472.    }
  473. }
  474.  
  475. SOMTClassEntryC& operator=(SOMTClassEntryC& fromObj)
  476. {
  477.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  478.    return *this;
  479. }
  480.  
  481. SOMTClassEntryC()
  482. {
  483.    if (*(void**)this != 
  484.        ((somParentMtabStructPtr)
  485.         (SOMTClassEntryCCClassData.parentMtab))->mtab)
  486.       return;
  487.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  488. }
  489.  
  490. SOMTClassEntryC(SOMTClassEntryC* fromObj)
  491. {
  492.    if (*(void**)this != 
  493.        ((somParentMtabStructPtr)
  494.         (SOMTClassEntryCCClassData.parentMtab))->mtab)
  495.       return;
  496.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  497. }
  498.  
  499. #ifdef __IBMCPP__
  500. #pragma info(nocnv,nopar)
  501. #endif
  502. SOMTClassEntryC(const SOMTClassEntryC* fromObj)
  503. {
  504.    if (*(void**)this != 
  505.        ((somParentMtabStructPtr)
  506.         (SOMTClassEntryCCClassData.parentMtab))->mtab)
  507.       return;
  508.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  509. }
  510. #ifdef __IBMCPP__
  511. #pragma info(restore)
  512. #endif
  513.  
  514.  
  515. /* method: _get_somtSourceFileName */
  516. string   _get_somtSourceFileName()
  517. {
  518. /*
  519.  *  Returns the name of file containing the definition of this class.
  520.  */
  521.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtSourceFileName)
  522.     (this);
  523. }
  524.  
  525.  
  526. /* method: _get_somtMetaClassEntry */
  527. SOMTMetaClassEntryC*   _get_somtMetaClassEntry()
  528. {
  529. /*
  530.  *  Returns the entry for the meta class statement in class
  531.  *  definition or NULL if there is no meta class statement.
  532.  *  Note: the SOM architecture requires that all classes have a meta
  533.  *  class, however <SOMClass> is its own metaclass. Thus, any attempt
  534.  *  to walk up the metaclass chain must terminate when it finds a
  535.  *  class that is its own meta class, otherwise an infinite loop is
  536.  *  possible.
  537.  */
  538.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtMetaClassEntry)
  539.     (this);
  540. }
  541.  
  542.  
  543. /* method: _get_somtClassModule */
  544. SOMTModuleEntryC*   _get_somtClassModule()
  545. {
  546. /*
  547.  *  The module that contains this class, or NULL if there is not one.
  548.  */
  549.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtClassModule)
  550.     (this);
  551. }
  552.  
  553.  
  554. /* method: _get_somtNewMethodCount */
  555. long   _get_somtNewMethodCount()
  556. {
  557. /*
  558.  *  Returns the number of new methods introduced in this class
  559.  *  definition.
  560.  */
  561.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtNewMethodCount)
  562.     (this);
  563. }
  564.  
  565.  
  566. /* method: _get_somtLocalInclude */
  567. boolean   _get_somtLocalInclude()
  568. {
  569. /*
  570.  *  Returns true if the header files associated with this class
  571.  *  definition should be included using local search, eg, "name.h"
  572.  *  instead of <name.h>
  573.  */
  574.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtLocalInclude)
  575.     (this);
  576. }
  577.  
  578.  
  579. /* method: _get_somtPrivateMethodCount */
  580. long   _get_somtPrivateMethodCount()
  581. {
  582. /*
  583.  *  Returns number of new private methods in class.
  584.  */
  585.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtPrivateMethodCount)
  586.     (this);
  587. }
  588.  
  589.  
  590. /* method: _get_somtStaticMethodCount */
  591. long   _get_somtStaticMethodCount()
  592. {
  593. /*
  594.  *  Returns number of new static methods in class.
  595.  */
  596.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtStaticMethodCount)
  597.     (this);
  598. }
  599.  
  600.  
  601. /* method: _get_somtOverrideMethodCount */
  602. long   _get_somtOverrideMethodCount()
  603. {
  604. /*
  605.  *  Returns number of new override methods in class.
  606.  */
  607.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtOverrideMethodCount)
  608.     (this);
  609. }
  610.  
  611.  
  612. /* method: _get_somtProcMethodCount */
  613. long   _get_somtProcMethodCount()
  614. {
  615. /*
  616.  *  Returns number of procedure methods for class.
  617.  */
  618.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtProcMethodCount)
  619.     (this);
  620. }
  621.  
  622.  
  623. /* method: _get_somtVAMethodCount */
  624. long   _get_somtVAMethodCount()
  625. {
  626. /*
  627.  *  Returns number of VarArg methods for class.
  628.  */
  629.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtVAMethodCount)
  630.     (this);
  631. }
  632.  
  633.  
  634. /* method: _get_somtBaseCount */
  635. long   _get_somtBaseCount()
  636. {
  637. /*
  638.  *  Returns number of base classes for class.
  639.  */
  640.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtBaseCount)
  641.     (this);
  642. }
  643.  
  644.  
  645. /* method: _get_somtExternalDataCount */
  646. long   _get_somtExternalDataCount()
  647. {
  648. /*
  649.  *  Returns number of external (public or private) data members for class.
  650.  */
  651.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtExternalDataCount)
  652.     (this);
  653. }
  654.  
  655.  
  656. /* method: _get_somtPublicDataCount */
  657. long   _get_somtPublicDataCount()
  658. {
  659. /*
  660.  *  Returns number of public data members for class.
  661.  */
  662.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtPublicDataCount)
  663.     (this);
  664. }
  665.  
  666.  
  667. /* method: _get_somtPrivateDataCount */
  668. long   _get_somtPrivateDataCount()
  669. {
  670. /*
  671.  *  Returns number of private data members for class.
  672.  */
  673.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtPrivateDataCount)
  674.     (this);
  675. }
  676.  
  677.  
  678. /* method: _get_somtMetaclassFor */
  679. SOMTClassEntryC*   _get_somtMetaclassFor()
  680. {
  681. /*
  682.  *  If this is a metaclass, the class for which it is a metaclass, else NULL.
  683.  */
  684.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtMetaclassFor)
  685.     (this);
  686. }
  687.  
  688.  
  689. /* method: _get_somtForwardRef */
  690. boolean   _get_somtForwardRef()
  691. {
  692. /*
  693.  *  Whether this is a forward reference or not.
  694.  */
  695.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,_get_somtForwardRef)
  696.     (this);
  697. }
  698.  
  699.  
  700. /* method: somtGetFirstBaseClass */
  701. SOMTBaseClassEntryC*   somtGetFirstBaseClass()
  702. {
  703. /*
  704.  *  Returns the entry for the "left most" direct base class form for
  705.  *  this class, if it has one and NULL otherwise.  Note: <SOMObject>
  706.  *  does not have any base classes and therefore will terminate an
  707.  *  attempt to walk up the base class chain.
  708.  */
  709.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstBaseClass)
  710.     (this);
  711. }
  712.  
  713.  
  714. /* method: somtGetNextBaseClass */
  715. SOMTBaseClassEntryC*   somtGetNextBaseClass()
  716. {
  717. /*
  718.  *  Returns the entry for the next direct base class form of this
  719.  *  class, if it has one and NULL otherwise.  The direct base classes
  720.  *  of a derived class are ordered from "left to right".
  721.  */
  722.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextBaseClass)
  723.     (this);
  724. }
  725.  
  726.  
  727. /* method: somtGetFirstReleaseName */
  728. string   somtGetFirstReleaseName()
  729. {
  730. /*
  731.  *  Returns the first name in the release order statement for this
  732.  *  entry if it has one and NULL otherwise.
  733.  */
  734.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstReleaseName)
  735.     (this);
  736. }
  737.  
  738.  
  739. /* method: somtGetNextReleaseName */
  740. string   somtGetNextReleaseName()
  741. {
  742. /*
  743.  *  Returns the next name in the release order statement for this
  744.  *  entry if it has one and NULL otherwise.
  745.  */
  746.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextReleaseName)
  747.     (this);
  748. }
  749.  
  750.  
  751. /* method: somtGetReleaseNameList */
  752. long   somtGetReleaseNameList(string buffer)
  753. {
  754. /*
  755.  *  Puts all the release names in <buffer> in template output form,
  756.  *  buffer must be large enough, no tests are made.  The number of
  757.  *  release names is returned.
  758.  */
  759.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetReleaseNameList)
  760.     (this,buffer);
  761. }
  762.  
  763.  
  764. /* method: somtGetFirstPassthru */
  765. SOMTPassthruEntryC*   somtGetFirstPassthru()
  766. {
  767. /*
  768.  *  Returns the first passthru entry for this class definition if it
  769.  *  has one and NULL otherwise.
  770.  */
  771.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstPassthru)
  772.     (this);
  773. }
  774.  
  775.  
  776. /* method: somtGetNextPassthru */
  777. SOMTPassthruEntryC*   somtGetNextPassthru()
  778. {
  779. /*
  780.  *  Returns the next passthru entry for this class definition if it
  781.  *  has one and NULL otherwise.  The passthru entry will be returned
  782.  *  in an order based on the appearence of passthru statements in the
  783.  *  class definition.
  784.  */
  785.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextPassthru)
  786.     (this);
  787. }
  788.  
  789.  
  790. /* method: somtGetFirstData */
  791. SOMTDataEntryC*   somtGetFirstData()
  792. {
  793. /*
  794.  *  Returns the first data entry for this class definition if it has
  795.  *  one and NULL otherwise.
  796.  */
  797.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstData)
  798.     (this);
  799. }
  800.  
  801.  
  802. /* method: somtGetNextData */
  803. SOMTDataEntryC*   somtGetNextData()
  804. {
  805. /*
  806.  *  Returns the next data entry for this class definition if it has
  807.  *  one and NULL otherwise.  The data entries will be returned in an
  808.  *  order based on the appearence data member declarations in the
  809.  *  class definition.
  810.  */
  811.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextData)
  812.     (this);
  813. }
  814.  
  815.  
  816. /* method: somtGetFirstStaticData */
  817. SOMTDataEntryC*   somtGetFirstStaticData()
  818. {
  819. /*
  820.  *  Returns the first static data entry for this class definition if it has
  821.  *  one and NULL otherwise. Static data is handled specialy in SOM so a
  822.  *  different accessor method is provided.
  823.  */
  824.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstStaticData)
  825.     (this);
  826. }
  827.  
  828.  
  829. /* method: somtGetNextStaticData */
  830. SOMTDataEntryC*   somtGetNextStaticData()
  831. {
  832. /*
  833.  *  Returns the next static data entry for this class definition if it has
  834.  *  one and NULL otherwise.  The data entries will be returned in an
  835.  *  order based on the release order
  836.  */
  837.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextStaticData)
  838.     (this);
  839. }
  840.  
  841.  
  842. /* method: somtGetFirstMethod */
  843. SOMTMethodEntryC*   somtGetFirstMethod()
  844. {
  845. /*
  846.  *  Returns the first method entry for this class definition if it
  847.  *  has one and NULL otherwise.  Method entries may be for new or
  848.  *  overridden methods.
  849.  */
  850.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstMethod)
  851.     (this);
  852. }
  853.  
  854.  
  855. /* method: somtGetNextMethod */
  856. SOMTMethodEntryC*   somtGetNextMethod()
  857. {
  858. /*
  859.  *  Returns the next method entry for this class definition if it has
  860.  *  one and NULL otherwise.  The method entries will be returned in an
  861.  *  order based on the appearence method declarations in the
  862.  *  class definition.  Method entries may be for new or overridden methods.
  863.  */
  864.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextMethod)
  865.     (this);
  866. }
  867.  
  868.  
  869. /* method: somtGetFirstInheritedMethod */
  870. SOMTMethodEntryC*   somtGetFirstInheritedMethod()
  871. {
  872. /*
  873.  *  Returns the first inherited and not overridden method entry for
  874.  *  this class definition if it has one and NULL otherwise.
  875.  */
  876.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstInheritedMethod)
  877.     (this);
  878. }
  879.  
  880.  
  881. /* method: somtGetNextInheritedMethod */
  882. SOMTMethodEntryC*   somtGetNextInheritedMethod()
  883. {
  884. /*
  885.  *  Returns the next inherited and not overridden method entry for
  886.  *  this class definition if it has one and NULL otherwise.  The
  887.  *  method entries will be returned in an unspecified, but constant
  888.  *  order.
  889.  */
  890.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextInheritedMethod)
  891.     (this);
  892. }
  893.  
  894.  
  895. /* method: somtGetFirstAttribute */
  896. SOMTAttributeEntryC*   somtGetFirstAttribute()
  897. {
  898.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstAttribute)
  899.     (this);
  900. }
  901.  
  902.  
  903. /* method: somtGetNextAttribute */
  904. SOMTAttributeEntryC*   somtGetNextAttribute()
  905. {
  906.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextAttribute)
  907.     (this);
  908. }
  909.  
  910.  
  911. /* method: somtGetFirstStruct */
  912. SOMTStructEntryC*   somtGetFirstStruct()
  913. {
  914.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstStruct)
  915.     (this);
  916. }
  917.  
  918.  
  919. /* method: somtGetNextStruct */
  920. SOMTStructEntryC*   somtGetNextStruct()
  921. {
  922.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextStruct)
  923.     (this);
  924. }
  925.  
  926.  
  927. /* method: somtGetFirstTypedef */
  928. SOMTTypedefEntryC*   somtGetFirstTypedef()
  929. {
  930.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstTypedef)
  931.     (this);
  932. }
  933.  
  934.  
  935. /* method: somtGetNextTypedef */
  936. SOMTTypedefEntryC*   somtGetNextTypedef()
  937. {
  938.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextTypedef)
  939.     (this);
  940. }
  941.  
  942.  
  943. /* method: somtGetFirstUnion */
  944. SOMTUnionEntryC*   somtGetFirstUnion()
  945. {
  946.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstUnion)
  947.     (this);
  948. }
  949.  
  950.  
  951. /* method: somtGetNextUnion */
  952. SOMTUnionEntryC*   somtGetNextUnion()
  953. {
  954.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextUnion)
  955.     (this);
  956. }
  957.  
  958.  
  959. /* method: somtGetFirstEnum */
  960. SOMTEnumEntryC*   somtGetFirstEnum()
  961. {
  962.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstEnum)
  963.     (this);
  964. }
  965.  
  966.  
  967. /* method: somtGetNextEnum */
  968. SOMTEnumEntryC*   somtGetNextEnum()
  969. {
  970.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextEnum)
  971.     (this);
  972. }
  973.  
  974.  
  975. /* method: somtGetFirstConstant */
  976. SOMTConstEntryC*   somtGetFirstConstant()
  977. {
  978.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstConstant)
  979.     (this);
  980. }
  981.  
  982.  
  983. /* method: somtGetNextConstant */
  984. SOMTConstEntryC*   somtGetNextConstant()
  985. {
  986.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextConstant)
  987.     (this);
  988. }
  989.  
  990.  
  991. /* method: somtGetFirstSequence */
  992. SOMTSequenceEntryC*   somtGetFirstSequence()
  993. {
  994.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstSequence)
  995.     (this);
  996. }
  997.  
  998.  
  999. /* method: somtGetNextSequence */
  1000. SOMTSequenceEntryC*   somtGetNextSequence()
  1001. {
  1002.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextSequence)
  1003.     (this);
  1004. }
  1005.  
  1006.  
  1007. /* method: somtGetFirstPubdef */
  1008. SOMTEntryC*   somtGetFirstPubdef()
  1009. {
  1010.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetFirstPubdef)
  1011.     (this);
  1012. }
  1013.  
  1014.  
  1015. /* method: somtGetNextPubdef */
  1016. SOMTEntryC*   somtGetNextPubdef()
  1017. {
  1018.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtGetNextPubdef)
  1019.     (this);
  1020. }
  1021.  
  1022.  
  1023. /* method: somtFilterNew */
  1024. boolean   somtFilterNew(SOMTMethodEntryC* entry)
  1025. {
  1026. /*
  1027.  *  Returns 1 if entry is new in the class.
  1028.  */
  1029.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtFilterNew)
  1030.     (this,entry);
  1031. }
  1032.  
  1033.  
  1034. /* method: somtFilterOverridden */
  1035. boolean   somtFilterOverridden(SOMTMethodEntryC* entry)
  1036. {
  1037. /*
  1038.  *  Returns 1 if entry is an overriding method of the class.
  1039.  */
  1040.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtFilterOverridden)
  1041.     (this,entry);
  1042. }
  1043.  
  1044.  
  1045. /* method: somtFilterPrivOrPub */
  1046. boolean   somtFilterPrivOrPub(SOMTCommonEntryC* entry)
  1047. {
  1048. /*
  1049.  *  Returns TRUE if entry is Private or Public.
  1050.  */
  1051.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTClassEntryC,somtFilterPrivOrPub)
  1052.     (this,entry);
  1053. }
  1054.  
  1055.  
  1056. /*
  1057.  * Reintroduce inherited methods
  1058.  */
  1059.  
  1060. /* method: _get_somtEntryName */
  1061. string   _get_somtEntryName()
  1062. {
  1063. /*
  1064.  *  The name associated with this entry.  Eg, the name of
  1065.  *  the data item, the class, the method, the type, etc.
  1066.  */
  1067.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtEntryName)
  1068.     (this);
  1069. }
  1070.  
  1071.  
  1072. /* method: _set_somtEntryName */
  1073. void   _set_somtEntryName(string somtEntryName)
  1074. {
  1075. /*
  1076.  *  The name associated with this entry.  Eg, the name of
  1077.  *  the data item, the class, the method, the type, etc.
  1078.  */
  1079.    SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_set_somtEntryName)
  1080.     (this,somtEntryName);
  1081. }
  1082.  
  1083.  
  1084. /* method: _get_somtElementType */
  1085. SOMTTypes   _get_somtElementType()
  1086. {
  1087. /*
  1088.  *  Returns the type of this entry.
  1089.  *  This is not datatype, but entry type (method, class,
  1090.  *  passthru, etc.). The value is defined by SOMTTypes.
  1091.  */
  1092.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtElementType)
  1093.     (this);
  1094. }
  1095.  
  1096.  
  1097. /* method: _set_somtElementType */
  1098. void   _set_somtElementType(SOMTTypes somtElementType)
  1099. {
  1100. /*
  1101.  *  Returns the type of this entry.
  1102.  *  This is not datatype, but entry type (method, class,
  1103.  *  passthru, etc.). The value is defined by SOMTTypes.
  1104.  */
  1105.    SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_set_somtElementType)
  1106.     (this,somtElementType);
  1107. }
  1108.  
  1109.  
  1110. /* method: _get_somtElementTypeName */
  1111. string   _get_somtElementTypeName()
  1112. {
  1113. /*
  1114.  *  String version of somtElementType.
  1115.  */
  1116.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtElementTypeName)
  1117.     (this);
  1118. }
  1119.  
  1120.  
  1121. /* method: _get_somtEntryComment */
  1122. string   _get_somtEntryComment()
  1123. {
  1124. /*
  1125.  *  Returns the comment associated with this entry, or NULL is this
  1126.  *  entry has no associated comment.  Comments will have comment
  1127.  *  delimitors removed, but will retain newline characters as
  1128.  *  specified in the source file. (use smLookupComment)
  1129.  */
  1130.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtEntryComment)
  1131.     (this);
  1132. }
  1133.  
  1134.  
  1135. /* method: _get_somtSourceLineNumber */
  1136. unsigned long   _get_somtSourceLineNumber()
  1137. {
  1138. /*
  1139.  *  Returns the line number in the source file where this entry's
  1140.  *  syntactic form ended.
  1141.  */
  1142.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtSourceLineNumber)
  1143.     (this);
  1144. }
  1145.  
  1146.  
  1147. /* method: _get_somtTypeCode */
  1148. TypeCode   _get_somtTypeCode()
  1149. {
  1150. /*
  1151.  *  The typecode, if appropriate, or NULL.
  1152.  */
  1153.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtTypeCode)
  1154.     (this);
  1155. }
  1156.  
  1157.  
  1158. /* method: _get_somtIsReference */
  1159. boolean   _get_somtIsReference()
  1160. {
  1161. /*
  1162.  *  Whether the entry is just a reference to the real type (TRUE)
  1163.  *  rather than a declaration of it (FALSE).
  1164.  */
  1165.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtIsReference)
  1166.     (this);
  1167. }
  1168.  
  1169.  
  1170. /* method: _get_somtIDLScopedName */
  1171. string   _get_somtIDLScopedName()
  1172. {
  1173. /*
  1174.  *  The IDL scoped name of the entry (using double colon as delimiter).
  1175.  */
  1176.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtIDLScopedName)
  1177.     (this);
  1178. }
  1179.  
  1180.  
  1181. /* method: _get_somtCScopedName */
  1182. string   _get_somtCScopedName()
  1183. {
  1184. /*
  1185.  *  The C scoped name of the entry (using underscore as delimiter).
  1186.  */
  1187.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,_get_somtCScopedName)
  1188.     (this);
  1189. }
  1190.  
  1191.  
  1192. /* method: somtGetModifierValue */
  1193. string   somtGetModifierValue(string modifierName)
  1194. {
  1195. /*
  1196.  *  Returns the value of the named modifier if this entry has the
  1197.  *  named modifier and NULL otherwise. Note: if the modifier is
  1198.  *  present but does not have a value then a value of <'\1'> is
  1199.  *  returned.
  1200.  */
  1201.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtGetModifierValue)
  1202.     (this,modifierName);
  1203. }
  1204.  
  1205.  
  1206. /* method: somtGetFirstModifier */
  1207. boolean   somtGetFirstModifier(string* modifierName, 
  1208.         string* modifierValue)
  1209. {
  1210. /*
  1211.  *  Returns the first modifier associated with this entry.  1 (true)
  1212.  *  is returned if the entry has at least one modifier and 0 (false)
  1213.  *  otherwise.
  1214.  */
  1215.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtGetFirstModifier)
  1216.     (this,modifierName,modifierValue);
  1217. }
  1218.  
  1219.  
  1220. /* method: somtGetNextModifier */
  1221. boolean   somtGetNextModifier(string* modifierName, 
  1222.         string* modifierValue)
  1223. {
  1224. /*
  1225.  *  Returns the next modifier (with respect to the last call to
  1226.  *  <somtGetNextModifier> or <somtGetFirstModifier>)
  1227.  *  associated with this entry.  1 (true) is returned if the entry
  1228.  *  had another modifier and 0 (false) otherwise.
  1229.  */
  1230.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtGetNextModifier)
  1231.     (this,modifierName,modifierValue);
  1232. }
  1233.  
  1234.  
  1235. /* method: somtFormatModifier */
  1236. long   somtFormatModifier(string buffer, 
  1237.         string name, 
  1238.         string value)
  1239. {
  1240. /*
  1241.  *  Formats the indicated name/value pair into buffer.  Buffer must
  1242.  *  be big enough to hold all the formatted pair, no checks are made.
  1243.  *  The number of characters added to buffer are returned (not
  1244.  *  including the trailing null character).
  1245.  *  Note: value may be null
  1246.  *  You will probably never call this method, it is provided so that
  1247.  *  you can override it to control the format returned in
  1248.  *  <somtGetModifierList>.
  1249.  */
  1250.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtFormatModifier)
  1251.     (this,buffer,name,value);
  1252. }
  1253.  
  1254.  
  1255. /* method: somtGetModifierList */
  1256. long   somtGetModifierList(string buffer)
  1257. {
  1258. /*
  1259.  *  The modifiers for this entry are placed in <buffer> in template
  1260.  *  list form (newline separated).  Buffer must be big enough to
  1261.  *  hold all the modifiers, no checks are made. The number of
  1262.  *  modifiers is returned.
  1263.  */
  1264.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtGetModifierList)
  1265.     (this,buffer);
  1266. }
  1267.  
  1268.  
  1269. /* method: somtSetSymbolsOnEntry */
  1270. long   somtSetSymbolsOnEntry(SOMTEmitC* emitter, 
  1271.         string prefix)
  1272. {
  1273. /*
  1274.  *  Places a number of symbol/value pairs in <t>.  All the symbols
  1275.  *  will begin with <prefix>.
  1276.  */
  1277.    return SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtSetSymbolsOnEntry)
  1278.     (this,emitter,prefix);
  1279. }
  1280.  
  1281.  
  1282. /* method: somtSetEntryStruct */
  1283. void   somtSetEntryStruct(Entry* es)
  1284. {
  1285. /*
  1286.  *  Sets the entry struct data member.
  1287.  *  Note, when overridding this method, it is important to call the
  1288.  *  parent version of the method first and then do your processing.
  1289.  */
  1290.    SOM_ResolveD(this,SOMTClassEntryC,SOMTEntryC,somtSetEntryStruct)
  1291.     (this,es);
  1292. }
  1293.  
  1294.  
  1295. /* method: somInit */
  1296. void   somInit()
  1297. {
  1298.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somInit)
  1299.     (this);
  1300. }
  1301.  
  1302.  
  1303. /* method: somUninit */
  1304. void   somUninit()
  1305. {
  1306.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somUninit)
  1307.     (this);
  1308. }
  1309.  
  1310.  
  1311. /* method: somPrintSelf */
  1312. SOMObject*   somPrintSelf()
  1313. {
  1314.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somPrintSelf)
  1315.     (this);
  1316. }
  1317.  
  1318.  
  1319. /* method: somDumpSelfInt */
  1320. void   somDumpSelfInt(long level)
  1321. {
  1322.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDumpSelfInt)
  1323.     (this,level);
  1324. }
  1325.  
  1326.  
  1327. /* method: somDumpSelf */
  1328. void   somDumpSelf(long level)
  1329. {
  1330.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDumpSelf)
  1331.     (this,level);
  1332. }
  1333.  
  1334.  
  1335. /* initializer method: somDefaultInit */
  1336. void   somDefaultInit(som3InitCtrl* ctrl)
  1337. {
  1338. /*
  1339.  *  A default initializer for a SOM object. Passing a null ctrl
  1340.  *  indicates to the receiver that its class is the class of the
  1341.  *  object being initialized, whereby the initializer will determine
  1342.  *  an appropriate control structure.
  1343.  */
  1344.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultInit)
  1345.     (this,ctrl);
  1346. }
  1347.  
  1348.  
  1349. /* method: somDestruct */
  1350. void   somDestruct(octet doFree, 
  1351.         som3DestructCtrl* ctrl)
  1352. {
  1353. /*
  1354.  *  The default destructor for a SOM object. A nonzero <doFree>
  1355.  *  indicates that the object storage should be freed by the
  1356.  *  object's class (via somDeallocate) after uninitialization.
  1357.  *  As with somDefaultInit, a null ctrl can be passed.
  1358.  */
  1359.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDestruct)
  1360.     (this,doFree,ctrl);
  1361. }
  1362.  
  1363.  
  1364. /* initializer method: somDefaultCopyInit */
  1365. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  1366.         SOMObject* fromObj)
  1367. {
  1368. /*
  1369.  *  A default copy constructor. Use this to make copies of objects for
  1370.  *  calling methods with "by-value" argument semantics.
  1371.  */
  1372.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultCopyInit)
  1373.     (this,ctrl,fromObj);
  1374. }
  1375.  
  1376.  
  1377. /* method: somDefaultAssign */
  1378. SOMTClassEntryC*  somDefaultAssign(som3AssignCtrl* ctrl, 
  1379.         SOMObject* fromObj)
  1380. {
  1381. /*
  1382.  *  A default assignment operator. Use this to "assign" the state of one
  1383.  *  object to another.
  1384.  */
  1385.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultAssign)
  1386.     (this,ctrl,fromObj);
  1387. }
  1388.  
  1389.  
  1390. /* initializer method: somDefaultConstCopyInit */
  1391. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  1392.         SOMObject* fromObj)
  1393. {
  1394. /*
  1395.  *  A default copy constructor that uses a const fromObj.
  1396.  */
  1397.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultConstCopyInit)
  1398.     (this,ctrl,fromObj);
  1399. }
  1400.  
  1401.  
  1402. /* initializer method: somDefaultVCopyInit */
  1403. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  1404.         SOMObject* fromObj)
  1405. {
  1406. /*
  1407.  *  A default copy constructor that uses a volatile fromObj.
  1408.  */
  1409.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultVCopyInit)
  1410.     (this,ctrl,fromObj);
  1411. }
  1412.  
  1413.  
  1414. /* initializer method: somDefaultConstVCopyInit */
  1415. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  1416.         SOMObject* fromObj)
  1417. {
  1418. /*
  1419.  *  A default copy constructor that uses a const volatile fromObj.
  1420.  */
  1421.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultConstVCopyInit)
  1422.     (this,ctrl,fromObj);
  1423. }
  1424.  
  1425.  
  1426. /* method: somDefaultConstAssign */
  1427. SOMTClassEntryC*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  1428.         SOMObject* fromObj)
  1429. {
  1430. /*
  1431.  *  A default assignment operator that uses a const fromObj.
  1432.  */
  1433.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultConstAssign)
  1434.     (this,ctrl,fromObj);
  1435. }
  1436.  
  1437.  
  1438. /* method: somDefaultVAssign */
  1439. SOMTClassEntryC*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  1440.         SOMObject* fromObj)
  1441. {
  1442. /*
  1443.  *  A default assignment operator that uses a volatile fromObj.
  1444.  */
  1445.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultVAssign)
  1446.     (this,ctrl,fromObj);
  1447. }
  1448.  
  1449.  
  1450. /* method: somDefaultConstVAssign */
  1451. SOMTClassEntryC*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  1452.         SOMObject* fromObj)
  1453. {
  1454. /*
  1455.  *  A default assignment operator that uses a const volatile fromObj.
  1456.  */
  1457.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDefaultConstVAssign)
  1458.     (this,ctrl,fromObj);
  1459. }
  1460.  
  1461.  
  1462. /* method: somFree */
  1463. void   somFree()
  1464. {
  1465. /*
  1466.  *  Use as directed by framework implementations.
  1467.  */
  1468.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somFree)
  1469.     (this);
  1470. }
  1471.  
  1472.  
  1473. /* method: somGetClass */
  1474. SOMClass*   somGetClass()
  1475. {
  1476. /*
  1477.  *  Return the receiver's class.
  1478.  */
  1479.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somGetClass)
  1480.     (this);
  1481. }
  1482.  
  1483.  
  1484. /* method: somGetClassName */
  1485. string   somGetClassName()
  1486. {
  1487. /*
  1488.  *  Return the name of the receiver's class.
  1489.  */
  1490.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somGetClassName)
  1491.     (this);
  1492. }
  1493.  
  1494.  
  1495. /* method: somGetSize */
  1496. long   somGetSize()
  1497. {
  1498. /*
  1499.  *  Return the size of the receiver.
  1500.  */
  1501.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somGetSize)
  1502.     (this);
  1503. }
  1504.  
  1505.  
  1506. /* method: somIsA */
  1507. boolean   somIsA(SOMClass* aClassObj)
  1508. {
  1509. /*
  1510.  *  Returns 1 (true) if the receiver responds to methods
  1511.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  1512.  */
  1513.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somIsA)
  1514.     (this,aClassObj);
  1515. }
  1516.  
  1517.  
  1518. /* method: somIsInstanceOf */
  1519. boolean   somIsInstanceOf(SOMClass* aClassObj)
  1520. {
  1521. /*
  1522.  *  Returns 1 (true) if the receiver is an instance of
  1523.  *  <aClassObj> and 0 (false) otherwise.
  1524.  */
  1525.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somIsInstanceOf)
  1526.     (this,aClassObj);
  1527. }
  1528.  
  1529.  
  1530. /* method: somRespondsTo */
  1531. boolean   somRespondsTo(somId mId)
  1532. {
  1533. /*
  1534.  *  Returns 1 (true) if the indicated method can be invoked
  1535.  *  on the receiver and 0 (false) otherwise.
  1536.  */
  1537.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somRespondsTo)
  1538.     (this,mId);
  1539. }
  1540.  
  1541.  
  1542. /* va_list method: somDispatch */
  1543.  
  1544. /*
  1545.  *  This method provides a generic, class-specific dispatch mechanism.
  1546.  *  It accepts as input <retValue> a pointer to the memory area to be
  1547.  *  loaded with the result of dispatching the method indicated by
  1548.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  1549.  *  on which the method is to be invoked as the first argument.
  1550.  */
  1551. /* the va_list invocation form */
  1552. boolean   SOMTClassEntryC_somDispatch(somToken* retValue, 
  1553.         somId methodId, 
  1554.         va_list ap)
  1555. {return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatch)
  1556.     (this,retValue,methodId,ap);
  1557. }
  1558.  
  1559. /* the varargs invocation form */
  1560. boolean   somDispatch(somToken* retValue, 
  1561.         somId methodId, 
  1562.         ...)
  1563. {
  1564. /*
  1565.  *  This method provides a generic, class-specific dispatch mechanism.
  1566.  *  It accepts as input <retValue> a pointer to the memory area to be
  1567.  *  loaded with the result of dispatching the method indicated by
  1568.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  1569.  *  on which the method is to be invoked as the first argument.
  1570.  */
  1571.    va_list ap;
  1572.    va_start(ap, methodId);
  1573.    boolean __somResult = 
  1574.       SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatch)
  1575.     (this,retValue,methodId,ap);
  1576.    va_end(ap);
  1577.    return __somResult;
  1578. }
  1579.  
  1580.  
  1581. /* va_list method: somClassDispatch */
  1582.  
  1583. /*
  1584.  *  Like somDispatch, but method resolution for static methods is done
  1585.  *  according to the clsObj instance method table.
  1586.  */
  1587. /* the va_list invocation form */
  1588. boolean   SOMTClassEntryC_somClassDispatch(SOMClass* clsObj, 
  1589.         somToken* retValue, 
  1590.         somId methodId, 
  1591.         va_list ap)
  1592. {return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somClassDispatch)
  1593.     (this,clsObj,retValue,methodId,ap);
  1594. }
  1595.  
  1596. /* the varargs invocation form */
  1597. boolean   somClassDispatch(SOMClass* clsObj, 
  1598.         somToken* retValue, 
  1599.         somId methodId, 
  1600.         ...)
  1601. {
  1602. /*
  1603.  *  Like somDispatch, but method resolution for static methods is done
  1604.  *  according to the clsObj instance method table.
  1605.  */
  1606.    va_list ap;
  1607.    va_start(ap, methodId);
  1608.    boolean __somResult = 
  1609.       SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somClassDispatch)
  1610.     (this,clsObj,retValue,methodId,ap);
  1611.    va_end(ap);
  1612.    return __somResult;
  1613. }
  1614.  
  1615.  
  1616. /* method: somCastObj */
  1617. boolean   somCastObj(SOMClass* cls)
  1618. {
  1619. /*
  1620.  *  cast the receiving object to cls (which must be an ancestor of the
  1621.  *  objects true class. Returns true on success.
  1622.  */
  1623.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somCastObj)
  1624.     (this,cls);
  1625. }
  1626.  
  1627.  
  1628. /* method: somResetObj */
  1629. boolean   somResetObj()
  1630. {
  1631. /*
  1632.  *  reset an object to its true class. Returns true always.
  1633.  */
  1634.    return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somResetObj)
  1635.     (this);
  1636. }
  1637.  
  1638.  
  1639. /* va_list method: somDispatchV */
  1640.  
  1641. /*
  1642.  *  Obsolete. Use somDispatch instead.
  1643.  */
  1644. /* the va_list invocation form */
  1645. void   SOMTClassEntryC_somDispatchV(somId methodId, 
  1646.         somId descriptor, 
  1647.         va_list ap)
  1648. {   SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchV)
  1649.     (this,methodId,descriptor,ap);
  1650. }
  1651.  
  1652. /* the varargs invocation form */
  1653. void   somDispatchV(somId methodId, 
  1654.         somId descriptor, 
  1655.         ...)
  1656. {
  1657. /*
  1658.  *  Obsolete. Use somDispatch instead.
  1659.  */
  1660.    va_list ap;
  1661.    va_start(ap, descriptor);
  1662.    SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchV)
  1663.     (this,methodId,descriptor,ap);
  1664.    va_end(ap);
  1665. }
  1666.  
  1667.  
  1668. /* va_list method: somDispatchL */
  1669.  
  1670. /*
  1671.  *  Obsolete. Use somDispatch instead.
  1672.  */
  1673. /* the va_list invocation form */
  1674. long   SOMTClassEntryC_somDispatchL(somId methodId, 
  1675.         somId descriptor, 
  1676.         va_list ap)
  1677. {return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchL)
  1678.     (this,methodId,descriptor,ap);
  1679. }
  1680.  
  1681. /* the varargs invocation form */
  1682. long   somDispatchL(somId methodId, 
  1683.         somId descriptor, 
  1684.         ...)
  1685. {
  1686. /*
  1687.  *  Obsolete. Use somDispatch instead.
  1688.  */
  1689.    va_list ap;
  1690.    va_start(ap, descriptor);
  1691.    long __somResult = 
  1692.       SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchL)
  1693.     (this,methodId,descriptor,ap);
  1694.    va_end(ap);
  1695.    return __somResult;
  1696. }
  1697.  
  1698.  
  1699. /* va_list method: somDispatchA */
  1700.  
  1701. /*
  1702.  *  Obsolete. Use somDispatch instead.
  1703.  */
  1704. /* the va_list invocation form */
  1705. void*   SOMTClassEntryC_somDispatchA(somId methodId, 
  1706.         somId descriptor, 
  1707.         va_list ap)
  1708. {return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchA)
  1709.     (this,methodId,descriptor,ap);
  1710. }
  1711.  
  1712. /* the varargs invocation form */
  1713. void*   somDispatchA(somId methodId, 
  1714.         somId descriptor, 
  1715.         ...)
  1716. {
  1717. /*
  1718.  *  Obsolete. Use somDispatch instead.
  1719.  */
  1720.    va_list ap;
  1721.    va_start(ap, descriptor);
  1722.    void* __somResult = 
  1723.       SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchA)
  1724.     (this,methodId,descriptor,ap);
  1725.    va_end(ap);
  1726.    return __somResult;
  1727. }
  1728.  
  1729.  
  1730. /* va_list method: somDispatchD */
  1731.  
  1732. /*
  1733.  *  Obsolete. Use somDispatch instead.
  1734.  */
  1735. /* the va_list invocation form */
  1736. double   SOMTClassEntryC_somDispatchD(somId methodId, 
  1737.         somId descriptor, 
  1738.         va_list ap)
  1739. {return SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchD)
  1740.     (this,methodId,descriptor,ap);
  1741. }
  1742.  
  1743. /* the varargs invocation form */
  1744. double   somDispatchD(somId methodId, 
  1745.         somId descriptor, 
  1746.         ...)
  1747. {
  1748. /*
  1749.  *  Obsolete. Use somDispatch instead.
  1750.  */
  1751.    va_list ap;
  1752.    va_start(ap, descriptor);
  1753.    double __somResult = 
  1754.       SOM_ResolveD(this,SOMTClassEntryC,SOMObject,somDispatchD)
  1755.     (this,methodId,descriptor,ap);
  1756.    va_end(ap);
  1757.    return __somResult;
  1758. }
  1759.  
  1760.  
  1761.  
  1762. };   /* SOMTClassEntryC */
  1763.  
  1764.  
  1765.  
  1766. #endif       /* SOM_SOMTClassEntryC_xh */
  1767.