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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: sctmplt.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.  *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  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.  * 
  22.  */
  23.  
  24.  
  25. #ifndef SOM_SOMTTemplateOutputC_xh
  26. #define SOM_SOMTTemplateOutputC_xh
  27.  
  28. class SOMTTemplateOutputC;
  29.  
  30. #define SOMTTemplateOutputC_MajorVersion 2
  31. #define SOMTTemplateOutputC_MinorVersion 1
  32.  
  33. /*
  34.  * Passthru lines: File: "C.xh", "before"
  35.  */
  36. #include <stdio.h>
  37. typedef enum somtCommentStyleT { somtDashesE, somtCPPE, somtCSimpleE, somtCBlockE } somtCommentStyleT;
  38.  
  39. /* C++ SOM defs */
  40. #include <somcls.xh>
  41. #include <somcm.xh>
  42.  
  43. /* C++ parent defs */
  44. #ifndef SOM_SOMObject_xh
  45. #include <somobj.xh>
  46. #endif
  47.  
  48. #ifndef SOMTTemplateOutputC_API
  49. #define SOMTTemplateOutputC_API
  50. /*
  51.  * -- The Class API
  52.  */
  53.  
  54. /*
  55.  * Start of bindings for IDL types
  56.  */
  57.  
  58. class SOMClass;
  59. class SOMObject;
  60. class SOMStringTableC;
  61. #define SOMTTemplateOutputC_MAX_INPUT_LINE_LENGTH 1024 /* 1024 */
  62. #define SOMTTemplateOutputC_MAX_OUTPUT_LINE_LENGTH 4096 /* 4096 */
  63.  
  64. #ifndef SOM_DONT_USE_SHORT_NAMES
  65. #ifndef SOMTGD_MAX_INPUT_LINE_LENGTH
  66.     #ifdef MAX_INPUT_LINE_LENGTH
  67.         #undef MAX_INPUT_LINE_LENGTH
  68.         #define SOMTGD_MAX_INPUT_LINE_LENGTH 1
  69.     #else
  70.         #define MAX_INPUT_LINE_LENGTH SOMTTemplateOutputC_MAX_INPUT_LINE_LENGTH
  71.     #endif /* MAX_INPUT_LINE_LENGTH */
  72. #endif /* SOMTGD_MAX_INPUT_LINE_LENGTH */
  73. #ifndef SOMTGD_MAX_OUTPUT_LINE_LENGTH
  74.     #ifdef MAX_OUTPUT_LINE_LENGTH
  75.         #undef MAX_OUTPUT_LINE_LENGTH
  76.         #define SOMTGD_MAX_OUTPUT_LINE_LENGTH 1
  77.     #else
  78.         #define MAX_OUTPUT_LINE_LENGTH SOMTTemplateOutputC_MAX_OUTPUT_LINE_LENGTH
  79.     #endif /* MAX_OUTPUT_LINE_LENGTH */
  80. #endif /* SOMTGD_MAX_OUTPUT_LINE_LENGTH */
  81. #endif /* SOM_DONT_USE_SHORT_NAMES */
  82.  
  83. /*
  84.  * End of bindings for IDL types.
  85.  */
  86.  
  87. /* A procedure to create the SOMTTemplateOutputC Class */
  88. SOMEXTERN SOMClass * SOMLINK SOMTTemplateOutputCNewClass(
  89.         integer4 majorVersion,
  90.         integer4 minorVersion);
  91.  
  92. /* The API to the SOMTTemplateOutputC class object, and the methods it introduces. */
  93. SOMEXTERN struct SOMTTemplateOutputCClassDataStructure {
  94.     SOMClass *classObject;
  95.     somMToken _get_somtCommentStyle;
  96.     somMToken _set_somtCommentStyle;
  97.     somMToken _get_somtLineLength;
  98.     somMToken _set_somtLineLength;
  99.     somMToken _set_somtCommentNewline;
  100.     somMToken _get_somtCommentNewline;
  101.     somMToken somtGetSymbol;
  102.     somMToken somtSetSymbol;
  103.     somMToken somtSetSymbolCopyName;
  104.     somMToken somtSetSymbolCopyValue;
  105.     somMToken somtSetSymbolCopyBoth;
  106.     somMToken somtCheckSymbol;
  107.     somMToken somtSetOutputFile;
  108.     somMToken somto;
  109.     somMToken somtOutputComment;
  110.     somMToken somtOutputSection;
  111.     somMToken somtAddSectionDefinitions;
  112.     somMToken somtReadSectionDefinitions;
  113.     somMToken somtExpandSymbol;
  114. } SOMDLINK SOMTTemplateOutputCClassData;
  115. #define _SOMTTemplateOutputC SOMTTemplateOutputCClassData.classObject
  116.  
  117. /* The API to parentMtabs for SOMTTemplateOutputC, and the instance data it introduces. */
  118. SOMEXTERN struct SOMTTemplateOutputCCClassDataStructure {
  119.     somMethodTabs parentMtab;
  120.     somDToken              instanceDataToken;
  121. } SOMDLINK SOMTTemplateOutputCCClassData;
  122.  
  123. /*
  124.  * -- Typedefs for SOMTTemplateOutputC Method Procedures
  125.  */
  126. SOMEXTERN {
  127. typedef somtCommentStyleT   SOMLINK somTP_SOMTTemplateOutputC__get_somtCommentStyle(SOMTTemplateOutputC *somSelf);
  128. typedef somTP_SOMTTemplateOutputC__get_somtCommentStyle *somTD_SOMTTemplateOutputC__get_somtCommentStyle;
  129. typedef void   SOMLINK somTP_SOMTTemplateOutputC__set_somtCommentStyle(SOMTTemplateOutputC *somSelf, 
  130.         somtCommentStyleT somtCommentStyle);
  131. typedef somTP_SOMTTemplateOutputC__set_somtCommentStyle *somTD_SOMTTemplateOutputC__set_somtCommentStyle;
  132. typedef long   SOMLINK somTP_SOMTTemplateOutputC__get_somtLineLength(SOMTTemplateOutputC *somSelf);
  133. typedef somTP_SOMTTemplateOutputC__get_somtLineLength *somTD_SOMTTemplateOutputC__get_somtLineLength;
  134. typedef void   SOMLINK somTP_SOMTTemplateOutputC__set_somtLineLength(SOMTTemplateOutputC *somSelf, 
  135.         long somtLineLength);
  136. typedef somTP_SOMTTemplateOutputC__set_somtLineLength *somTD_SOMTTemplateOutputC__set_somtLineLength;
  137. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC__get_somtCommentNewline(SOMTTemplateOutputC *somSelf);
  138. typedef somTP_SOMTTemplateOutputC__get_somtCommentNewline *somTD_SOMTTemplateOutputC__get_somtCommentNewline;
  139. typedef void   SOMLINK somTP_SOMTTemplateOutputC__set_somtCommentNewline(SOMTTemplateOutputC *somSelf, 
  140.         boolean somtCommentNewline);
  141. typedef somTP_SOMTTemplateOutputC__set_somtCommentNewline *somTD_SOMTTemplateOutputC__set_somtCommentNewline;
  142. typedef string   SOMLINK somTP_SOMTTemplateOutputC_somtGetSymbol(SOMTTemplateOutputC *somSelf, 
  143.         string name);
  144. typedef somTP_SOMTTemplateOutputC_somtGetSymbol *somTD_SOMTTemplateOutputC_somtGetSymbol;
  145. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtSetSymbol(SOMTTemplateOutputC *somSelf, 
  146.         string name, 
  147.         string value);
  148. typedef somTP_SOMTTemplateOutputC_somtSetSymbol *somTD_SOMTTemplateOutputC_somtSetSymbol;
  149. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtSetSymbolCopyName(SOMTTemplateOutputC *somSelf, 
  150.         string name, 
  151.         string value);
  152. typedef somTP_SOMTTemplateOutputC_somtSetSymbolCopyName *somTD_SOMTTemplateOutputC_somtSetSymbolCopyName;
  153. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtSetSymbolCopyValue(SOMTTemplateOutputC *somSelf, 
  154.         string name, 
  155.         string value);
  156. typedef somTP_SOMTTemplateOutputC_somtSetSymbolCopyValue *somTD_SOMTTemplateOutputC_somtSetSymbolCopyValue;
  157. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtSetSymbolCopyBoth(SOMTTemplateOutputC *somSelf, 
  158.         string name, 
  159.         string value);
  160. typedef somTP_SOMTTemplateOutputC_somtSetSymbolCopyBoth *somTD_SOMTTemplateOutputC_somtSetSymbolCopyBoth;
  161. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somtCheckSymbol(SOMTTemplateOutputC *somSelf, 
  162.         string name);
  163. typedef somTP_SOMTTemplateOutputC_somtCheckSymbol *somTD_SOMTTemplateOutputC_somtCheckSymbol;
  164. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtSetOutputFile(SOMTTemplateOutputC *somSelf, 
  165.         FILE* fp);
  166. typedef somTP_SOMTTemplateOutputC_somtSetOutputFile *somTD_SOMTTemplateOutputC_somtSetOutputFile;
  167. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somto(SOMTTemplateOutputC *somSelf, 
  168.         string tmplt);
  169. typedef somTP_SOMTTemplateOutputC_somto *somTD_SOMTTemplateOutputC_somto;
  170. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtOutputComment(SOMTTemplateOutputC *somSelf, 
  171.         string comment);
  172. typedef somTP_SOMTTemplateOutputC_somtOutputComment *somTD_SOMTTemplateOutputC_somtOutputComment;
  173. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtOutputSection(SOMTTemplateOutputC *somSelf, 
  174.         string sectionName);
  175. typedef somTP_SOMTTemplateOutputC_somtOutputSection *somTD_SOMTTemplateOutputC_somtOutputSection;
  176. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtAddSectionDefinitions(SOMTTemplateOutputC *somSelf, 
  177.         string defString);
  178. typedef somTP_SOMTTemplateOutputC_somtAddSectionDefinitions *somTD_SOMTTemplateOutputC_somtAddSectionDefinitions;
  179. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somtReadSectionDefinitions(SOMTTemplateOutputC *somSelf, 
  180.         FILE* fp);
  181. typedef somTP_SOMTTemplateOutputC_somtReadSectionDefinitions *somTD_SOMTTemplateOutputC_somtReadSectionDefinitions;
  182. typedef string   SOMLINK somTP_SOMTTemplateOutputC_somtExpandSymbol(SOMTTemplateOutputC *somSelf, 
  183.         string s, 
  184.         string buf);
  185. typedef somTP_SOMTTemplateOutputC_somtExpandSymbol *somTD_SOMTTemplateOutputC_somtExpandSymbol;
  186.  
  187. /*
  188.  * -- Typedefs for Reintroduced Wrapper Methods
  189.  */
  190. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDefaultInit(SOMTTemplateOutputC *somSelf, 
  191.         som3InitCtrl* ctrl);
  192. typedef somTP_SOMTTemplateOutputC_somDefaultInit *somTD_SOMTTemplateOutputC_somDefaultInit;
  193. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDestruct(SOMTTemplateOutputC *somSelf, 
  194.         octet doFree, 
  195.         som3DestructCtrl* ctrl);
  196. typedef somTP_SOMTTemplateOutputC_somDestruct *somTD_SOMTTemplateOutputC_somDestruct;
  197. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDefaultCopyInit(SOMTTemplateOutputC *somSelf, 
  198.         som3InitCtrl* ctrl, 
  199.         SOMObject* fromObj);
  200. typedef somTP_SOMTTemplateOutputC_somDefaultCopyInit *somTD_SOMTTemplateOutputC_somDefaultCopyInit;
  201. typedef SOMTTemplateOutputC*   SOMLINK somTP_SOMTTemplateOutputC_somDefaultAssign(SOMTTemplateOutputC *somSelf, 
  202.         som3AssignCtrl* ctrl, 
  203.         SOMObject* fromObj);
  204. typedef somTP_SOMTTemplateOutputC_somDefaultAssign *somTD_SOMTTemplateOutputC_somDefaultAssign;
  205. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDefaultConstCopyInit(SOMTTemplateOutputC *somSelf, 
  206.         som3InitCtrl* ctrl, 
  207.         SOMObject* fromObj);
  208. typedef somTP_SOMTTemplateOutputC_somDefaultConstCopyInit *somTD_SOMTTemplateOutputC_somDefaultConstCopyInit;
  209. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDefaultVCopyInit(SOMTTemplateOutputC *somSelf, 
  210.         som3InitCtrl* ctrl, 
  211.         SOMObject* fromObj);
  212. typedef somTP_SOMTTemplateOutputC_somDefaultVCopyInit *somTD_SOMTTemplateOutputC_somDefaultVCopyInit;
  213. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDefaultConstVCopyInit(SOMTTemplateOutputC *somSelf, 
  214.         som3InitCtrl* ctrl, 
  215.         SOMObject* fromObj);
  216. typedef somTP_SOMTTemplateOutputC_somDefaultConstVCopyInit *somTD_SOMTTemplateOutputC_somDefaultConstVCopyInit;
  217. typedef SOMTTemplateOutputC*   SOMLINK somTP_SOMTTemplateOutputC_somDefaultConstAssign(SOMTTemplateOutputC *somSelf, 
  218.         som3AssignCtrl* ctrl, 
  219.         SOMObject* fromObj);
  220. typedef somTP_SOMTTemplateOutputC_somDefaultConstAssign *somTD_SOMTTemplateOutputC_somDefaultConstAssign;
  221. typedef SOMTTemplateOutputC*   SOMLINK somTP_SOMTTemplateOutputC_somDefaultVAssign(SOMTTemplateOutputC *somSelf, 
  222.         som3AssignCtrl* ctrl, 
  223.         SOMObject* fromObj);
  224. typedef somTP_SOMTTemplateOutputC_somDefaultVAssign *somTD_SOMTTemplateOutputC_somDefaultVAssign;
  225. typedef SOMTTemplateOutputC*   SOMLINK somTP_SOMTTemplateOutputC_somDefaultConstVAssign(SOMTTemplateOutputC *somSelf, 
  226.         som3AssignCtrl* ctrl, 
  227.         SOMObject* fromObj);
  228. typedef somTP_SOMTTemplateOutputC_somDefaultConstVAssign *somTD_SOMTTemplateOutputC_somDefaultConstVAssign;
  229. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somInit(SOMTTemplateOutputC *somSelf);
  230. typedef somTP_SOMTTemplateOutputC_somInit *somTD_SOMTTemplateOutputC_somInit;
  231. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somFree(SOMTTemplateOutputC *somSelf);
  232. typedef somTP_SOMTTemplateOutputC_somFree *somTD_SOMTTemplateOutputC_somFree;
  233. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somUninit(SOMTTemplateOutputC *somSelf);
  234. typedef somTP_SOMTTemplateOutputC_somUninit *somTD_SOMTTemplateOutputC_somUninit;
  235. typedef SOMClass*   SOMLINK somTP_SOMTTemplateOutputC_somGetClass(SOMTTemplateOutputC *somSelf);
  236. typedef somTP_SOMTTemplateOutputC_somGetClass *somTD_SOMTTemplateOutputC_somGetClass;
  237. typedef string   SOMLINK somTP_SOMTTemplateOutputC_somGetClassName(SOMTTemplateOutputC *somSelf);
  238. typedef somTP_SOMTTemplateOutputC_somGetClassName *somTD_SOMTTemplateOutputC_somGetClassName;
  239. typedef long   SOMLINK somTP_SOMTTemplateOutputC_somGetSize(SOMTTemplateOutputC *somSelf);
  240. typedef somTP_SOMTTemplateOutputC_somGetSize *somTD_SOMTTemplateOutputC_somGetSize;
  241. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somIsA(SOMTTemplateOutputC *somSelf, 
  242.         SOMClass* aClassObj);
  243. typedef somTP_SOMTTemplateOutputC_somIsA *somTD_SOMTTemplateOutputC_somIsA;
  244. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somIsInstanceOf(SOMTTemplateOutputC *somSelf, 
  245.         SOMClass* aClassObj);
  246. typedef somTP_SOMTTemplateOutputC_somIsInstanceOf *somTD_SOMTTemplateOutputC_somIsInstanceOf;
  247. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somRespondsTo(SOMTTemplateOutputC *somSelf, 
  248.         somId mId);
  249. typedef somTP_SOMTTemplateOutputC_somRespondsTo *somTD_SOMTTemplateOutputC_somRespondsTo;
  250. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somDispatch(SOMTTemplateOutputC *somSelf, 
  251.         somToken* retValue, 
  252.         somId methodId, 
  253.         va_list ap);
  254. typedef somTP_SOMTTemplateOutputC_somDispatch *somTD_SOMTTemplateOutputC_somDispatch;
  255. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somClassDispatch(SOMTTemplateOutputC *somSelf, 
  256.         SOMClass* clsObj, 
  257.         somToken* retValue, 
  258.         somId methodId, 
  259.         va_list ap);
  260. typedef somTP_SOMTTemplateOutputC_somClassDispatch *somTD_SOMTTemplateOutputC_somClassDispatch;
  261. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somCastObj(SOMTTemplateOutputC *somSelf, 
  262.         SOMClass* cls);
  263. typedef somTP_SOMTTemplateOutputC_somCastObj *somTD_SOMTTemplateOutputC_somCastObj;
  264. typedef boolean   SOMLINK somTP_SOMTTemplateOutputC_somResetObj(SOMTTemplateOutputC *somSelf);
  265. typedef somTP_SOMTTemplateOutputC_somResetObj *somTD_SOMTTemplateOutputC_somResetObj;
  266. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDispatchV(SOMTTemplateOutputC *somSelf, 
  267.         somId methodId, 
  268.         somId descriptor, 
  269.         va_list ap);
  270. typedef somTP_SOMTTemplateOutputC_somDispatchV *somTD_SOMTTemplateOutputC_somDispatchV;
  271. typedef long   SOMLINK somTP_SOMTTemplateOutputC_somDispatchL(SOMTTemplateOutputC *somSelf, 
  272.         somId methodId, 
  273.         somId descriptor, 
  274.         va_list ap);
  275. typedef somTP_SOMTTemplateOutputC_somDispatchL *somTD_SOMTTemplateOutputC_somDispatchL;
  276. typedef void*   SOMLINK somTP_SOMTTemplateOutputC_somDispatchA(SOMTTemplateOutputC *somSelf, 
  277.         somId methodId, 
  278.         somId descriptor, 
  279.         va_list ap);
  280. typedef somTP_SOMTTemplateOutputC_somDispatchA *somTD_SOMTTemplateOutputC_somDispatchA;
  281. typedef double   SOMLINK somTP_SOMTTemplateOutputC_somDispatchD(SOMTTemplateOutputC *somSelf, 
  282.         somId methodId, 
  283.         somId descriptor, 
  284.         va_list ap);
  285. typedef somTP_SOMTTemplateOutputC_somDispatchD *somTD_SOMTTemplateOutputC_somDispatchD;
  286. typedef SOMObject*   SOMLINK somTP_SOMTTemplateOutputC_somPrintSelf(SOMTTemplateOutputC *somSelf);
  287. typedef somTP_SOMTTemplateOutputC_somPrintSelf *somTD_SOMTTemplateOutputC_somPrintSelf;
  288. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDumpSelf(SOMTTemplateOutputC *somSelf, 
  289.         long level);
  290. typedef somTP_SOMTTemplateOutputC_somDumpSelf *somTD_SOMTTemplateOutputC_somDumpSelf;
  291. typedef void   SOMLINK somTP_SOMTTemplateOutputC_somDumpSelfInt(SOMTTemplateOutputC *somSelf, 
  292.         long level);
  293. typedef somTP_SOMTTemplateOutputC_somDumpSelfInt *somTD_SOMTTemplateOutputC_somDumpSelfInt;
  294. }
  295.  
  296. #endif /* SOMTTemplateOutputC_API */
  297.  
  298.  
  299. /*
  300.  * -- This emitter treats Method Tokens as Thunks by default.
  301.  * -- Use the sc modifier "nothunks" to change this default
  302.  */
  303. #undef somresolve_
  304. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  305.  
  306. /*
  307.  * -- The C++ Wrapper Class for SOMTTemplateOutputC
  308.  */
  309. class SOMTTemplateOutputC : public SOMObject
  310. {
  311. public:
  312.  
  313. // SOMTTemplateOutputC::new creates the class object if necessary, and then uses somNewNoInit
  314. // to allocate memory and create the object. Initialization is in ctors.
  315. void *operator new(size_t)
  316. {
  317.    if (!_SOMTTemplateOutputC) SOMTTemplateOutputCNewClass(SOMTTemplateOutputC_MajorVersion,SOMTTemplateOutputC_MinorVersion);
  318.    return (void*)
  319.       SOM_Resolve(_SOMTTemplateOutputC,SOMClass,somNewNoInit)
  320.          ((SOMClass *)((void*)_SOMTTemplateOutputC));
  321. }
  322.  
  323. // SOMTTemplateOutputC::delete uses somDestruct.
  324. void operator delete(void * obj)
  325. {
  326.    if (obj && *(void**)obj) {
  327.       SOM_Resolve(obj,SOMObject,somFree)
  328.          ((SOMObject*)obj);
  329.    }
  330. }
  331.  
  332. SOMTTemplateOutputC& operator=(SOMTTemplateOutputC& fromObj)
  333. {
  334.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  335.    return *this;
  336. }
  337.  
  338. SOMTTemplateOutputC()
  339. {
  340.    if (*(void**)this != 
  341.        ((somParentMtabStructPtr)
  342.         (SOMTTemplateOutputCCClassData.parentMtab))->mtab)
  343.       return;
  344.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  345. }
  346.  
  347. SOMTTemplateOutputC(SOMTTemplateOutputC* fromObj)
  348. {
  349.    if (*(void**)this != 
  350.        ((somParentMtabStructPtr)
  351.         (SOMTTemplateOutputCCClassData.parentMtab))->mtab)
  352.       return;
  353.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  354. }
  355.  
  356. #ifdef __IBMCPP__
  357. #pragma info(nocnv,nopar)
  358. #endif
  359. SOMTTemplateOutputC(const SOMTTemplateOutputC* fromObj)
  360. {
  361.    if (*(void**)this != 
  362.        ((somParentMtabStructPtr)
  363.         (SOMTTemplateOutputCCClassData.parentMtab))->mtab)
  364.       return;
  365.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  366. }
  367. #ifdef __IBMCPP__
  368. #pragma info(restore)
  369. #endif
  370.  
  371.  
  372. /* method: _get_somtCommentStyle */
  373. somtCommentStyleT   _get_somtCommentStyle()
  374. {
  375. /*
  376.  *  Controls the style in which comments are wrtten as follows:
  377.  *    somtDashesE: "--" at the start of each line
  378.  *    somtCPPE: C++ style, "//" at the start of each line
  379.  *    somtCSimpleE: simple C style, each line wrapped in / * and * /
  380.  *    somtCBlockE: block C style, block style, ie leading / * then a * on each
  381.  *               line and then a final * /
  382.  */
  383.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,_get_somtCommentStyle)
  384.     (this);
  385. }
  386.  
  387.  
  388. /* method: _set_somtCommentStyle */
  389. void   _set_somtCommentStyle(somtCommentStyleT somtCommentStyle)
  390. {
  391. /*
  392.  *  Controls the style in which comments are wrtten as follows:
  393.  *    somtDashesE: "--" at the start of each line
  394.  *    somtCPPE: C++ style, "//" at the start of each line
  395.  *    somtCSimpleE: simple C style, each line wrapped in / * and * /
  396.  *    somtCBlockE: block C style, block style, ie leading / * then a * on each
  397.  *               line and then a final * /
  398.  */
  399.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,_set_somtCommentStyle)
  400.     (this,somtCommentStyle);
  401. }
  402.  
  403.  
  404. /* method: _get_somtLineLength */
  405. long   _get_somtLineLength()
  406. {
  407. /*
  408.  *  Controls list output only.  Default is 72.
  409.  *  At least one list item will be output on each line, so making
  410.  *  this value very short will cause list items to be placed on
  411.  *  separate lines.
  412.  */
  413.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,_get_somtLineLength)
  414.     (this);
  415. }
  416.  
  417.  
  418. /* method: _set_somtLineLength */
  419. void   _set_somtLineLength(long somtLineLength)
  420. {
  421. /*
  422.  *  Controls list output only.  Default is 72.
  423.  *  At least one list item will be output on each line, so making
  424.  *  this value very short will cause list items to be placed on
  425.  *  separate lines.
  426.  */
  427.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,_set_somtLineLength)
  428.     (this,somtLineLength);
  429. }
  430.  
  431.  
  432. /* method: _get_somtCommentNewline */
  433. boolean   _get_somtCommentNewline()
  434. {
  435. /*
  436.  * Method from the IDL attribute statement:
  437.  * "attribute boolean somtCommentNewline"
  438.  */
  439.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,_get_somtCommentNewline)
  440.     (this);
  441. }
  442.  
  443.  
  444. /* method: _set_somtCommentNewline */
  445. void   _set_somtCommentNewline(boolean somtCommentNewline)
  446. {
  447. /*
  448.  * Method from the IDL attribute statement:
  449.  * "attribute boolean somtCommentNewline"
  450.  */
  451.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,_set_somtCommentNewline)
  452.     (this,somtCommentNewline);
  453. }
  454.  
  455.  
  456. /* method: somtGetSymbol */
  457. string   somtGetSymbol(string name)
  458. {
  459. /*
  460.  *  Returns the value associated with <name>.  If no value is
  461.  *  associated with <name> then NULL is returned
  462.  */
  463.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtGetSymbol)
  464.     (this,name);
  465. }
  466.  
  467.  
  468. /* method: somtSetSymbol */
  469. void   somtSetSymbol(string name, 
  470.         string value)
  471. {
  472. /*
  473.  *  Makes the symbol with name <name> have value <value>.  This will
  474.  *  overwrite any previous value the symbol had, and add the symbol
  475.  *  if necessary.
  476.  *  Takes over ownership of both name and value.
  477.  */
  478.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtSetSymbol)
  479.     (this,name,value);
  480. }
  481.  
  482.  
  483. /* method: somtSetSymbolCopyName */
  484. void   somtSetSymbolCopyName(string name, 
  485.         string value)
  486. {
  487. /*
  488.  *  See somtSetSymbol
  489.  *  Only takes over ownership of value.
  490.  */
  491.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtSetSymbolCopyName)
  492.     (this,name,value);
  493. }
  494.  
  495.  
  496. /* method: somtSetSymbolCopyValue */
  497. void   somtSetSymbolCopyValue(string name, 
  498.         string value)
  499. {
  500. /*
  501.  *  See somtSetSymbol
  502.  *  Only takes over ownership of name.
  503.  */
  504.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtSetSymbolCopyValue)
  505.     (this,name,value);
  506. }
  507.  
  508.  
  509. /* method: somtSetSymbolCopyBoth */
  510. void   somtSetSymbolCopyBoth(string name, 
  511.         string value)
  512. {
  513. /*
  514.  *  See somtSetSymbol
  515.  *  Does not take over ownership of either <name> or <value>
  516.  */
  517.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtSetSymbolCopyBoth)
  518.     (this,name,value);
  519. }
  520.  
  521.  
  522. /* method: somtCheckSymbol */
  523. boolean   somtCheckSymbol(string name)
  524. {
  525. /*
  526.  *  Returns 1 (true) if the indicated symbol has non-null, non-zero
  527.  *  length value, and 0 (false) otherwise.
  528.  */
  529.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtCheckSymbol)
  530.     (this,name);
  531. }
  532.  
  533.  
  534. /* method: somtSetOutputFile */
  535. void   somtSetOutputFile(FILE* fp)
  536. {
  537. /*
  538.  *  All template output will be directed to <fp>. Default is <stdout>.
  539.  */
  540.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtSetOutputFile)
  541.     (this,fp);
  542. }
  543.  
  544.  
  545. /* method: somto */
  546. void   somto(string tmplt)
  547. {
  548. /*
  549.  *  Outputs a template, <tmplt>, after substitution for any symbols
  550.  *  that occur in it.  Five substitutions are supported: simple,
  551.  *  list, comment, tab, and conditional.
  552.  *  Substitutable items in the template are bracketed with angle
  553.  *  brackets. (Backslash can be used to escape an angle bracket.)
  554.  *  Simple substitutions just replace a symbol with its value. If
  555.  *  the symbol has no value in this template object then the symbol
  556.  *  is replaced error string but no error is raised.
  557.  *  List substitution assumes that the symbol has a value in output
  558.  *  template list form. This is a newline separated string of
  559.  *  values. The list substitution specification consists of four
  560.  *  parts, a prefix, a symbol, a separator, and a list indicator.
  561.  *  prefixes and separators can only be composed of blanks, comma,
  562.  *  colons, and semi-colons.  The list indicator is "..." (three
  563.  *  periods).  For example, the list substitution
  564.  *  specification "<, name, ...> has a prefix of ", ", a symbol of
  565.  *  "name" and a separator of ", ".  The prefix will be used
  566.  *  whenever there is at least one item in the list and the separator
  567.  *  will be used between any two list items.  After the first items
  568.  *  of a list is placed each additional item is evaluated to see if
  569.  *  it would begin after the line length limit (set by
  570.  *  _set_somtLineLength), if it would then a new line is begun and the
  571.  *  value is placed directly under the first item.
  572.  *  Comment substitution assumes that the symbol has a value in
  573.  *  output template list form.  A comment specification consists of
  574.  *  a comment indicator followed by a symbol name. The comment
  575.  *  indicator is "--".  Eg, <-- classComment> is a valid comment
  576.  *  substitution specification.  The lines of the comment are output
  577.  *  according to the current comment style (see <somtCommentStyle>)
  578.  *  and alined with the starting column of the comment
  579.  *  specification.
  580.  *  Tab substitution is specified by <@dd> where "dd" is a valid
  581.  *  positive integer. Blanks will be inserted into the output stream
  582.  *  if necessary to position the next character of output at the
  583.  *  column indicated by "dd".
  584.  *  Conditional substitution is specified by puting a question mark,
  585.  *  "?", in column one of the template line.  The line will not be
  586.  *  output at all unless at least one valid, non-blank,  symbol
  587.  *  substitution  occurs on the line.
  588.  */
  589.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somto)
  590.     (this,tmplt);
  591. }
  592.  
  593.  
  594. /* method: somtOutputComment */
  595. void   somtOutputComment(string comment)
  596. {
  597. /*
  598.  *  Inserts a comment into the output stream.  <comment> must be a
  599.  *  string containing the comment with lines in the comment
  600.  *  seperated by newlines.
  601.  *  The style of output is controlled by <somtCommentStyle>
  602.  */
  603.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtOutputComment)
  604.     (this,comment);
  605. }
  606.  
  607.  
  608. /* method: somtOutputSection */
  609. void   somtOutputSection(string sectionName)
  610. {
  611. /*
  612.  *  Just like <somto> above, except <sectionName> must be a symbol
  613.  *  whose value will be used as the template.
  614.  */
  615.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtOutputSection)
  616.     (this,sectionName);
  617. }
  618.  
  619.  
  620. /* method: somtAddSectionDefinitions */
  621. void   somtAddSectionDefinitions(string defString)
  622. {
  623. /*
  624.  *  <defString> must be a string of the form:
  625.  *  :section1
  626.  *  value 1 line 1
  627.  *  value 1 line 2
  628.  *  :section2
  629.  *  value 2 line 1
  630.  *  :section3
  631.  *  value 3 line 1
  632.  *  Where the lines that contain a ":" in column 1 immediately followed
  633.  *  by a single name are used to intro the start of a new section.
  634.  *  The section is named by the name on the colon line.  A backslash
  635.  *  can be used to escape a colon in column one that is not supposed
  636.  *  to start a new section.
  637.  *  Adds the indicated section definitions to this template.
  638.  */
  639.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtAddSectionDefinitions)
  640.     (this,defString);
  641. }
  642.  
  643.  
  644. /* method: somtReadSectionDefinitions */
  645. void   somtReadSectionDefinitions(FILE* fp)
  646. {
  647. /*
  648.  *  Reads section definitions from the indicated file.  The section
  649.  *  definitions must be in the form defined above in
  650.  *  <somtAddSectionDefinitions>.
  651.  */
  652.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtReadSectionDefinitions)
  653.     (this,fp);
  654. }
  655.  
  656.  
  657. /* method: somtExpandSymbol */
  658. string   somtExpandSymbol(string s, 
  659.         string buf)
  660. {
  661. /*
  662.  *  Expands simple symbols in an already expanded string.  Thus if you
  663.  *  have a symbol which is itself a Section in a template file, and this
  664.  *  section could have other sections in it then you should call this
  665.  *  method.
  666.  */
  667.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMTTemplateOutputC,somtExpandSymbol)
  668.     (this,s,buf);
  669. }
  670.  
  671.  
  672. /*
  673.  * Reintroduce inherited methods
  674.  */
  675.  
  676. /* initializer method: somDefaultInit */
  677. void   somDefaultInit(som3InitCtrl* ctrl)
  678. {
  679. /*
  680.  *  A default initializer for a SOM object. Passing a null ctrl
  681.  *  indicates to the receiver that its class is the class of the
  682.  *  object being initialized, whereby the initializer will determine
  683.  *  an appropriate control structure.
  684.  */
  685.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultInit)
  686.     (this,ctrl);
  687. }
  688.  
  689.  
  690. /* method: somDestruct */
  691. void   somDestruct(octet doFree, 
  692.         som3DestructCtrl* ctrl)
  693. {
  694. /*
  695.  *  The default destructor for a SOM object. A nonzero <doFree>
  696.  *  indicates that the object storage should be freed by the
  697.  *  object's class (via somDeallocate) after uninitialization.
  698.  *  As with somDefaultInit, a null ctrl can be passed.
  699.  */
  700.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDestruct)
  701.     (this,doFree,ctrl);
  702. }
  703.  
  704.  
  705. /* initializer method: somDefaultCopyInit */
  706. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  707.         SOMObject* fromObj)
  708. {
  709. /*
  710.  *  A default copy constructor. Use this to make copies of objects for
  711.  *  calling methods with "by-value" argument semantics.
  712.  */
  713.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultCopyInit)
  714.     (this,ctrl,fromObj);
  715. }
  716.  
  717.  
  718. /* method: somDefaultAssign */
  719. SOMTTemplateOutputC*  somDefaultAssign(som3AssignCtrl* ctrl, 
  720.         SOMObject* fromObj)
  721. {
  722. /*
  723.  *  A default assignment operator. Use this to "assign" the state of one
  724.  *  object to another.
  725.  */
  726.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultAssign)
  727.     (this,ctrl,fromObj);
  728. }
  729.  
  730.  
  731. /* initializer method: somDefaultConstCopyInit */
  732. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  733.         SOMObject* fromObj)
  734. {
  735. /*
  736.  *  A default copy constructor that uses a const fromObj.
  737.  */
  738.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultConstCopyInit)
  739.     (this,ctrl,fromObj);
  740. }
  741.  
  742.  
  743. /* initializer method: somDefaultVCopyInit */
  744. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  745.         SOMObject* fromObj)
  746. {
  747. /*
  748.  *  A default copy constructor that uses a volatile fromObj.
  749.  */
  750.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultVCopyInit)
  751.     (this,ctrl,fromObj);
  752. }
  753.  
  754.  
  755. /* initializer method: somDefaultConstVCopyInit */
  756. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  757.         SOMObject* fromObj)
  758. {
  759. /*
  760.  *  A default copy constructor that uses a const volatile fromObj.
  761.  */
  762.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultConstVCopyInit)
  763.     (this,ctrl,fromObj);
  764. }
  765.  
  766.  
  767. /* method: somDefaultConstAssign */
  768. SOMTTemplateOutputC*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  769.         SOMObject* fromObj)
  770. {
  771. /*
  772.  *  A default assignment operator that uses a const fromObj.
  773.  */
  774.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultConstAssign)
  775.     (this,ctrl,fromObj);
  776. }
  777.  
  778.  
  779. /* method: somDefaultVAssign */
  780. SOMTTemplateOutputC*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  781.         SOMObject* fromObj)
  782. {
  783. /*
  784.  *  A default assignment operator that uses a volatile fromObj.
  785.  */
  786.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultVAssign)
  787.     (this,ctrl,fromObj);
  788. }
  789.  
  790.  
  791. /* method: somDefaultConstVAssign */
  792. SOMTTemplateOutputC*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  793.         SOMObject* fromObj)
  794. {
  795. /*
  796.  *  A default assignment operator that uses a const volatile fromObj.
  797.  */
  798.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDefaultConstVAssign)
  799.     (this,ctrl,fromObj);
  800. }
  801.  
  802.  
  803. /* method: somInit */
  804. void   somInit()
  805. {
  806. /*
  807.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  808.  */
  809.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somInit)
  810.     (this);
  811. }
  812.  
  813.  
  814. /* method: somFree */
  815. void   somFree()
  816. {
  817. /*
  818.  *  Use as directed by framework implementations.
  819.  */
  820.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somFree)
  821.     (this);
  822. }
  823.  
  824.  
  825. /* method: somUninit */
  826. void   somUninit()
  827. {
  828. /*
  829.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  830.  */
  831.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somUninit)
  832.     (this);
  833. }
  834.  
  835.  
  836. /* method: somGetClass */
  837. SOMClass*   somGetClass()
  838. {
  839. /*
  840.  *  Return the receiver's class.
  841.  */
  842.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somGetClass)
  843.     (this);
  844. }
  845.  
  846.  
  847. /* method: somGetClassName */
  848. string   somGetClassName()
  849. {
  850. /*
  851.  *  Return the name of the receiver's class.
  852.  */
  853.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somGetClassName)
  854.     (this);
  855. }
  856.  
  857.  
  858. /* method: somGetSize */
  859. long   somGetSize()
  860. {
  861. /*
  862.  *  Return the size of the receiver.
  863.  */
  864.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somGetSize)
  865.     (this);
  866. }
  867.  
  868.  
  869. /* method: somIsA */
  870. boolean   somIsA(SOMClass* aClassObj)
  871. {
  872. /*
  873.  *  Returns 1 (true) if the receiver responds to methods
  874.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  875.  */
  876.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somIsA)
  877.     (this,aClassObj);
  878. }
  879.  
  880.  
  881. /* method: somIsInstanceOf */
  882. boolean   somIsInstanceOf(SOMClass* aClassObj)
  883. {
  884. /*
  885.  *  Returns 1 (true) if the receiver is an instance of
  886.  *  <aClassObj> and 0 (false) otherwise.
  887.  */
  888.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somIsInstanceOf)
  889.     (this,aClassObj);
  890. }
  891.  
  892.  
  893. /* method: somRespondsTo */
  894. boolean   somRespondsTo(somId mId)
  895. {
  896. /*
  897.  *  Returns 1 (true) if the indicated method can be invoked
  898.  *  on the receiver and 0 (false) otherwise.
  899.  */
  900.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somRespondsTo)
  901.     (this,mId);
  902. }
  903.  
  904.  
  905. /* va_list method: somDispatch */
  906.  
  907. /*
  908.  *  This method provides a generic, class-specific dispatch mechanism.
  909.  *  It accepts as input <retValue> a pointer to the memory area to be
  910.  *  loaded with the result of dispatching the method indicated by
  911.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  912.  *  on which the method is to be invoked as the first argument.
  913.  */
  914. /* the va_list invocation form */
  915. boolean   SOMTTemplateOutputC_somDispatch(somToken* retValue, 
  916.         somId methodId, 
  917.         va_list ap)
  918. {return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatch)
  919.     (this,retValue,methodId,ap);
  920. }
  921.  
  922. /* the varargs invocation form */
  923. boolean   somDispatch(somToken* retValue, 
  924.         somId methodId, 
  925.         ...)
  926. {
  927. /*
  928.  *  This method provides a generic, class-specific dispatch mechanism.
  929.  *  It accepts as input <retValue> a pointer to the memory area to be
  930.  *  loaded with the result of dispatching the method indicated by
  931.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  932.  *  on which the method is to be invoked as the first argument.
  933.  */
  934.    va_list ap;
  935.    va_start(ap, methodId);
  936.    boolean __somResult = 
  937.       SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatch)
  938.     (this,retValue,methodId,ap);
  939.    va_end(ap);
  940.    return __somResult;
  941. }
  942.  
  943.  
  944. /* va_list method: somClassDispatch */
  945.  
  946. /*
  947.  *  Like somDispatch, but method resolution for static methods is done
  948.  *  according to the clsObj instance method table.
  949.  */
  950. /* the va_list invocation form */
  951. boolean   SOMTTemplateOutputC_somClassDispatch(SOMClass* clsObj, 
  952.         somToken* retValue, 
  953.         somId methodId, 
  954.         va_list ap)
  955. {return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somClassDispatch)
  956.     (this,clsObj,retValue,methodId,ap);
  957. }
  958.  
  959. /* the varargs invocation form */
  960. boolean   somClassDispatch(SOMClass* clsObj, 
  961.         somToken* retValue, 
  962.         somId methodId, 
  963.         ...)
  964. {
  965. /*
  966.  *  Like somDispatch, but method resolution for static methods is done
  967.  *  according to the clsObj instance method table.
  968.  */
  969.    va_list ap;
  970.    va_start(ap, methodId);
  971.    boolean __somResult = 
  972.       SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somClassDispatch)
  973.     (this,clsObj,retValue,methodId,ap);
  974.    va_end(ap);
  975.    return __somResult;
  976. }
  977.  
  978.  
  979. /* method: somCastObj */
  980. boolean   somCastObj(SOMClass* cls)
  981. {
  982. /*
  983.  *  cast the receiving object to cls (which must be an ancestor of the
  984.  *  objects true class. Returns true on success.
  985.  */
  986.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somCastObj)
  987.     (this,cls);
  988. }
  989.  
  990.  
  991. /* method: somResetObj */
  992. boolean   somResetObj()
  993. {
  994. /*
  995.  *  reset an object to its true class. Returns true always.
  996.  */
  997.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somResetObj)
  998.     (this);
  999. }
  1000.  
  1001.  
  1002. /* va_list method: somDispatchV */
  1003.  
  1004. /*
  1005.  *  Obsolete. Use somDispatch instead.
  1006.  */
  1007. /* the va_list invocation form */
  1008. void   SOMTTemplateOutputC_somDispatchV(somId methodId, 
  1009.         somId descriptor, 
  1010.         va_list ap)
  1011. {   SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchV)
  1012.     (this,methodId,descriptor,ap);
  1013. }
  1014.  
  1015. /* the varargs invocation form */
  1016. void   somDispatchV(somId methodId, 
  1017.         somId descriptor, 
  1018.         ...)
  1019. {
  1020. /*
  1021.  *  Obsolete. Use somDispatch instead.
  1022.  */
  1023.    va_list ap;
  1024.    va_start(ap, descriptor);
  1025.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchV)
  1026.     (this,methodId,descriptor,ap);
  1027.    va_end(ap);
  1028. }
  1029.  
  1030.  
  1031. /* va_list method: somDispatchL */
  1032.  
  1033. /*
  1034.  *  Obsolete. Use somDispatch instead.
  1035.  */
  1036. /* the va_list invocation form */
  1037. long   SOMTTemplateOutputC_somDispatchL(somId methodId, 
  1038.         somId descriptor, 
  1039.         va_list ap)
  1040. {return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchL)
  1041.     (this,methodId,descriptor,ap);
  1042. }
  1043.  
  1044. /* the varargs invocation form */
  1045. long   somDispatchL(somId methodId, 
  1046.         somId descriptor, 
  1047.         ...)
  1048. {
  1049. /*
  1050.  *  Obsolete. Use somDispatch instead.
  1051.  */
  1052.    va_list ap;
  1053.    va_start(ap, descriptor);
  1054.    long __somResult = 
  1055.       SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchL)
  1056.     (this,methodId,descriptor,ap);
  1057.    va_end(ap);
  1058.    return __somResult;
  1059. }
  1060.  
  1061.  
  1062. /* va_list method: somDispatchA */
  1063.  
  1064. /*
  1065.  *  Obsolete. Use somDispatch instead.
  1066.  */
  1067. /* the va_list invocation form */
  1068. void*   SOMTTemplateOutputC_somDispatchA(somId methodId, 
  1069.         somId descriptor, 
  1070.         va_list ap)
  1071. {return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchA)
  1072.     (this,methodId,descriptor,ap);
  1073. }
  1074.  
  1075. /* the varargs invocation form */
  1076. void*   somDispatchA(somId methodId, 
  1077.         somId descriptor, 
  1078.         ...)
  1079. {
  1080. /*
  1081.  *  Obsolete. Use somDispatch instead.
  1082.  */
  1083.    va_list ap;
  1084.    va_start(ap, descriptor);
  1085.    void* __somResult = 
  1086.       SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchA)
  1087.     (this,methodId,descriptor,ap);
  1088.    va_end(ap);
  1089.    return __somResult;
  1090. }
  1091.  
  1092.  
  1093. /* va_list method: somDispatchD */
  1094.  
  1095. /*
  1096.  *  Obsolete. Use somDispatch instead.
  1097.  */
  1098. /* the va_list invocation form */
  1099. double   SOMTTemplateOutputC_somDispatchD(somId methodId, 
  1100.         somId descriptor, 
  1101.         va_list ap)
  1102. {return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchD)
  1103.     (this,methodId,descriptor,ap);
  1104. }
  1105.  
  1106. /* the varargs invocation form */
  1107. double   somDispatchD(somId methodId, 
  1108.         somId descriptor, 
  1109.         ...)
  1110. {
  1111. /*
  1112.  *  Obsolete. Use somDispatch instead.
  1113.  */
  1114.    va_list ap;
  1115.    va_start(ap, descriptor);
  1116.    double __somResult = 
  1117.       SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDispatchD)
  1118.     (this,methodId,descriptor,ap);
  1119.    va_end(ap);
  1120.    return __somResult;
  1121. }
  1122.  
  1123.  
  1124. /* method: somPrintSelf */
  1125. SOMObject*   somPrintSelf()
  1126. {
  1127. /*
  1128.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  1129.  *  information about this object.  The default implementation just gives
  1130.  *  the object's class name and its address in memory.
  1131.  *  <self> is returned.
  1132.  */
  1133.    return SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somPrintSelf)
  1134.     (this);
  1135. }
  1136.  
  1137.  
  1138. /* method: somDumpSelf */
  1139. void   somDumpSelf(long level)
  1140. {
  1141. /*
  1142.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  1143.  *  and its current state.
  1144.  * 
  1145.  *  <level> indicates the nesting level for describing compound objects
  1146.  *  it must be greater than or equal to zero.  All lines in the
  1147.  *  description will be preceeded by <2*level> spaces.
  1148.  * 
  1149.  *  This routine only actually writes the data that concerns the object
  1150.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  1151.  *  the object's current state.  This approach allows readable
  1152.  *  descriptions of compound objects to be constructed.
  1153.  * 
  1154.  *  Generally it is not necessary to override this method, if it is
  1155.  *  overriden it generally must be completely replaced.
  1156.  */
  1157.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDumpSelf)
  1158.     (this,level);
  1159. }
  1160.  
  1161.  
  1162. /* method: somDumpSelfInt */
  1163. void   somDumpSelfInt(long level)
  1164. {
  1165. /*
  1166.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  1167.  *  Generally this method will need to be overridden.  When overriding
  1168.  *  it, begin by calling the parent class form of this method and then
  1169.  *  write in a description of your class's instance data. This will
  1170.  *  result in a description of all the object's instance data going
  1171.  *  from its root ancestor class to its specific class.
  1172.  */
  1173.    SOM_ResolveD(this,SOMTTemplateOutputC,SOMObject,somDumpSelfInt)
  1174.     (this,level);
  1175. }
  1176.  
  1177.  
  1178.  
  1179. };   /* SOMTTemplateOutputC */
  1180.  
  1181.  
  1182.  
  1183. #endif       /* SOM_SOMTTemplateOutputC_xh */
  1184.