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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somstrt.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.  * 
  22.  */
  23.  
  24.  
  25. #ifndef SOM_SOMStringTableC_xh
  26. #define SOM_SOMStringTableC_xh
  27.  
  28. class SOMStringTableC;
  29.  
  30. /*
  31.  *  Objects of the SOMStringTableC class are symbol tables that map null
  32.  *  terminated strings to null terminated strings.  While any instance
  33.  *  of this class can hold an indefinite number of sysbols, performance
  34.  *  will be inproved if the instance is created with an appropriate
  35.  *  maximum target capacity.
  36.  */
  37.  
  38. #define SOMStringTableC_MajorVersion 2
  39. #define SOMStringTableC_MinorVersion 1
  40.  
  41. /* C++ SOM defs */
  42. #include <somcls.xh>
  43. #include <somcm.xh>
  44.  
  45. /* C++ parent defs */
  46. #ifndef SOM_SOMObject_xh
  47. #include <somobj.xh>
  48. #endif
  49.  
  50. #ifndef SOMStringTableC_API
  51. #define SOMStringTableC_API
  52. /*
  53.  * -- The Class API
  54.  */
  55.  
  56. /*
  57.  * Start of bindings for IDL types
  58.  */
  59.  
  60. class SOMClass;
  61. class SOMObject;
  62.  
  63. /*
  64.  * End of bindings for IDL types.
  65.  */
  66.  
  67. /* A procedure to create the SOMStringTableC Class */
  68. SOMEXTERN SOMClass * SOMLINK SOMStringTableCNewClass(
  69.         integer4 majorVersion,
  70.         integer4 minorVersion);
  71.  
  72. /* The API to the SOMStringTableC class object, and the methods it introduces. */
  73. SOMEXTERN struct SOMStringTableCClassDataStructure {
  74.     SOMClass *classObject;
  75.     somMToken _get_somstTargetCapacity;
  76.     somMToken _set_somstTargetCapacity;
  77.     somMToken _get_somstAssociationsCount;
  78.     somMToken somstAssociate;
  79.     somMToken somstAssociateCopyKey;
  80.     somMToken somstAssociateCopyValue;
  81.     somMToken somstAssociateCopyBoth;
  82.     somMToken somstGetAssociation;
  83.     somMToken somstClearAssociation;
  84.     somMToken somstGetIthKey;
  85.     somMToken somstGetIthValue;
  86. } SOMDLINK SOMStringTableCClassData;
  87. #define _SOMStringTableC SOMStringTableCClassData.classObject
  88.  
  89. /* The API to parentMtabs for SOMStringTableC, and the instance data it introduces. */
  90. SOMEXTERN struct SOMStringTableCCClassDataStructure {
  91.     somMethodTabs parentMtab;
  92.     somDToken              instanceDataToken;
  93. } SOMDLINK SOMStringTableCCClassData;
  94.  
  95. /*
  96.  * -- Typedefs for SOMStringTableC Method Procedures
  97.  */
  98. SOMEXTERN {
  99. typedef unsigned long   SOMLINK somTP_SOMStringTableC__get_somstTargetCapacity(SOMStringTableC *somSelf);
  100. typedef somTP_SOMStringTableC__get_somstTargetCapacity *somTD_SOMStringTableC__get_somstTargetCapacity;
  101. typedef void   SOMLINK somTP_SOMStringTableC__set_somstTargetCapacity(SOMStringTableC *somSelf, 
  102.         unsigned long somstTargetCapacity);
  103. typedef somTP_SOMStringTableC__set_somstTargetCapacity *somTD_SOMStringTableC__set_somstTargetCapacity;
  104. typedef unsigned long   SOMLINK somTP_SOMStringTableC__get_somstAssociationsCount(SOMStringTableC *somSelf);
  105. typedef somTP_SOMStringTableC__get_somstAssociationsCount *somTD_SOMStringTableC__get_somstAssociationsCount;
  106. typedef short   SOMLINK somTP_SOMStringTableC_somstAssociate(SOMStringTableC *somSelf, 
  107.         string key, 
  108.         string value);
  109. typedef somTP_SOMStringTableC_somstAssociate *somTD_SOMStringTableC_somstAssociate;
  110. typedef short   SOMLINK somTP_SOMStringTableC_somstAssociateCopyKey(SOMStringTableC *somSelf, 
  111.         string key, 
  112.         string value);
  113. typedef somTP_SOMStringTableC_somstAssociateCopyKey *somTD_SOMStringTableC_somstAssociateCopyKey;
  114. typedef short   SOMLINK somTP_SOMStringTableC_somstAssociateCopyValue(SOMStringTableC *somSelf, 
  115.         string key, 
  116.         string value);
  117. typedef somTP_SOMStringTableC_somstAssociateCopyValue *somTD_SOMStringTableC_somstAssociateCopyValue;
  118. typedef short   SOMLINK somTP_SOMStringTableC_somstAssociateCopyBoth(SOMStringTableC *somSelf, 
  119.         string key, 
  120.         string value);
  121. typedef somTP_SOMStringTableC_somstAssociateCopyBoth *somTD_SOMStringTableC_somstAssociateCopyBoth;
  122. typedef string   SOMLINK somTP_SOMStringTableC_somstGetAssociation(SOMStringTableC *somSelf, 
  123.         string key);
  124. typedef somTP_SOMStringTableC_somstGetAssociation *somTD_SOMStringTableC_somstGetAssociation;
  125. typedef boolean   SOMLINK somTP_SOMStringTableC_somstClearAssociation(SOMStringTableC *somSelf, 
  126.         string key);
  127. typedef somTP_SOMStringTableC_somstClearAssociation *somTD_SOMStringTableC_somstClearAssociation;
  128. typedef string   SOMLINK somTP_SOMStringTableC_somstGetIthKey(SOMStringTableC *somSelf, 
  129.         unsigned long i);
  130. typedef somTP_SOMStringTableC_somstGetIthKey *somTD_SOMStringTableC_somstGetIthKey;
  131. typedef string   SOMLINK somTP_SOMStringTableC_somstGetIthValue(SOMStringTableC *somSelf, 
  132.         unsigned long i);
  133. typedef somTP_SOMStringTableC_somstGetIthValue *somTD_SOMStringTableC_somstGetIthValue;
  134.  
  135. /*
  136.  * -- Typedefs for Reintroduced Wrapper Methods
  137.  */
  138. typedef void   SOMLINK somTP_SOMStringTableC_somDefaultInit(SOMStringTableC *somSelf, 
  139.         som3InitCtrl* ctrl);
  140. typedef somTP_SOMStringTableC_somDefaultInit *somTD_SOMStringTableC_somDefaultInit;
  141. typedef void   SOMLINK somTP_SOMStringTableC_somDestruct(SOMStringTableC *somSelf, 
  142.         octet doFree, 
  143.         som3DestructCtrl* ctrl);
  144. typedef somTP_SOMStringTableC_somDestruct *somTD_SOMStringTableC_somDestruct;
  145. typedef void   SOMLINK somTP_SOMStringTableC_somDefaultCopyInit(SOMStringTableC *somSelf, 
  146.         som3InitCtrl* ctrl, 
  147.         SOMObject* fromObj);
  148. typedef somTP_SOMStringTableC_somDefaultCopyInit *somTD_SOMStringTableC_somDefaultCopyInit;
  149. typedef SOMStringTableC*   SOMLINK somTP_SOMStringTableC_somDefaultAssign(SOMStringTableC *somSelf, 
  150.         som3AssignCtrl* ctrl, 
  151.         SOMObject* fromObj);
  152. typedef somTP_SOMStringTableC_somDefaultAssign *somTD_SOMStringTableC_somDefaultAssign;
  153. typedef void   SOMLINK somTP_SOMStringTableC_somDefaultConstCopyInit(SOMStringTableC *somSelf, 
  154.         som3InitCtrl* ctrl, 
  155.         SOMObject* fromObj);
  156. typedef somTP_SOMStringTableC_somDefaultConstCopyInit *somTD_SOMStringTableC_somDefaultConstCopyInit;
  157. typedef void   SOMLINK somTP_SOMStringTableC_somDefaultVCopyInit(SOMStringTableC *somSelf, 
  158.         som3InitCtrl* ctrl, 
  159.         SOMObject* fromObj);
  160. typedef somTP_SOMStringTableC_somDefaultVCopyInit *somTD_SOMStringTableC_somDefaultVCopyInit;
  161. typedef void   SOMLINK somTP_SOMStringTableC_somDefaultConstVCopyInit(SOMStringTableC *somSelf, 
  162.         som3InitCtrl* ctrl, 
  163.         SOMObject* fromObj);
  164. typedef somTP_SOMStringTableC_somDefaultConstVCopyInit *somTD_SOMStringTableC_somDefaultConstVCopyInit;
  165. typedef SOMStringTableC*   SOMLINK somTP_SOMStringTableC_somDefaultConstAssign(SOMStringTableC *somSelf, 
  166.         som3AssignCtrl* ctrl, 
  167.         SOMObject* fromObj);
  168. typedef somTP_SOMStringTableC_somDefaultConstAssign *somTD_SOMStringTableC_somDefaultConstAssign;
  169. typedef SOMStringTableC*   SOMLINK somTP_SOMStringTableC_somDefaultVAssign(SOMStringTableC *somSelf, 
  170.         som3AssignCtrl* ctrl, 
  171.         SOMObject* fromObj);
  172. typedef somTP_SOMStringTableC_somDefaultVAssign *somTD_SOMStringTableC_somDefaultVAssign;
  173. typedef SOMStringTableC*   SOMLINK somTP_SOMStringTableC_somDefaultConstVAssign(SOMStringTableC *somSelf, 
  174.         som3AssignCtrl* ctrl, 
  175.         SOMObject* fromObj);
  176. typedef somTP_SOMStringTableC_somDefaultConstVAssign *somTD_SOMStringTableC_somDefaultConstVAssign;
  177. typedef void   SOMLINK somTP_SOMStringTableC_somInit(SOMStringTableC *somSelf);
  178. typedef somTP_SOMStringTableC_somInit *somTD_SOMStringTableC_somInit;
  179. typedef void   SOMLINK somTP_SOMStringTableC_somFree(SOMStringTableC *somSelf);
  180. typedef somTP_SOMStringTableC_somFree *somTD_SOMStringTableC_somFree;
  181. typedef void   SOMLINK somTP_SOMStringTableC_somUninit(SOMStringTableC *somSelf);
  182. typedef somTP_SOMStringTableC_somUninit *somTD_SOMStringTableC_somUninit;
  183. typedef SOMClass*   SOMLINK somTP_SOMStringTableC_somGetClass(SOMStringTableC *somSelf);
  184. typedef somTP_SOMStringTableC_somGetClass *somTD_SOMStringTableC_somGetClass;
  185. typedef string   SOMLINK somTP_SOMStringTableC_somGetClassName(SOMStringTableC *somSelf);
  186. typedef somTP_SOMStringTableC_somGetClassName *somTD_SOMStringTableC_somGetClassName;
  187. typedef long   SOMLINK somTP_SOMStringTableC_somGetSize(SOMStringTableC *somSelf);
  188. typedef somTP_SOMStringTableC_somGetSize *somTD_SOMStringTableC_somGetSize;
  189. typedef boolean   SOMLINK somTP_SOMStringTableC_somIsA(SOMStringTableC *somSelf, 
  190.         SOMClass* aClassObj);
  191. typedef somTP_SOMStringTableC_somIsA *somTD_SOMStringTableC_somIsA;
  192. typedef boolean   SOMLINK somTP_SOMStringTableC_somIsInstanceOf(SOMStringTableC *somSelf, 
  193.         SOMClass* aClassObj);
  194. typedef somTP_SOMStringTableC_somIsInstanceOf *somTD_SOMStringTableC_somIsInstanceOf;
  195. typedef boolean   SOMLINK somTP_SOMStringTableC_somRespondsTo(SOMStringTableC *somSelf, 
  196.         somId mId);
  197. typedef somTP_SOMStringTableC_somRespondsTo *somTD_SOMStringTableC_somRespondsTo;
  198. typedef boolean   SOMLINK somTP_SOMStringTableC_somDispatch(SOMStringTableC *somSelf, 
  199.         somToken* retValue, 
  200.         somId methodId, 
  201.         va_list ap);
  202. typedef somTP_SOMStringTableC_somDispatch *somTD_SOMStringTableC_somDispatch;
  203. typedef boolean   SOMLINK somTP_SOMStringTableC_somClassDispatch(SOMStringTableC *somSelf, 
  204.         SOMClass* clsObj, 
  205.         somToken* retValue, 
  206.         somId methodId, 
  207.         va_list ap);
  208. typedef somTP_SOMStringTableC_somClassDispatch *somTD_SOMStringTableC_somClassDispatch;
  209. typedef boolean   SOMLINK somTP_SOMStringTableC_somCastObj(SOMStringTableC *somSelf, 
  210.         SOMClass* cls);
  211. typedef somTP_SOMStringTableC_somCastObj *somTD_SOMStringTableC_somCastObj;
  212. typedef boolean   SOMLINK somTP_SOMStringTableC_somResetObj(SOMStringTableC *somSelf);
  213. typedef somTP_SOMStringTableC_somResetObj *somTD_SOMStringTableC_somResetObj;
  214. typedef void   SOMLINK somTP_SOMStringTableC_somDispatchV(SOMStringTableC *somSelf, 
  215.         somId methodId, 
  216.         somId descriptor, 
  217.         va_list ap);
  218. typedef somTP_SOMStringTableC_somDispatchV *somTD_SOMStringTableC_somDispatchV;
  219. typedef long   SOMLINK somTP_SOMStringTableC_somDispatchL(SOMStringTableC *somSelf, 
  220.         somId methodId, 
  221.         somId descriptor, 
  222.         va_list ap);
  223. typedef somTP_SOMStringTableC_somDispatchL *somTD_SOMStringTableC_somDispatchL;
  224. typedef void*   SOMLINK somTP_SOMStringTableC_somDispatchA(SOMStringTableC *somSelf, 
  225.         somId methodId, 
  226.         somId descriptor, 
  227.         va_list ap);
  228. typedef somTP_SOMStringTableC_somDispatchA *somTD_SOMStringTableC_somDispatchA;
  229. typedef double   SOMLINK somTP_SOMStringTableC_somDispatchD(SOMStringTableC *somSelf, 
  230.         somId methodId, 
  231.         somId descriptor, 
  232.         va_list ap);
  233. typedef somTP_SOMStringTableC_somDispatchD *somTD_SOMStringTableC_somDispatchD;
  234. typedef SOMObject*   SOMLINK somTP_SOMStringTableC_somPrintSelf(SOMStringTableC *somSelf);
  235. typedef somTP_SOMStringTableC_somPrintSelf *somTD_SOMStringTableC_somPrintSelf;
  236. typedef void   SOMLINK somTP_SOMStringTableC_somDumpSelf(SOMStringTableC *somSelf, 
  237.         long level);
  238. typedef somTP_SOMStringTableC_somDumpSelf *somTD_SOMStringTableC_somDumpSelf;
  239. typedef void   SOMLINK somTP_SOMStringTableC_somDumpSelfInt(SOMStringTableC *somSelf, 
  240.         long level);
  241. typedef somTP_SOMStringTableC_somDumpSelfInt *somTD_SOMStringTableC_somDumpSelfInt;
  242. }
  243.  
  244. #endif /* SOMStringTableC_API */
  245.  
  246.  
  247. /*
  248.  * -- This emitter treats Method Tokens as Thunks by default.
  249.  * -- Use the sc modifier "nothunks" to change this default
  250.  */
  251. #undef somresolve_
  252. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  253.  
  254. /*
  255.  * -- The C++ Wrapper Class for SOMStringTableC
  256.  */
  257. class SOMStringTableC : public SOMObject
  258. {
  259. /*
  260.  *  Objects of the SOMStringTableC class are symbol tables that map null
  261.  *  terminated strings to null terminated strings.  While any instance
  262.  *  of this class can hold an indefinite number of sysbols, performance
  263.  *  will be inproved if the instance is created with an appropriate
  264.  *  maximum target capacity.
  265.  */
  266. public:
  267.  
  268. // SOMStringTableC::new creates the class object if necessary, and then uses somNewNoInit
  269. // to allocate memory and create the object. Initialization is in ctors.
  270. void *operator new(size_t)
  271. {
  272.    if (!_SOMStringTableC) SOMStringTableCNewClass(SOMStringTableC_MajorVersion,SOMStringTableC_MinorVersion);
  273.    return (void*)
  274.       SOM_Resolve(_SOMStringTableC,SOMClass,somNewNoInit)
  275.          ((SOMClass *)((void*)_SOMStringTableC));
  276. }
  277.  
  278. // SOMStringTableC::delete uses somDestruct.
  279. void operator delete(void * obj)
  280. {
  281.    if (obj && *(void**)obj) {
  282.       SOM_Resolve(obj,SOMObject,somFree)
  283.          ((SOMObject*)obj);
  284.    }
  285. }
  286.  
  287. SOMStringTableC& operator=(SOMStringTableC& fromObj)
  288. {
  289.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  290.    return *this;
  291. }
  292.  
  293. SOMStringTableC()
  294. {
  295.    if (*(void**)this != 
  296.        ((somParentMtabStructPtr)
  297.         (SOMStringTableCCClassData.parentMtab))->mtab)
  298.       return;
  299.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  300. }
  301.  
  302. SOMStringTableC(SOMStringTableC* fromObj)
  303. {
  304.    if (*(void**)this != 
  305.        ((somParentMtabStructPtr)
  306.         (SOMStringTableCCClassData.parentMtab))->mtab)
  307.       return;
  308.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  309. }
  310.  
  311. #ifdef __IBMCPP__
  312. #pragma info(nocnv,nopar)
  313. #endif
  314. SOMStringTableC(const SOMStringTableC* fromObj)
  315. {
  316.    if (*(void**)this != 
  317.        ((somParentMtabStructPtr)
  318.         (SOMStringTableCCClassData.parentMtab))->mtab)
  319.       return;
  320.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  321. }
  322. #ifdef __IBMCPP__
  323. #pragma info(restore)
  324. #endif
  325.  
  326.  
  327. /* method: _get_somstTargetCapacity */
  328. unsigned long   _get_somstTargetCapacity()
  329. {
  330. /*
  331.  *  The expected maximum number of associations for this table.
  332.  *  Accuracy can result in improved performance.  A low target may
  333.  *  result in some storage saving, but at the cost of performance.
  334.  *  Note: this attribute must be set before any strings are added to
  335.  *  the string table or it will not be setable.
  336.  */
  337.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,_get_somstTargetCapacity)
  338.     (this);
  339. }
  340.  
  341.  
  342. /* method: _set_somstTargetCapacity */
  343. void   _set_somstTargetCapacity(unsigned long somstTargetCapacity)
  344. {
  345. /*
  346.  *  The expected maximum number of associations for this table.
  347.  *  Accuracy can result in improved performance.  A low target may
  348.  *  result in some storage saving, but at the cost of performance.
  349.  *  Note: this attribute must be set before any strings are added to
  350.  *  the string table or it will not be setable.
  351.  */
  352.    SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,_set_somstTargetCapacity)
  353.     (this,somstTargetCapacity);
  354. }
  355.  
  356.  
  357. /* method: _get_somstAssociationsCount */
  358. unsigned long   _get_somstAssociationsCount()
  359. {
  360. /*
  361.  *  The number of associations currently in this table
  362.  */
  363.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,_get_somstAssociationsCount)
  364.     (this);
  365. }
  366.  
  367.  
  368. /* method: somstAssociate */
  369. short   somstAssociate(string key, 
  370.         string value)
  371. {
  372. /*
  373.  *  Associates <key> and <value>.  After this call, whenever <key> is
  374.  *  lookedup, <value> will be returned.
  375.  *  Zero will be returned if the association cannot be accomplished
  376.  *  (<key> is null, or memory is not available), -1 will be returned
  377.  *  if the association suceeds, but <key> had a previous association,
  378.  *  and 1 is returned if the association suceeds and <key> had no
  379.  *  previous association.
  380.  *  Note: the string table takes over ownership of both <key> and
  381.  *  <value>.
  382.  */
  383.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstAssociate)
  384.     (this,key,value);
  385. }
  386.  
  387.  
  388. /* method: somstAssociateCopyKey */
  389. short   somstAssociateCopyKey(string key, 
  390.         string value)
  391. {
  392. /*
  393.  *  Same as <somstAssociate> except don't take ownership of <key>.
  394.  */
  395.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstAssociateCopyKey)
  396.     (this,key,value);
  397. }
  398.  
  399.  
  400. /* method: somstAssociateCopyValue */
  401. short   somstAssociateCopyValue(string key, 
  402.         string value)
  403. {
  404. /*
  405.  *  Same as <somstAssociate> except don't take ownership of <value>.
  406.  */
  407.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstAssociateCopyValue)
  408.     (this,key,value);
  409. }
  410.  
  411.  
  412. /* method: somstAssociateCopyBoth */
  413. short   somstAssociateCopyBoth(string key, 
  414.         string value)
  415. {
  416. /*
  417.  *  Same as <somstAssociate> except don't take ownership of <key> or
  418.  *  <value>.
  419.  */
  420.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstAssociateCopyBoth)
  421.     (this,key,value);
  422. }
  423.  
  424.  
  425. /* method: somstGetAssociation */
  426. string   somstGetAssociation(string key)
  427. {
  428. /*
  429.  *  The string associated with <key> is returned if there is one and
  430.  *  NULL is returned if <key> has no association.
  431.  *  The string table will maintain ownership of any returned value.
  432.  */
  433.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstGetAssociation)
  434.     (this,key);
  435. }
  436.  
  437.  
  438. /* method: somstClearAssociation */
  439. boolean   somstClearAssociation(string key)
  440. {
  441. /*
  442.  *  The association for <key>, if any, is removed.
  443.  *  1 is returned if <key> had an association, and 0 is returned if
  444.  *  it did not.
  445.  */
  446.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstClearAssociation)
  447.     (this,key);
  448. }
  449.  
  450.  
  451. /* method: somstGetIthKey */
  452. string   somstGetIthKey(unsigned long i)
  453. {
  454. /*
  455.  *  Returns the key part of the <i> association in this string table
  456.  *  if there is one and null otherwise.
  457.  *  The order of associations in a string table is not specified, but
  458.  *  will not change unless changes are made in the table.
  459.  *  Ownership of the key is retained, the pointer returned is valid
  460.  *  until any changes are made in the table.
  461.  */
  462.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstGetIthKey)
  463.     (this,i);
  464. }
  465.  
  466.  
  467. /* method: somstGetIthValue */
  468. string   somstGetIthValue(unsigned long i)
  469. {
  470. /*
  471.  *  Returns the value part of the <i> association in this string table
  472.  *  if there is one and null otherwise.
  473.  *  The order of associations in a string table is not specified, but
  474.  *  will not change unless changes are made in the table.
  475.  *  Ownership of the value is retained, the pointer returned is valid
  476.  *  until any changes are made in the table.
  477.  */
  478.    return SOM_ResolveD(this,SOMStringTableC,SOMStringTableC,somstGetIthValue)
  479.     (this,i);
  480. }
  481.  
  482.  
  483. /*
  484.  * Reintroduce inherited methods
  485.  */
  486.  
  487. /* initializer method: somDefaultInit */
  488. void   somDefaultInit(som3InitCtrl* ctrl)
  489. {
  490. /*
  491.  *  A default initializer for a SOM object. Passing a null ctrl
  492.  *  indicates to the receiver that its class is the class of the
  493.  *  object being initialized, whereby the initializer will determine
  494.  *  an appropriate control structure.
  495.  */
  496.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultInit)
  497.     (this,ctrl);
  498. }
  499.  
  500.  
  501. /* method: somDestruct */
  502. void   somDestruct(octet doFree, 
  503.         som3DestructCtrl* ctrl)
  504. {
  505. /*
  506.  *  The default destructor for a SOM object. A nonzero <doFree>
  507.  *  indicates that the object storage should be freed by the
  508.  *  object's class (via somDeallocate) after uninitialization.
  509.  *  As with somDefaultInit, a null ctrl can be passed.
  510.  */
  511.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDestruct)
  512.     (this,doFree,ctrl);
  513. }
  514.  
  515.  
  516. /* initializer method: somDefaultCopyInit */
  517. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  518.         SOMObject* fromObj)
  519. {
  520. /*
  521.  *  A default copy constructor. Use this to make copies of objects for
  522.  *  calling methods with "by-value" argument semantics.
  523.  */
  524.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultCopyInit)
  525.     (this,ctrl,fromObj);
  526. }
  527.  
  528.  
  529. /* method: somDefaultAssign */
  530. SOMStringTableC*  somDefaultAssign(som3AssignCtrl* ctrl, 
  531.         SOMObject* fromObj)
  532. {
  533. /*
  534.  *  A default assignment operator. Use this to "assign" the state of one
  535.  *  object to another.
  536.  */
  537.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultAssign)
  538.     (this,ctrl,fromObj);
  539. }
  540.  
  541.  
  542. /* initializer method: somDefaultConstCopyInit */
  543. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  544.         SOMObject* fromObj)
  545. {
  546. /*
  547.  *  A default copy constructor that uses a const fromObj.
  548.  */
  549.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultConstCopyInit)
  550.     (this,ctrl,fromObj);
  551. }
  552.  
  553.  
  554. /* initializer method: somDefaultVCopyInit */
  555. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  556.         SOMObject* fromObj)
  557. {
  558. /*
  559.  *  A default copy constructor that uses a volatile fromObj.
  560.  */
  561.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultVCopyInit)
  562.     (this,ctrl,fromObj);
  563. }
  564.  
  565.  
  566. /* initializer method: somDefaultConstVCopyInit */
  567. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  568.         SOMObject* fromObj)
  569. {
  570. /*
  571.  *  A default copy constructor that uses a const volatile fromObj.
  572.  */
  573.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultConstVCopyInit)
  574.     (this,ctrl,fromObj);
  575. }
  576.  
  577.  
  578. /* method: somDefaultConstAssign */
  579. SOMStringTableC*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  580.         SOMObject* fromObj)
  581. {
  582. /*
  583.  *  A default assignment operator that uses a const fromObj.
  584.  */
  585.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultConstAssign)
  586.     (this,ctrl,fromObj);
  587. }
  588.  
  589.  
  590. /* method: somDefaultVAssign */
  591. SOMStringTableC*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  592.         SOMObject* fromObj)
  593. {
  594. /*
  595.  *  A default assignment operator that uses a volatile fromObj.
  596.  */
  597.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultVAssign)
  598.     (this,ctrl,fromObj);
  599. }
  600.  
  601.  
  602. /* method: somDefaultConstVAssign */
  603. SOMStringTableC*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  604.         SOMObject* fromObj)
  605. {
  606. /*
  607.  *  A default assignment operator that uses a const volatile fromObj.
  608.  */
  609.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDefaultConstVAssign)
  610.     (this,ctrl,fromObj);
  611. }
  612.  
  613.  
  614. /* method: somInit */
  615. void   somInit()
  616. {
  617. /*
  618.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  619.  */
  620.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somInit)
  621.     (this);
  622. }
  623.  
  624.  
  625. /* method: somFree */
  626. void   somFree()
  627. {
  628. /*
  629.  *  Use as directed by framework implementations.
  630.  */
  631.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somFree)
  632.     (this);
  633. }
  634.  
  635.  
  636. /* method: somUninit */
  637. void   somUninit()
  638. {
  639. /*
  640.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  641.  */
  642.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somUninit)
  643.     (this);
  644. }
  645.  
  646.  
  647. /* method: somGetClass */
  648. SOMClass*   somGetClass()
  649. {
  650. /*
  651.  *  Return the receiver's class.
  652.  */
  653.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somGetClass)
  654.     (this);
  655. }
  656.  
  657.  
  658. /* method: somGetClassName */
  659. string   somGetClassName()
  660. {
  661. /*
  662.  *  Return the name of the receiver's class.
  663.  */
  664.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somGetClassName)
  665.     (this);
  666. }
  667.  
  668.  
  669. /* method: somGetSize */
  670. long   somGetSize()
  671. {
  672. /*
  673.  *  Return the size of the receiver.
  674.  */
  675.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somGetSize)
  676.     (this);
  677. }
  678.  
  679.  
  680. /* method: somIsA */
  681. boolean   somIsA(SOMClass* aClassObj)
  682. {
  683. /*
  684.  *  Returns 1 (true) if the receiver responds to methods
  685.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  686.  */
  687.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somIsA)
  688.     (this,aClassObj);
  689. }
  690.  
  691.  
  692. /* method: somIsInstanceOf */
  693. boolean   somIsInstanceOf(SOMClass* aClassObj)
  694. {
  695. /*
  696.  *  Returns 1 (true) if the receiver is an instance of
  697.  *  <aClassObj> and 0 (false) otherwise.
  698.  */
  699.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somIsInstanceOf)
  700.     (this,aClassObj);
  701. }
  702.  
  703.  
  704. /* method: somRespondsTo */
  705. boolean   somRespondsTo(somId mId)
  706. {
  707. /*
  708.  *  Returns 1 (true) if the indicated method can be invoked
  709.  *  on the receiver and 0 (false) otherwise.
  710.  */
  711.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somRespondsTo)
  712.     (this,mId);
  713. }
  714.  
  715.  
  716. /* va_list method: somDispatch */
  717.  
  718. /*
  719.  *  This method provides a generic, class-specific dispatch mechanism.
  720.  *  It accepts as input <retValue> a pointer to the memory area to be
  721.  *  loaded with the result of dispatching the method indicated by
  722.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  723.  *  on which the method is to be invoked as the first argument.
  724.  */
  725. /* the va_list invocation form */
  726. boolean   SOMStringTableC_somDispatch(somToken* retValue, 
  727.         somId methodId, 
  728.         va_list ap)
  729. {return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatch)
  730.     (this,retValue,methodId,ap);
  731. }
  732.  
  733. /* the varargs invocation form */
  734. boolean   somDispatch(somToken* retValue, 
  735.         somId methodId, 
  736.         ...)
  737. {
  738. /*
  739.  *  This method provides a generic, class-specific dispatch mechanism.
  740.  *  It accepts as input <retValue> a pointer to the memory area to be
  741.  *  loaded with the result of dispatching the method indicated by
  742.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  743.  *  on which the method is to be invoked as the first argument.
  744.  */
  745.    va_list ap;
  746.    va_start(ap, methodId);
  747.    boolean __somResult = 
  748.       SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatch)
  749.     (this,retValue,methodId,ap);
  750.    va_end(ap);
  751.    return __somResult;
  752. }
  753.  
  754.  
  755. /* va_list method: somClassDispatch */
  756.  
  757. /*
  758.  *  Like somDispatch, but method resolution for static methods is done
  759.  *  according to the clsObj instance method table.
  760.  */
  761. /* the va_list invocation form */
  762. boolean   SOMStringTableC_somClassDispatch(SOMClass* clsObj, 
  763.         somToken* retValue, 
  764.         somId methodId, 
  765.         va_list ap)
  766. {return SOM_ResolveD(this,SOMStringTableC,SOMObject,somClassDispatch)
  767.     (this,clsObj,retValue,methodId,ap);
  768. }
  769.  
  770. /* the varargs invocation form */
  771. boolean   somClassDispatch(SOMClass* clsObj, 
  772.         somToken* retValue, 
  773.         somId methodId, 
  774.         ...)
  775. {
  776. /*
  777.  *  Like somDispatch, but method resolution for static methods is done
  778.  *  according to the clsObj instance method table.
  779.  */
  780.    va_list ap;
  781.    va_start(ap, methodId);
  782.    boolean __somResult = 
  783.       SOM_ResolveD(this,SOMStringTableC,SOMObject,somClassDispatch)
  784.     (this,clsObj,retValue,methodId,ap);
  785.    va_end(ap);
  786.    return __somResult;
  787. }
  788.  
  789.  
  790. /* method: somCastObj */
  791. boolean   somCastObj(SOMClass* cls)
  792. {
  793. /*
  794.  *  cast the receiving object to cls (which must be an ancestor of the
  795.  *  objects true class. Returns true on success.
  796.  */
  797.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somCastObj)
  798.     (this,cls);
  799. }
  800.  
  801.  
  802. /* method: somResetObj */
  803. boolean   somResetObj()
  804. {
  805. /*
  806.  *  reset an object to its true class. Returns true always.
  807.  */
  808.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somResetObj)
  809.     (this);
  810. }
  811.  
  812.  
  813. /* va_list method: somDispatchV */
  814.  
  815. /*
  816.  *  Obsolete. Use somDispatch instead.
  817.  */
  818. /* the va_list invocation form */
  819. void   SOMStringTableC_somDispatchV(somId methodId, 
  820.         somId descriptor, 
  821.         va_list ap)
  822. {   SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchV)
  823.     (this,methodId,descriptor,ap);
  824. }
  825.  
  826. /* the varargs invocation form */
  827. void   somDispatchV(somId methodId, 
  828.         somId descriptor, 
  829.         ...)
  830. {
  831. /*
  832.  *  Obsolete. Use somDispatch instead.
  833.  */
  834.    va_list ap;
  835.    va_start(ap, descriptor);
  836.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchV)
  837.     (this,methodId,descriptor,ap);
  838.    va_end(ap);
  839. }
  840.  
  841.  
  842. /* va_list method: somDispatchL */
  843.  
  844. /*
  845.  *  Obsolete. Use somDispatch instead.
  846.  */
  847. /* the va_list invocation form */
  848. long   SOMStringTableC_somDispatchL(somId methodId, 
  849.         somId descriptor, 
  850.         va_list ap)
  851. {return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchL)
  852.     (this,methodId,descriptor,ap);
  853. }
  854.  
  855. /* the varargs invocation form */
  856. long   somDispatchL(somId methodId, 
  857.         somId descriptor, 
  858.         ...)
  859. {
  860. /*
  861.  *  Obsolete. Use somDispatch instead.
  862.  */
  863.    va_list ap;
  864.    va_start(ap, descriptor);
  865.    long __somResult = 
  866.       SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchL)
  867.     (this,methodId,descriptor,ap);
  868.    va_end(ap);
  869.    return __somResult;
  870. }
  871.  
  872.  
  873. /* va_list method: somDispatchA */
  874.  
  875. /*
  876.  *  Obsolete. Use somDispatch instead.
  877.  */
  878. /* the va_list invocation form */
  879. void*   SOMStringTableC_somDispatchA(somId methodId, 
  880.         somId descriptor, 
  881.         va_list ap)
  882. {return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchA)
  883.     (this,methodId,descriptor,ap);
  884. }
  885.  
  886. /* the varargs invocation form */
  887. void*   somDispatchA(somId methodId, 
  888.         somId descriptor, 
  889.         ...)
  890. {
  891. /*
  892.  *  Obsolete. Use somDispatch instead.
  893.  */
  894.    va_list ap;
  895.    va_start(ap, descriptor);
  896.    void* __somResult = 
  897.       SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchA)
  898.     (this,methodId,descriptor,ap);
  899.    va_end(ap);
  900.    return __somResult;
  901. }
  902.  
  903.  
  904. /* va_list method: somDispatchD */
  905.  
  906. /*
  907.  *  Obsolete. Use somDispatch instead.
  908.  */
  909. /* the va_list invocation form */
  910. double   SOMStringTableC_somDispatchD(somId methodId, 
  911.         somId descriptor, 
  912.         va_list ap)
  913. {return SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchD)
  914.     (this,methodId,descriptor,ap);
  915. }
  916.  
  917. /* the varargs invocation form */
  918. double   somDispatchD(somId methodId, 
  919.         somId descriptor, 
  920.         ...)
  921. {
  922. /*
  923.  *  Obsolete. Use somDispatch instead.
  924.  */
  925.    va_list ap;
  926.    va_start(ap, descriptor);
  927.    double __somResult = 
  928.       SOM_ResolveD(this,SOMStringTableC,SOMObject,somDispatchD)
  929.     (this,methodId,descriptor,ap);
  930.    va_end(ap);
  931.    return __somResult;
  932. }
  933.  
  934.  
  935. /* method: somPrintSelf */
  936. SOMObject*   somPrintSelf()
  937. {
  938. /*
  939.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  940.  *  information about this object.  The default implementation just gives
  941.  *  the object's class name and its address in memory.
  942.  *  <self> is returned.
  943.  */
  944.    return SOM_ResolveD(this,SOMStringTableC,SOMObject,somPrintSelf)
  945.     (this);
  946. }
  947.  
  948.  
  949. /* method: somDumpSelf */
  950. void   somDumpSelf(long level)
  951. {
  952. /*
  953.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  954.  *  and its current state.
  955.  * 
  956.  *  <level> indicates the nesting level for describing compound objects
  957.  *  it must be greater than or equal to zero.  All lines in the
  958.  *  description will be preceeded by <2*level> spaces.
  959.  * 
  960.  *  This routine only actually writes the data that concerns the object
  961.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  962.  *  the object's current state.  This approach allows readable
  963.  *  descriptions of compound objects to be constructed.
  964.  * 
  965.  *  Generally it is not necessary to override this method, if it is
  966.  *  overriden it generally must be completely replaced.
  967.  */
  968.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDumpSelf)
  969.     (this,level);
  970. }
  971.  
  972.  
  973. /* method: somDumpSelfInt */
  974. void   somDumpSelfInt(long level)
  975. {
  976. /*
  977.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  978.  *  Generally this method will need to be overridden.  When overriding
  979.  *  it, begin by calling the parent class form of this method and then
  980.  *  write in a description of your class's instance data. This will
  981.  *  result in a description of all the object's instance data going
  982.  *  from its root ancestor class to its specific class.
  983.  */
  984.    SOM_ResolveD(this,SOMStringTableC,SOMObject,somDumpSelfInt)
  985.     (this,level);
  986. }
  987.  
  988.  
  989.  
  990. };   /* SOMStringTableC */
  991.  
  992.  
  993.  
  994. #endif       /* SOM_SOMStringTableC_xh */
  995.