home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / thash.h < prev    next >
C/C++ Source or Header  |  1999-02-22  |  32KB  |  812 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: thash.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    COMPONENT_NAME: somuc
  12.  * 
  13.  *    ORIGINS: 82, 81, 27
  14.  * 
  15.  * 
  16.  *     25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,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.  *    Copyright ⌐ 1988, 1989 Apple Computer, Inc. All rights reserved.
  23.  * 
  24.  * CLASS_NAME: somf_THashTable
  25.  * 
  26.  * DESCRIPTION: Every Hash Table has a set of entries which associate a
  27.  *              key to a value.  Hash tables provide for fast lookup of a
  28.  *              value when given a key even if there are a large number of
  29.  *              entries in the table.  Functions are provided for the usual
  30.  *              things (insert, delete, etc.) as well as for controlling when
  31.  *              rehashing will occur, and the growth of the table when a
  32.  *              rehash occurs.
  33.  * 
  34.  */
  35.  
  36.  
  37. #ifndef SOM_somf_THashTable_h
  38. #define SOM_somf_THashTable_h
  39.  
  40.  
  41. #include <som.h>
  42.  
  43. /*
  44.  * -- This emitter treats Method Tokens as Thunks by default.
  45.  * -- Use the sc modifier "nothunks" to change this default
  46.  */
  47. #undef somresolve_
  48. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  49.  
  50. /*
  51.  * Define the class name as an object type
  52.  */
  53. #ifndef somf_THashTable
  54. #define somf_THashTable SOMObject
  55. #endif
  56. #include <mcollect.h>
  57.  
  58. /*
  59.  * Start of bindings for IDL types
  60.  */
  61.  
  62. #ifndef SOMClass
  63.     #define SOMClass SOMObject
  64. #endif /* SOMClass */
  65. #ifndef THAssoc
  66.     #define THAssoc SOMObject
  67. #endif /* THAssoc */
  68. #define somf_THashTable_kDefaultHashTableSize 23 /* 23 */
  69. #define somf_THashTable_kDefaultGrowthRate 20 /* 20 */
  70. #define somf_THashTable_kDefaultRehashThreshold 80 /* 80 */
  71. typedef unsigned long somf_THashTable_ETableClassification;
  72. #define somf_THashTable_kUnchecked 1UL
  73. #define somf_THashTable_kNormal 2UL
  74. #define somf_THashTable_kFast 3UL
  75.  
  76. #ifndef SOM_DONT_USE_SHORT_NAMES
  77. #ifndef SOMTGD_kDefaultHashTableSize
  78.     #ifdef kDefaultHashTableSize
  79.         #undef kDefaultHashTableSize
  80.         #define SOMTGD_kDefaultHashTableSize 1
  81.     #else
  82.         #define kDefaultHashTableSize somf_THashTable_kDefaultHashTableSize
  83.     #endif /* kDefaultHashTableSize */
  84. #endif /* SOMTGD_kDefaultHashTableSize */
  85. #ifndef SOMTGD_kDefaultGrowthRate
  86.     #ifdef kDefaultGrowthRate
  87.         #undef kDefaultGrowthRate
  88.         #define SOMTGD_kDefaultGrowthRate 1
  89.     #else
  90.         #define kDefaultGrowthRate somf_THashTable_kDefaultGrowthRate
  91.     #endif /* kDefaultGrowthRate */
  92. #endif /* SOMTGD_kDefaultGrowthRate */
  93. #ifndef SOMTGD_kDefaultRehashThreshold
  94.     #ifdef kDefaultRehashThreshold
  95.         #undef kDefaultRehashThreshold
  96.         #define SOMTGD_kDefaultRehashThreshold 1
  97.     #else
  98.         #define kDefaultRehashThreshold somf_THashTable_kDefaultRehashThreshold
  99.     #endif /* kDefaultRehashThreshold */
  100. #endif /* SOMTGD_kDefaultRehashThreshold */
  101. #ifndef SOMTGD_ETableClassification
  102.     #ifdef ETableClassification
  103.         #undef ETableClassification
  104.         #define SOMTGD_ETableClassification 1
  105.     #else
  106.         #define ETableClassification somf_THashTable_ETableClassification
  107.     #endif /* ETableClassification */
  108. #endif /* SOMTGD_ETableClassification */
  109. #endif /* SOM_DONT_USE_SHORT_NAMES */
  110.  
  111. /*
  112.  * End of bindings for IDL types.
  113.  */
  114.  
  115. #define somf_THashTable_MajorVersion 2
  116. #define somf_THashTable_MinorVersion 1
  117.  
  118. /*
  119.  * External name shortening if required
  120.  */
  121. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  122. #define somf_THashTableNewClass c
  123. #pragma linkage(c, system)
  124. #define somf_THashTableClassData d
  125. #define somf_THashTableCClassData x
  126. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  127. /*--------------Migration------------*/
  128. #define somf_THashTable_classObj somf_THashTableClassData.classObject
  129. #define _somf_THashTable somf_THashTable_classObj
  130.  
  131. /*
  132.  * Declare the class creation procedure
  133.  */
  134. SOMEXTERN SOMClass * SOMLINK somf_THashTableNewClass(integer4 somtmajorVersion,
  135.         integer4 somtminorVersion);
  136. #pragma linkage(somf_THashTableNewClass, system)
  137.  
  138. /*
  139.  * Declare the class data structure
  140.  */
  141. SOMEXTERN struct somf_THashTableClassDataStructure {
  142.     SOMClass *classObject;
  143.     somMToken somfCount;
  144.     somMToken somfRemove;
  145.     somMToken somfDelete;
  146.     somMToken somfMember;
  147.     somMToken somfRemoveAll;
  148.     somMToken somfDeleteAll;
  149.     somMToken somfDeleteAllKeys;
  150.     somMToken somfDeleteAllValues;
  151.     somMToken somfAddMMB;
  152.     somMToken somfAddMM;
  153.     somMToken somfGrow;
  154.     somMToken somfRetrieve;
  155.     somMToken somfSetGrowthRate;
  156.     somMToken somfSetRehashThreshold;
  157.     somMToken somfGetGrowthRate;
  158.     somMToken somfGetRehashThreshold;
  159.     somMToken somfSetHashFunction;
  160.     somMToken somfGetHashFunction;
  161.     somMToken somfFind;
  162.     somMToken somfMakeNewTable;
  163.     somMToken somfCopyIn;
  164.     somMToken somfAssign;
  165.     somMToken somfTHashTableInitFLLL;
  166.     somMToken somfTHashTableInitFLL;
  167.     somMToken somfTHashTableInitFL;
  168.     somMToken somfTHashTableInitH;
  169. } SOMDLINK somf_THashTableClassData;
  170.  
  171. /*
  172.  * Declare the C specific class data structure
  173.  */
  174. SOMEXTERN struct somf_THashTableCClassDataStructure {
  175.     somMethodTabs parentMtab;
  176.     somDToken instanceDataToken;
  177. } SOMDLINK somf_THashTableCClassData;
  178.  
  179. /*
  180.  * New and Renew macros for somf_THashTable
  181.  */
  182. #define somf_THashTableNew() \
  183.    ( _somf_THashTable ? \
  184.     _somNew(_somf_THashTable) \
  185.     : ( somf_THashTableNewClass(\
  186.         somf_THashTable_MajorVersion, \
  187.         somf_THashTable_MinorVersion),\
  188.        _somNew(_somf_THashTable)))
  189. #define somf_THashTableRenew(buf) \
  190.    ( _somf_THashTable ? \
  191.     _somRenew(_somf_THashTable, buf) \
  192.     : ( somf_THashTableNewClass(\
  193.         somf_THashTable_MajorVersion, \
  194.         somf_THashTable_MinorVersion),\
  195.        _somRenew(_somf_THashTable, buf)))
  196.  
  197. /*
  198.  * Override method: somInit
  199.  */
  200. #define somf_THashTable_somInit(somSelf) \
  201.     SOMObject_somInit(somSelf)
  202.  
  203. /*
  204.  * Override method: somUninit
  205.  */
  206. #define somf_THashTable_somUninit(somSelf) \
  207.     SOMObject_somUninit(somSelf)
  208.  
  209. /*
  210.  * New Method: somfTHashTableInitFLLL
  211.  */
  212. typedef somf_THashTable*   SOMLINK somTP_somf_THashTable_somfTHashTableInitFLLL(somf_THashTable *somSelf, Environment *ev, 
  213.         somf_MCollectible_somf_MCollectibleCompareFn testfn, 
  214.         long tablesize, 
  215.         long rate, 
  216.         long threshold);
  217. #pragma linkage(somTP_somf_THashTable_somfTHashTableInitFLLL, system)
  218. typedef somTP_somf_THashTable_somfTHashTableInitFLLL *somTD_somf_THashTable_somfTHashTableInitFLLL;
  219. /*
  220.  *  Initializes the new hash table.
  221.  */
  222. #define somMD_somf_THashTable_somfTHashTableInitFLLL "::somf_THashTable::somfTHashTableInitFLLL"
  223. #define somf_THashTable_somfTHashTableInitFLLL(somSelf,ev,testfn,tablesize,rate,threshold) \
  224.     (SOM_Resolve(somSelf, somf_THashTable, somfTHashTableInitFLLL) \
  225.     (somSelf,ev,testfn,tablesize,rate,threshold))
  226. #ifndef SOMGD_somfTHashTableInitFLLL
  227.     #if (defined(_somfTHashTableInitFLLL) || defined(__somfTHashTableInitFLLL))
  228.         #undef _somfTHashTableInitFLLL
  229.         #undef __somfTHashTableInitFLLL
  230.         #define SOMGD_somfTHashTableInitFLLL 1
  231.     #else
  232.         #define _somfTHashTableInitFLLL somf_THashTable_somfTHashTableInitFLLL
  233.     #endif /* _somfTHashTableInitFLLL */
  234. #endif /* SOMGD_somfTHashTableInitFLLL */
  235.  
  236. /*
  237.  * New Method: somfTHashTableInitFLL
  238.  */
  239. typedef somf_THashTable*   SOMLINK somTP_somf_THashTable_somfTHashTableInitFLL(somf_THashTable *somSelf, Environment *ev, 
  240.         somf_MCollectible_somf_MCollectibleCompareFn testfn, 
  241.         long tablesize, 
  242.         long rate);
  243. #pragma linkage(somTP_somf_THashTable_somfTHashTableInitFLL, system)
  244. typedef somTP_somf_THashTable_somfTHashTableInitFLL *somTD_somf_THashTable_somfTHashTableInitFLL;
  245. /*
  246.  *  Initializes the new hash table.
  247.  */
  248. #define somMD_somf_THashTable_somfTHashTableInitFLL "::somf_THashTable::somfTHashTableInitFLL"
  249. #define somf_THashTable_somfTHashTableInitFLL(somSelf,ev,testfn,tablesize,rate) \
  250.     (SOM_Resolve(somSelf, somf_THashTable, somfTHashTableInitFLL) \
  251.     (somSelf,ev,testfn,tablesize,rate))
  252. #ifndef SOMGD_somfTHashTableInitFLL
  253.     #if (defined(_somfTHashTableInitFLL) || defined(__somfTHashTableInitFLL))
  254.         #undef _somfTHashTableInitFLL
  255.         #undef __somfTHashTableInitFLL
  256.         #define SOMGD_somfTHashTableInitFLL 1
  257.     #else
  258.         #define _somfTHashTableInitFLL somf_THashTable_somfTHashTableInitFLL
  259.     #endif /* _somfTHashTableInitFLL */
  260. #endif /* SOMGD_somfTHashTableInitFLL */
  261.  
  262. /*
  263.  * New Method: somfTHashTableInitFL
  264.  */
  265. typedef somf_THashTable*   SOMLINK somTP_somf_THashTable_somfTHashTableInitFL(somf_THashTable *somSelf, Environment *ev, 
  266.         somf_MCollectible_somf_MCollectibleCompareFn testfn, 
  267.         long tablesize);
  268. #pragma linkage(somTP_somf_THashTable_somfTHashTableInitFL, system)
  269. typedef somTP_somf_THashTable_somfTHashTableInitFL *somTD_somf_THashTable_somfTHashTableInitFL;
  270. /*
  271.  *  Initializes the new hash table.
  272.  */
  273. #define somMD_somf_THashTable_somfTHashTableInitFL "::somf_THashTable::somfTHashTableInitFL"
  274. #define somf_THashTable_somfTHashTableInitFL(somSelf,ev,testfn,tablesize) \
  275.     (SOM_Resolve(somSelf, somf_THashTable, somfTHashTableInitFL) \
  276.     (somSelf,ev,testfn,tablesize))
  277. #ifndef SOMGD_somfTHashTableInitFL
  278.     #if (defined(_somfTHashTableInitFL) || defined(__somfTHashTableInitFL))
  279.         #undef _somfTHashTableInitFL
  280.         #undef __somfTHashTableInitFL
  281.         #define SOMGD_somfTHashTableInitFL 1
  282.     #else
  283.         #define _somfTHashTableInitFL somf_THashTable_somfTHashTableInitFL
  284.     #endif /* _somfTHashTableInitFL */
  285. #endif /* SOMGD_somfTHashTableInitFL */
  286.  
  287. /*
  288.  * New Method: somfTHashTableInitH
  289.  */
  290. typedef somf_THashTable*   SOMLINK somTP_somf_THashTable_somfTHashTableInitH(somf_THashTable *somSelf, Environment *ev, 
  291.         somf_THashTable* h);
  292. #pragma linkage(somTP_somf_THashTable_somfTHashTableInitH, system)
  293. typedef somTP_somf_THashTable_somfTHashTableInitH *somTD_somf_THashTable_somfTHashTableInitH;
  294. /*
  295.  *  Initializes the new hash table.
  296.  */
  297. #define somMD_somf_THashTable_somfTHashTableInitH "::somf_THashTable::somfTHashTableInitH"
  298. #define somf_THashTable_somfTHashTableInitH(somSelf,ev,h) \
  299.     (SOM_Resolve(somSelf, somf_THashTable, somfTHashTableInitH) \
  300.     (somSelf,ev,h))
  301. #ifndef SOMGD_somfTHashTableInitH
  302.     #if (defined(_somfTHashTableInitH) || defined(__somfTHashTableInitH))
  303.         #undef _somfTHashTableInitH
  304.         #undef __somfTHashTableInitH
  305.         #define SOMGD_somfTHashTableInitH 1
  306.     #else
  307.         #define _somfTHashTableInitH somf_THashTable_somfTHashTableInitH
  308.     #endif /* _somfTHashTableInitH */
  309. #endif /* SOMGD_somfTHashTableInitH */
  310.  
  311. /*
  312.  * New Method: somfAssign
  313.  */
  314. typedef void   SOMLINK somTP_somf_THashTable_somfAssign(somf_THashTable *somSelf, Environment *ev, 
  315.         somf_THashTable* source);
  316. #pragma linkage(somTP_somf_THashTable_somfAssign, system)
  317. typedef somTP_somf_THashTable_somfAssign *somTD_somf_THashTable_somfAssign;
  318. /*
  319.  *  Assign the instance of this equal to the instance of source.
  320.  */
  321. #define somMD_somf_THashTable_somfAssign "::somf_THashTable::somfAssign"
  322. #define somf_THashTable_somfAssign(somSelf,ev,source) \
  323.     (SOM_Resolve(somSelf, somf_THashTable, somfAssign) \
  324.     (somSelf,ev,source))
  325. #ifndef SOMGD_somfAssign
  326.     #if (defined(_somfAssign) || defined(__somfAssign))
  327.         #undef _somfAssign
  328.         #undef __somfAssign
  329.         #define SOMGD_somfAssign 1
  330.     #else
  331.         #define _somfAssign somf_THashTable_somfAssign
  332.     #endif /* _somfAssign */
  333. #endif /* SOMGD_somfAssign */
  334.  
  335. /*
  336.  * New Method: somfCount
  337.  */
  338. typedef long   SOMLINK somTP_somf_THashTable_somfCount(somf_THashTable *somSelf, Environment *ev);
  339. #pragma linkage(somTP_somf_THashTable_somfCount, system)
  340. typedef somTP_somf_THashTable_somfCount *somTD_somf_THashTable_somfCount;
  341. /*
  342.  *  Return the number of objects in this.
  343.  */
  344. #define somMD_somf_THashTable_somfCount "::somf_THashTable::somfCount"
  345. #define somf_THashTable_somfCount(somSelf,ev) \
  346.     (SOM_Resolve(somSelf, somf_THashTable, somfCount) \
  347.     (somSelf,ev))
  348. #ifndef SOMGD_somfCount
  349.     #if (defined(_somfCount) || defined(__somfCount))
  350.         #undef _somfCount
  351.         #undef __somfCount
  352.         #define SOMGD_somfCount 1
  353.     #else
  354.         #define _somfCount somf_THashTable_somfCount
  355.     #endif /* _somfCount */
  356. #endif /* SOMGD_somfCount */
  357.  
  358. /*
  359.  * New Method: somfRemove
  360.  */
  361. typedef somf_MCollectible*   SOMLINK somTP_somf_THashTable_somfRemove(somf_THashTable *somSelf, Environment *ev, 
  362.         somf_MCollectible* key);
  363. #pragma linkage(somTP_somf_THashTable_somfRemove, system)
  364. typedef somTP_somf_THashTable_somfRemove *somTD_somf_THashTable_somfRemove;
  365. /*
  366.  *  Remove obj from this.  Return the object which was actually removed
  367.  *  (which if you are using an IsSame test function may not be the same
  368.  *  as the object passed in only "equal").
  369.  */
  370. #define somMD_somf_THashTable_somfRemove "::somf_THashTable::somfRemove"
  371. #define somf_THashTable_somfRemove(somSelf,ev,key) \
  372.     (SOM_Resolve(somSelf, somf_THashTable, somfRemove) \
  373.     (somSelf,ev,key))
  374. #ifndef SOMGD_somfRemove
  375.     #if (defined(_somfRemove) || defined(__somfRemove))
  376.         #undef _somfRemove
  377.         #undef __somfRemove
  378.         #define SOMGD_somfRemove 1
  379.     #else
  380.         #define _somfRemove somf_THashTable_somfRemove
  381.     #endif /* _somfRemove */
  382. #endif /* SOMGD_somfRemove */
  383.  
  384. /*
  385.  * New Method: somfDelete
  386.  */
  387. typedef somf_MCollectible*   SOMLINK somTP_somf_THashTable_somfDelete(somf_THashTable *somSelf, Environment *ev, 
  388.         somf_MCollectible* key);
  389. #pragma linkage(somTP_somf_THashTable_somfDelete, system)
  390. typedef somTP_somf_THashTable_somfDelete *somTD_somf_THashTable_somfDelete;
  391. /*
  392.  *  Remove key from this and deallocate the storage that these objects might
  393.  *  have owned (that is, the destructor function is called for each object
  394.  *  in the collection).  Return the object which was actually removed (which
  395.  *  if you are using an IsSame test function may not be the same as the object
  396.  *  passed in only "equal").
  397.  */
  398. #define somMD_somf_THashTable_somfDelete "::somf_THashTable::somfDelete"
  399. #define somf_THashTable_somfDelete(somSelf,ev,key) \
  400.     (SOM_Resolve(somSelf, somf_THashTable, somfDelete) \
  401.     (somSelf,ev,key))
  402. #ifndef SOMGD_somfDelete
  403.     #if (defined(_somfDelete) || defined(__somfDelete))
  404.         #undef _somfDelete
  405.         #undef __somfDelete
  406.         #define SOMGD_somfDelete 1
  407.     #else
  408.         #define _somfDelete somf_THashTable_somfDelete
  409.     #endif /* _somfDelete */
  410. #endif /* SOMGD_somfDelete */
  411.  
  412. /*
  413.  * New Method: somfMember
  414.  */
  415. typedef somf_MCollectible*   SOMLINK somTP_somf_THashTable_somfMember(somf_THashTable *somSelf, Environment *ev, 
  416.         somf_MCollectible* key);
  417. #pragma linkage(somTP_somf_THashTable_somfMember, system)
  418. typedef somTP_somf_THashTable_somfMember *somTD_somf_THashTable_somfMember;
  419. /*
  420.  *  Each object in this is compared to obj using the function testFn.  Return the
  421.  *  object for which testFn returned TRUE.  Return SOMF_NIL if not object was found.
  422.  */
  423. #define somMD_somf_THashTable_somfMember "::somf_THashTable::somfMember"
  424. #define somf_THashTable_somfMember(somSelf,ev,key) \
  425.     (SOM_Resolve(somSelf, somf_THashTable, somfMember) \
  426.     (somSelf,ev,key))
  427. #ifndef SOMGD_somfMember
  428.     #if (defined(_somfMember) || defined(__somfMember))
  429.         #undef _somfMember
  430.         #undef __somfMember
  431.         #define SOMGD_somfMember 1
  432.     #else
  433.         #define _somfMember somf_THashTable_somfMember
  434.     #endif /* _somfMember */
  435. #endif /* SOMGD_somfMember */
  436.  
  437. /*
  438.  * New Method: somfRemoveAll
  439.  */
  440. typedef void   SOMLINK somTP_somf_THashTable_somfRemoveAll(somf_THashTable *somSelf, Environment *ev);
  441. #pragma linkage(somTP_somf_THashTable_somfRemoveAll, system)
  442. typedef somTP_somf_THashTable_somfRemoveAll *somTD_somf_THashTable_somfRemoveAll;
  443. /*
  444.  *  Remove all of the objects from this.
  445.  */
  446. #define somMD_somf_THashTable_somfRemoveAll "::somf_THashTable::somfRemoveAll"
  447. #define somf_THashTable_somfRemoveAll(somSelf,ev) \
  448.     (SOM_Resolve(somSelf, somf_THashTable, somfRemoveAll) \
  449.     (somSelf,ev))
  450. #ifndef SOMGD_somfRemoveAll
  451.     #if (defined(_somfRemoveAll) || defined(__somfRemoveAll))
  452.         #undef _somfRemoveAll
  453.         #undef __somfRemoveAll
  454.         #define SOMGD_somfRemoveAll 1
  455.     #else
  456.         #define _somfRemoveAll somf_THashTable_somfRemoveAll
  457.     #endif /* _somfRemoveAll */
  458. #endif /* SOMGD_somfRemoveAll */
  459.  
  460. /*
  461.  * New Method: somfDeleteAll
  462.  */
  463. typedef void   SOMLINK somTP_somf_THashTable_somfDeleteAll(somf_THashTable *somSelf, Environment *ev);
  464. #pragma linkage(somTP_somf_THashTable_somfDeleteAll, system)
  465. typedef somTP_somf_THashTable_somfDeleteAll *somTD_somf_THashTable_somfDeleteAll;
  466. /*
  467.  *  Remove all of the objects from this and deallocate the storage that these
  468.  *  objects might have owned (that is, the destructor function is called
  469.  *  for each object in the collection).
  470.  */
  471. #define somMD_somf_THashTable_somfDeleteAll "::somf_THashTable::somfDeleteAll"
  472. #define somf_THashTable_somfDeleteAll(somSelf,ev) \
  473.     (SOM_Resolve(somSelf, somf_THashTable, somfDeleteAll) \
  474.     (somSelf,ev))
  475. #ifndef SOMGD_somfDeleteAll
  476.     #if (defined(_somfDeleteAll) || defined(__somfDeleteAll))
  477.         #undef _somfDeleteAll
  478.         #undef __somfDeleteAll
  479.         #define SOMGD_somfDeleteAll 1
  480.     #else
  481.         #define _somfDeleteAll somf_THashTable_somfDeleteAll
  482.     #endif /* _somfDeleteAll */
  483. #endif /* SOMGD_somfDeleteAll */
  484.  
  485. /*
  486.  * New Method: somfDeleteAllKeys
  487.  */
  488. typedef void   SOMLINK somTP_somf_THashTable_somfDeleteAllKeys(somf_THashTable *somSelf, Environment *ev);
  489. #pragma linkage(somTP_somf_THashTable_somfDeleteAllKeys, system)
  490. typedef somTP_somf_THashTable_somfDeleteAllKeys *somTD_somf_THashTable_somfDeleteAllKeys;
  491. /*
  492.  *  Remove all of the keys from this and deallocate the storage that these
  493.  *  objects might have owned (that is, the destructor function is called
  494.  *  for each object in the collection).
  495.  */
  496. #define somMD_somf_THashTable_somfDeleteAllKeys "::somf_THashTable::somfDeleteAllKeys"
  497. #define somf_THashTable_somfDeleteAllKeys(somSelf,ev) \
  498.     (SOM_Resolve(somSelf, somf_THashTable, somfDeleteAllKeys) \
  499.     (somSelf,ev))
  500. #ifndef SOMGD_somfDeleteAllKeys
  501.     #if (defined(_somfDeleteAllKeys) || defined(__somfDeleteAllKeys))
  502.         #undef _somfDeleteAllKeys
  503.         #undef __somfDeleteAllKeys
  504.         #define SOMGD_somfDeleteAllKeys 1
  505.     #else
  506.         #define _somfDeleteAllKeys somf_THashTable_somfDeleteAllKeys
  507.     #endif /* _somfDeleteAllKeys */
  508. #endif /* SOMGD_somfDeleteAllKeys */
  509.  
  510. /*
  511.  * New Method: somfDeleteAllValues
  512.  */
  513. typedef void   SOMLINK somTP_somf_THashTable_somfDeleteAllValues(somf_THashTable *somSelf, Environment *ev);
  514. #pragma linkage(somTP_somf_THashTable_somfDeleteAllValues, system)
  515. typedef somTP_somf_THashTable_somfDeleteAllValues *somTD_somf_THashTable_somfDeleteAllValues;
  516. /*
  517.  *  Remove all of the values from this and deallocate the storage that these
  518.  *  objects might have owned (that is, the destructor function is called
  519.  *  for each object in the collection).
  520.  */
  521. #define somMD_somf_THashTable_somfDeleteAllValues "::somf_THashTable::somfDeleteAllValues"
  522. #define somf_THashTable_somfDeleteAllValues(somSelf,ev) \
  523.     (SOM_Resolve(somSelf, somf_THashTable, somfDeleteAllValues) \
  524.     (somSelf,ev))
  525. #ifndef SOMGD_somfDeleteAllValues
  526.     #if (defined(_somfDeleteAllValues) || defined(__somfDeleteAllValues))
  527.         #undef _somfDeleteAllValues
  528.         #undef __somfDeleteAllValues
  529.         #define SOMGD_somfDeleteAllValues 1
  530.     #else
  531.         #define _somfDeleteAllValues somf_THashTable_somfDeleteAllValues
  532.     #endif /* _somfDeleteAllValues */
  533. #endif /* SOMGD_somfDeleteAllValues */
  534.  
  535. /*
  536.  * New Method: somfAddMMB
  537.  */
  538. typedef somf_MCollectible*   SOMLINK somTP_somf_THashTable_somfAddMMB(somf_THashTable *somSelf, Environment *ev, 
  539.         somf_MCollectible* key, 
  540.         somf_MCollectible* value, 
  541.         boolean replace);
  542. #pragma linkage(somTP_somf_THashTable_somfAddMMB, system)
  543. typedef somTP_somf_THashTable_somfAddMMB *somTD_somf_THashTable_somfAddMMB;
  544. /*
  545.  *  Add key and value to this.  If replace = TRUE, replace a copy if it already
  546.  *  exists.
  547.  */
  548. #define somMD_somf_THashTable_somfAddMMB "::somf_THashTable::somfAddMMB"
  549. #define somf_THashTable_somfAddMMB(somSelf,ev,key,value,replace) \
  550.     (SOM_Resolve(somSelf, somf_THashTable, somfAddMMB) \
  551.     (somSelf,ev,key,value,replace))
  552. #ifndef SOMGD_somfAddMMB
  553.     #if (defined(_somfAddMMB) || defined(__somfAddMMB))
  554.         #undef _somfAddMMB
  555.         #undef __somfAddMMB
  556.         #define SOMGD_somfAddMMB 1
  557.     #else
  558.         #define _somfAddMMB somf_THashTable_somfAddMMB
  559.     #endif /* _somfAddMMB */
  560. #endif /* SOMGD_somfAddMMB */
  561.  
  562. /*
  563.  * New Method: somfAddMM
  564.  */
  565. typedef somf_MCollectible*   SOMLINK somTP_somf_THashTable_somfAddMM(somf_THashTable *somSelf, Environment *ev, 
  566.         somf_MCollectible* key, 
  567.         somf_MCollectible* value);
  568. #pragma linkage(somTP_somf_THashTable_somfAddMM, system)
  569. typedef somTP_somf_THashTable_somfAddMM *somTD_somf_THashTable_somfAddMM;
  570. /*
  571.  *  Add key and value to this.  Replace a copy if it already exists.
  572.  */
  573. #define somMD_somf_THashTable_somfAddMM "::somf_THashTable::somfAddMM"
  574. #define somf_THashTable_somfAddMM(somSelf,ev,key,value) \
  575.     (SOM_Resolve(somSelf, somf_THashTable, somfAddMM) \
  576.     (somSelf,ev,key,value))
  577. #ifndef SOMGD_somfAddMM
  578.     #if (defined(_somfAddMM) || defined(__somfAddMM))
  579.         #undef _somfAddMM
  580.         #undef __somfAddMM
  581.         #define SOMGD_somfAddMM 1
  582.     #else
  583.         #define _somfAddMM somf_THashTable_somfAddMM
  584.     #endif /* _somfAddMM */
  585. #endif /* SOMGD_somfAddMM */
  586.  
  587. /*
  588.  * New Method: somfGrow
  589.  */
  590. typedef void   SOMLINK somTP_somf_THashTable_somfGrow(somf_THashTable *somSelf, Environment *ev);
  591. #pragma linkage(somTP_somf_THashTable_somfGrow, system)
  592. typedef somTP_somf_THashTable_somfGrow *somTD_somf_THashTable_somfGrow;
  593. /*
  594.  *  Grow the Hash Table
  595.  */
  596. #define somMD_somf_THashTable_somfGrow "::somf_THashTable::somfGrow"
  597. #define somf_THashTable_somfGrow(somSelf,ev) \
  598.     (SOM_Resolve(somSelf, somf_THashTable, somfGrow) \
  599.     (somSelf,ev))
  600. #ifndef SOMGD_somfGrow
  601.     #if (defined(_somfGrow) || defined(__somfGrow))
  602.         #undef _somfGrow
  603.         #undef __somfGrow
  604.         #define SOMGD_somfGrow 1
  605.     #else
  606.         #define _somfGrow somf_THashTable_somfGrow
  607.     #endif /* _somfGrow */
  608. #endif /* SOMGD_somfGrow */
  609.  
  610. /*
  611.  * New Method: somfRetrieve
  612.  */
  613. typedef somf_MCollectible*   SOMLINK somTP_somf_THashTable_somfRetrieve(somf_THashTable *somSelf, Environment *ev, 
  614.         somf_MCollectible* key);
  615. #pragma linkage(somTP_somf_THashTable_somfRetrieve, system)
  616. typedef somTP_somf_THashTable_somfRetrieve *somTD_somf_THashTable_somfRetrieve;
  617. /*
  618.  *  Retrieve and return the value associated with key.
  619.  */
  620. #define somMD_somf_THashTable_somfRetrieve "::somf_THashTable::somfRetrieve"
  621. #define somf_THashTable_somfRetrieve(somSelf,ev,key) \
  622.     (SOM_Resolve(somSelf, somf_THashTable, somfRetrieve) \
  623.     (somSelf,ev,key))
  624. #ifndef SOMGD_somfRetrieve
  625.     #if (defined(_somfRetrieve) || defined(__somfRetrieve))
  626.         #undef _somfRetrieve
  627.         #undef __somfRetrieve
  628.         #define SOMGD_somfRetrieve 1
  629.     #else
  630.         #define _somfRetrieve somf_THashTable_somfRetrieve
  631.     #endif /* _somfRetrieve */
  632. #endif /* SOMGD_somfRetrieve */
  633.  
  634. /*
  635.  * New Method: somfSetGrowthRate
  636.  */
  637. typedef void   SOMLINK somTP_somf_THashTable_somfSetGrowthRate(somf_THashTable *somSelf, Environment *ev, 
  638.         long rate);
  639. #pragma linkage(somTP_somf_THashTable_somfSetGrowthRate, system)
  640. typedef somTP_somf_THashTable_somfSetGrowthRate *somTD_somf_THashTable_somfSetGrowthRate;
  641. /*
  642.  *  Set the growth rate of the hash table.
  643.  */
  644. #define somMD_somf_THashTable_somfSetGrowthRate "::somf_THashTable::somfSetGrowthRate"
  645. #define somf_THashTable_somfSetGrowthRate(somSelf,ev,rate) \
  646.     (SOM_Resolve(somSelf, somf_THashTable, somfSetGrowthRate) \
  647.     (somSelf,ev,rate))
  648. #ifndef SOMGD_somfSetGrowthRate
  649.     #if (defined(_somfSetGrowthRate) || defined(__somfSetGrowthRate))
  650.         #undef _somfSetGrowthRate
  651.         #undef __somfSetGrowthRate
  652.         #define SOMGD_somfSetGrowthRate 1
  653.     #else
  654.         #define _somfSetGrowthRate somf_THashTable_somfSetGrowthRate
  655.     #endif /* _somfSetGrowthRate */
  656. #endif /* SOMGD_somfSetGrowthRate */
  657.  
  658. /*
  659.  * New Method: somfSetRehashThreshold
  660.  */
  661. typedef void   SOMLINK somTP_somf_THashTable_somfSetRehashThreshold(somf_THashTable *somSelf, Environment *ev, 
  662.         long threshold);
  663. #pragma linkage(somTP_somf_THashTable_somfSetRehashThreshold, system)
  664. typedef somTP_somf_THashTable_somfSetRehashThreshold *somTD_somf_THashTable_somfSetRehashThreshold;
  665. /*
  666.  *  Set the rehash threshold of the hash table.
  667.  */
  668. #define somMD_somf_THashTable_somfSetRehashThreshold "::somf_THashTable::somfSetRehashThreshold"
  669. #define somf_THashTable_somfSetRehashThreshold(somSelf,ev,threshold) \
  670.     (SOM_Resolve(somSelf, somf_THashTable, somfSetRehashThreshold) \
  671.     (somSelf,ev,threshold))
  672. #ifndef SOMGD_somfSetRehashThreshold
  673.     #if (defined(_somfSetRehashThreshold) || defined(__somfSetRehashThreshold))
  674.         #undef _somfSetRehashThreshold
  675.         #undef __somfSetRehashThreshold
  676.         #define SOMGD_somfSetRehashThreshold 1
  677.     #else
  678.         #define _somfSetRehashThreshold somf_THashTable_somfSetRehashThreshold
  679.     #endif /* _somfSetRehashThreshold */
  680. #endif /* SOMGD_somfSetRehashThreshold */
  681.  
  682. /*
  683.  * New Method: somfGetGrowthRate
  684.  */
  685. typedef long   SOMLINK somTP_somf_THashTable_somfGetGrowthRate(somf_THashTable *somSelf, Environment *ev);
  686. #pragma linkage(somTP_somf_THashTable_somfGetGrowthRate, system)
  687. typedef somTP_somf_THashTable_somfGetGrowthRate *somTD_somf_THashTable_somfGetGrowthRate;
  688. /*
  689.  *  Return the growth rate of the hash table.
  690.  */
  691. #define somMD_somf_THashTable_somfGetGrowthRate "::somf_THashTable::somfGetGrowthRate"
  692. #define somf_THashTable_somfGetGrowthRate(somSelf,ev) \
  693.     (SOM_Resolve(somSelf, somf_THashTable, somfGetGrowthRate) \
  694.     (somSelf,ev))
  695. #ifndef SOMGD_somfGetGrowthRate
  696.     #if (defined(_somfGetGrowthRate) || defined(__somfGetGrowthRate))
  697.         #undef _somfGetGrowthRate
  698.         #undef __somfGetGrowthRate
  699.         #define SOMGD_somfGetGrowthRate 1
  700.     #else
  701.         #define _somfGetGrowthRate somf_THashTable_somfGetGrowthRate
  702.     #endif /* _somfGetGrowthRate */
  703. #endif /* SOMGD_somfGetGrowthRate */
  704.  
  705. /*
  706.  * New Method: somfGetRehashThreshold
  707.  */
  708. typedef long   SOMLINK somTP_somf_THashTable_somfGetRehashThreshold(somf_THashTable *somSelf, Environment *ev);
  709. #pragma linkage(somTP_somf_THashTable_somfGetRehashThreshold, system)
  710. typedef somTP_somf_THashTable_somfGetRehashThreshold *somTD_somf_THashTable_somfGetRehashThreshold;
  711. /*
  712.  *  Return the rehash threshold of the hash table.
  713.  */
  714. #define somMD_somf_THashTable_somfGetRehashThreshold "::somf_THashTable::somfGetRehashThreshold"
  715. #define somf_THashTable_somfGetRehashThreshold(somSelf,ev) \
  716.     (SOM_Resolve(somSelf, somf_THashTable, somfGetRehashThreshold) \
  717.     (somSelf,ev))
  718. #ifndef SOMGD_somfGetRehashThreshold
  719.     #if (defined(_somfGetRehashThreshold) || defined(__somfGetRehashThreshold))
  720.         #undef _somfGetRehashThreshold
  721.         #undef __somfGetRehashThreshold
  722.         #define SOMGD_somfGetRehashThreshold 1
  723.     #else
  724.         #define _somfGetRehashThreshold somf_THashTable_somfGetRehashThreshold
  725.     #endif /* _somfGetRehashThreshold */
  726. #endif /* SOMGD_somfGetRehashThreshold */
  727.  
  728. /*
  729.  * New Method: somfSetHashFunction
  730.  */
  731. typedef void   SOMLINK somTP_somf_THashTable_somfSetHashFunction(somf_THashTable *somSelf, Environment *ev, 
  732.         somf_MCollectible_somf_MCollectibleHashFn fn);
  733. #pragma linkage(somTP_somf_THashTable_somfSetHashFunction, system)
  734. typedef somTP_somf_THashTable_somfSetHashFunction *somTD_somf_THashTable_somfSetHashFunction;
  735. /*
  736.  *  Set the hash function to fn.
  737.  */
  738. #define somMD_somf_THashTable_somfSetHashFunction "::somf_THashTable::somfSetHashFunction"
  739. #define somf_THashTable_somfSetHashFunction(somSelf,ev,fn) \
  740.     (SOM_Resolve(somSelf, somf_THashTable, somfSetHashFunction) \
  741.     (somSelf,ev,fn))
  742. #ifndef SOMGD_somfSetHashFunction
  743.     #if (defined(_somfSetHashFunction) || defined(__somfSetHashFunction))
  744.         #undef _somfSetHashFunction
  745.         #undef __somfSetHashFunction
  746.         #define SOMGD_somfSetHashFunction 1
  747.     #else
  748.         #define _somfSetHashFunction somf_THashTable_somfSetHashFunction
  749.     #endif /* _somfSetHashFunction */
  750. #endif /* SOMGD_somfSetHashFunction */
  751.  
  752. /*
  753.  * New Method: somfGetHashFunction
  754.  */
  755. typedef somf_MCollectible_somf_MCollectibleHashFn   SOMLINK somTP_somf_THashTable_somfGetHashFunction(somf_THashTable *somSelf, Environment *ev);
  756. #pragma linkage(somTP_somf_THashTable_somfGetHashFunction, system)
  757. typedef somTP_somf_THashTable_somfGetHashFunction *somTD_somf_THashTable_somfGetHashFunction;
  758. /*
  759.  *  Return the hash function.
  760.  */
  761. #define somMD_somf_THashTable_somfGetHashFunction "::somf_THashTable::somfGetHashFunction"
  762. #define somf_THashTable_somfGetHashFunction(somSelf,ev) \
  763.     (SOM_Resolve(somSelf, somf_THashTable, somfGetHashFunction) \
  764.     (somSelf,ev))
  765. #ifndef SOMGD_somfGetHashFunction
  766.     #if (defined(_somfGetHashFunction) || defined(__somfGetHashFunction))
  767.         #undef _somfGetHashFunction
  768.         #undef __somfGetHashFunction
  769.         #define SOMGD_somfGetHashFunction 1
  770.     #else
  771.         #define _somfGetHashFunction somf_THashTable_somfGetHashFunction
  772.     #endif /* _somfGetHashFunction */
  773. #endif /* SOMGD_somfGetHashFunction */
  774. #ifndef SOM_DONT_USE_INHERITED_MACROS
  775. #define somf_THashTable_somfClone somf_MCollectible_somfClone
  776. #define somf_THashTable_somfClonePointer somf_MCollectible_somfClonePointer
  777. #define somf_THashTable_somfHash somf_MCollectible_somfHash
  778. #define somf_THashTable_somfIsEqual somf_MCollectible_somfIsEqual
  779. #define somf_THashTable_somfIsSame somf_MCollectible_somfIsSame
  780. #define somf_THashTable_somfIsNotEqual somf_MCollectible_somfIsNotEqual
  781. #define somf_THashTable_somDefaultInit SOMObject_somDefaultInit
  782. #define somf_THashTable_somDestruct SOMObject_somDestruct
  783. #define somf_THashTable_somDefaultCopyInit SOMObject_somDefaultCopyInit
  784. #define somf_THashTable_somDefaultAssign SOMObject_somDefaultAssign
  785. #define somf_THashTable_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  786. #define somf_THashTable_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  787. #define somf_THashTable_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  788. #define somf_THashTable_somDefaultConstAssign SOMObject_somDefaultConstAssign
  789. #define somf_THashTable_somDefaultVAssign SOMObject_somDefaultVAssign
  790. #define somf_THashTable_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  791. #define somf_THashTable_somFree SOMObject_somFree
  792. #define somf_THashTable_somGetClass SOMObject_somGetClass
  793. #define somf_THashTable_somGetClassName SOMObject_somGetClassName
  794. #define somf_THashTable_somGetSize SOMObject_somGetSize
  795. #define somf_THashTable_somIsA SOMObject_somIsA
  796. #define somf_THashTable_somIsInstanceOf SOMObject_somIsInstanceOf
  797. #define somf_THashTable_somRespondsTo SOMObject_somRespondsTo
  798. #define somf_THashTable_somDispatch SOMObject_somDispatch
  799. #define somf_THashTable_somClassDispatch SOMObject_somClassDispatch
  800. #define somf_THashTable_somCastObj SOMObject_somCastObj
  801. #define somf_THashTable_somResetObj SOMObject_somResetObj
  802. #define somf_THashTable_somDispatchV SOMObject_somDispatchV
  803. #define somf_THashTable_somDispatchL SOMObject_somDispatchL
  804. #define somf_THashTable_somDispatchA SOMObject_somDispatchA
  805. #define somf_THashTable_somDispatchD SOMObject_somDispatchD
  806. #define somf_THashTable_somPrintSelf SOMObject_somPrintSelf
  807. #define somf_THashTable_somDumpSelf SOMObject_somDumpSelf
  808. #define somf_THashTable_somDumpSelfInt SOMObject_somDumpSelfInt
  809. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  810.  
  811. #endif       /* SOM_somf_THashTable_h */
  812.