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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: tset.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_TSet
  25.  * 
  26.  * DESCRIPTION: The somf_TSet class is a subclass of somf_TCollection.  It
  27.  *              represents an unordered collection of objects in which objects
  28.  *              can appear only once.  Objects which are inserted into the
  29.  *              somf_TSet should override the Hash() method and the IsSame() or
  30.  *              IsEqual() method.
  31.  * 
  32.  *  This file was generated by the SOM Compiler.
  33.  *  FileName: TSet.id2.
  34.  *  Generated using:
  35.  *      SOM Precompiler spc: 6.13
  36.  *      SOM Emitter emitidl.dll: 6.18
  37.  */
  38.  
  39.  
  40. #ifndef SOM_somf_TSet_h
  41. #define SOM_somf_TSet_h
  42.  
  43.  
  44. #include <som.h>
  45.  
  46. /*
  47.  * -- This emitter treats Method Tokens as Thunks by default.
  48.  * -- Use the sc modifier "nothunks" to change this default
  49.  */
  50. #undef somresolve_
  51. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  52.  
  53. /*
  54.  * Define the class name as an object type
  55.  */
  56. #ifndef somf_TSet
  57. #define somf_TSet SOMObject
  58. #endif
  59. #include <tcollect.h>
  60.  
  61. /*
  62.  * Start of bindings for IDL types
  63.  */
  64.  
  65. #ifndef SOMClass
  66.     #define SOMClass SOMObject
  67. #endif /* SOMClass */
  68. #ifndef somf_TIterator
  69.     #define somf_TIterator SOMObject
  70. #endif /* somf_TIterator */
  71. #ifndef TSAssoc
  72.     #define TSAssoc SOMObject
  73. #endif /* TSAssoc */
  74. typedef unsigned long somf_TSet_ESetClassification;
  75. #define somf_TSet_kUnchecked 1UL
  76. #define somf_TSet_kNormal 2UL
  77. #define somf_TSet_kFast 3UL
  78.  
  79. #ifndef SOM_DONT_USE_SHORT_NAMES
  80. #ifndef SOMTGD_ESetClassification
  81.     #ifdef ESetClassification
  82.         #undef ESetClassification
  83.         #define SOMTGD_ESetClassification 1
  84.     #else
  85.         #define ESetClassification somf_TSet_ESetClassification
  86.     #endif /* ESetClassification */
  87. #endif /* SOMTGD_ESetClassification */
  88. #endif /* SOM_DONT_USE_SHORT_NAMES */
  89.  
  90. /*
  91.  * End of bindings for IDL types.
  92.  */
  93.  
  94. /*
  95.  * Passthru lines: File: "C.h", "after"
  96.  */
  97.  
  98.  
  99. #include <titeratr.h>
  100. #include <mcollect.h>
  101.  
  102. #define somf_TSet_MajorVersion 2
  103. #define somf_TSet_MinorVersion 1
  104.  
  105. /*
  106.  * External name shortening if required
  107.  */
  108. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  109. #define somf_TSetNewClass c
  110. #pragma linkage(c, system)
  111. #define somf_TSetClassData d
  112. #define somf_TSetCClassData x
  113. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  114. /*--------------Migration------------*/
  115. #define somf_TSet_classObj somf_TSetClassData.classObject
  116. #define _somf_TSet somf_TSet_classObj
  117.  
  118. /*
  119.  * Declare the class creation procedure
  120.  */
  121. SOMEXTERN SOMClass * SOMLINK somf_TSetNewClass(integer4 somtmajorVersion,
  122.         integer4 somtminorVersion);
  123. #pragma linkage(somf_TSetNewClass, system)
  124.  
  125. /*
  126.  * Declare the class data structure
  127.  */
  128. SOMEXTERN struct somf_TSetClassDataStructure {
  129.     SOMClass *classObject;
  130.     somMToken somfDifferenceS;
  131.     somMToken somfDifferenceSS;
  132.     somMToken somfIntersectionS;
  133.     somMToken somfIntersectionSS;
  134.     somMToken somfUnionS;
  135.     somMToken somfUnionSS;
  136.     somMToken somfXorS;
  137.     somMToken somfXorSS;
  138.     somMToken somfSetHashFunction;
  139.     somMToken somfGetHashFunction;
  140.     somMToken somfRehash;
  141.     somMToken somfFind;
  142.     somMToken somfMakeNewTable;
  143.     somMToken somfCopyIn;
  144.     somMToken somfGrow;
  145.     somMToken somfAssign;
  146.     somMToken somfTSetInitFL;
  147.     somMToken somfTSetInitF;
  148.     somMToken somfTSetInitLF;
  149.     somMToken somfTSetInitL;
  150.     somMToken somfTSetInitS;
  151. } SOMDLINK somf_TSetClassData;
  152.  
  153. /*
  154.  * Declare the C specific class data structure
  155.  */
  156. SOMEXTERN struct somf_TSetCClassDataStructure {
  157.     somMethodTabs parentMtab;
  158.     somDToken instanceDataToken;
  159. } SOMDLINK somf_TSetCClassData;
  160.  
  161. /*
  162.  * New and Renew macros for somf_TSet
  163.  */
  164. #define somf_TSetNew() \
  165.    ( _somf_TSet ? \
  166.     _somNew(_somf_TSet) \
  167.     : ( somf_TSetNewClass(\
  168.         somf_TSet_MajorVersion, \
  169.         somf_TSet_MinorVersion),\
  170.        _somNew(_somf_TSet)))
  171. #define somf_TSetRenew(buf) \
  172.    ( _somf_TSet ? \
  173.     _somRenew(_somf_TSet, buf) \
  174.     : ( somf_TSetNewClass(\
  175.         somf_TSet_MajorVersion, \
  176.         somf_TSet_MinorVersion),\
  177.        _somRenew(_somf_TSet, buf)))
  178.  
  179. /*
  180.  * Override method: somInit
  181.  */
  182. #define somf_TSet_somInit(somSelf) \
  183.     SOMObject_somInit(somSelf)
  184.  
  185. /*
  186.  * Override method: somUninit
  187.  */
  188. #define somf_TSet_somUninit(somSelf) \
  189.     SOMObject_somUninit(somSelf)
  190.  
  191. /*
  192.  * Override method: somfAdd
  193.  */
  194. #define somf_TSet_somfAdd(somSelf,ev,obj) \
  195.     somf_TCollection_somfAdd(somSelf,ev,obj)
  196.  
  197. /*
  198.  * Override method: somfRemove
  199.  */
  200. #define somf_TSet_somfRemove(somSelf,ev,obj) \
  201.     somf_TCollection_somfRemove(somSelf,ev,obj)
  202.  
  203. /*
  204.  * Override method: somfRemoveAll
  205.  */
  206. #define somf_TSet_somfRemoveAll(somSelf,ev) \
  207.     somf_TCollection_somfRemoveAll(somSelf,ev)
  208.  
  209. /*
  210.  * Override method: somfDeleteAll
  211.  */
  212. #define somf_TSet_somfDeleteAll(somSelf,ev) \
  213.     somf_TCollection_somfDeleteAll(somSelf,ev)
  214.  
  215. /*
  216.  * Override method: somfCount
  217.  */
  218. #define somf_TSet_somfCount(somSelf,ev) \
  219.     somf_TCollection_somfCount(somSelf,ev)
  220.  
  221. /*
  222.  * Override method: somfMember
  223.  */
  224. #define somf_TSet_somfMember(somSelf,ev,obj) \
  225.     somf_TCollection_somfMember(somSelf,ev,obj)
  226.  
  227. /*
  228.  * Override method: somfCreateIterator
  229.  */
  230. #define somf_TSet_somfCreateIterator(somSelf,ev) \
  231.     somf_TCollection_somfCreateIterator(somSelf,ev)
  232.  
  233. /*
  234.  * New Method: somfTSetInitFL
  235.  */
  236. typedef somf_TSet*   SOMLINK somTP_somf_TSet_somfTSetInitFL(somf_TSet *somSelf, Environment *ev, 
  237.         somf_MCollectible_somf_MCollectibleCompareFn testfn, 
  238.         long setSizeHint);
  239. #pragma linkage(somTP_somf_TSet_somfTSetInitFL, system)
  240. typedef somTP_somf_TSet_somfTSetInitFL *somTD_somf_TSet_somfTSetInitFL;
  241. /*
  242.  *  Initializes the new set.
  243.  */
  244. #define somMD_somf_TSet_somfTSetInitFL "::somf_TSet::somfTSetInitFL"
  245. #define somf_TSet_somfTSetInitFL(somSelf,ev,testfn,setSizeHint) \
  246.     (SOM_Resolve(somSelf, somf_TSet, somfTSetInitFL) \
  247.     (somSelf,ev,testfn,setSizeHint))
  248. #ifndef SOMGD_somfTSetInitFL
  249.     #if (defined(_somfTSetInitFL) || defined(__somfTSetInitFL))
  250.         #undef _somfTSetInitFL
  251.         #undef __somfTSetInitFL
  252.         #define SOMGD_somfTSetInitFL 1
  253.     #else
  254.         #define _somfTSetInitFL somf_TSet_somfTSetInitFL
  255.     #endif /* _somfTSetInitFL */
  256. #endif /* SOMGD_somfTSetInitFL */
  257.  
  258. /*
  259.  * New Method: somfTSetInitF
  260.  */
  261. typedef somf_TSet*   SOMLINK somTP_somf_TSet_somfTSetInitF(somf_TSet *somSelf, Environment *ev, 
  262.         somf_MCollectible_somf_MCollectibleCompareFn testfn);
  263. #pragma linkage(somTP_somf_TSet_somfTSetInitF, system)
  264. typedef somTP_somf_TSet_somfTSetInitF *somTD_somf_TSet_somfTSetInitF;
  265. /*
  266.  *  Initializes the new set.
  267.  */
  268. #define somMD_somf_TSet_somfTSetInitF "::somf_TSet::somfTSetInitF"
  269. #define somf_TSet_somfTSetInitF(somSelf,ev,testfn) \
  270.     (SOM_Resolve(somSelf, somf_TSet, somfTSetInitF) \
  271.     (somSelf,ev,testfn))
  272. #ifndef SOMGD_somfTSetInitF
  273.     #if (defined(_somfTSetInitF) || defined(__somfTSetInitF))
  274.         #undef _somfTSetInitF
  275.         #undef __somfTSetInitF
  276.         #define SOMGD_somfTSetInitF 1
  277.     #else
  278.         #define _somfTSetInitF somf_TSet_somfTSetInitF
  279.     #endif /* _somfTSetInitF */
  280. #endif /* SOMGD_somfTSetInitF */
  281.  
  282. /*
  283.  * New Method: somfTSetInitLF
  284.  */
  285. typedef somf_TSet*   SOMLINK somTP_somf_TSet_somfTSetInitLF(somf_TSet *somSelf, Environment *ev, 
  286.         long setSizeHint, 
  287.         somf_MCollectible_somf_MCollectibleCompareFn testfn);
  288. #pragma linkage(somTP_somf_TSet_somfTSetInitLF, system)
  289. typedef somTP_somf_TSet_somfTSetInitLF *somTD_somf_TSet_somfTSetInitLF;
  290. /*
  291.  *  Initializes the new set.
  292.  */
  293. #define somMD_somf_TSet_somfTSetInitLF "::somf_TSet::somfTSetInitLF"
  294. #define somf_TSet_somfTSetInitLF(somSelf,ev,setSizeHint,testfn) \
  295.     (SOM_Resolve(somSelf, somf_TSet, somfTSetInitLF) \
  296.     (somSelf,ev,setSizeHint,testfn))
  297. #ifndef SOMGD_somfTSetInitLF
  298.     #if (defined(_somfTSetInitLF) || defined(__somfTSetInitLF))
  299.         #undef _somfTSetInitLF
  300.         #undef __somfTSetInitLF
  301.         #define SOMGD_somfTSetInitLF 1
  302.     #else
  303.         #define _somfTSetInitLF somf_TSet_somfTSetInitLF
  304.     #endif /* _somfTSetInitLF */
  305. #endif /* SOMGD_somfTSetInitLF */
  306.  
  307. /*
  308.  * New Method: somfTSetInitL
  309.  */
  310. typedef somf_TSet*   SOMLINK somTP_somf_TSet_somfTSetInitL(somf_TSet *somSelf, Environment *ev, 
  311.         long setSizeHint);
  312. #pragma linkage(somTP_somf_TSet_somfTSetInitL, system)
  313. typedef somTP_somf_TSet_somfTSetInitL *somTD_somf_TSet_somfTSetInitL;
  314. /*
  315.  *  Initializes the new set.
  316.  */
  317. #define somMD_somf_TSet_somfTSetInitL "::somf_TSet::somfTSetInitL"
  318. #define somf_TSet_somfTSetInitL(somSelf,ev,setSizeHint) \
  319.     (SOM_Resolve(somSelf, somf_TSet, somfTSetInitL) \
  320.     (somSelf,ev,setSizeHint))
  321. #ifndef SOMGD_somfTSetInitL
  322.     #if (defined(_somfTSetInitL) || defined(__somfTSetInitL))
  323.         #undef _somfTSetInitL
  324.         #undef __somfTSetInitL
  325.         #define SOMGD_somfTSetInitL 1
  326.     #else
  327.         #define _somfTSetInitL somf_TSet_somfTSetInitL
  328.     #endif /* _somfTSetInitL */
  329. #endif /* SOMGD_somfTSetInitL */
  330.  
  331. /*
  332.  * New Method: somfTSetInitS
  333.  */
  334. typedef somf_TSet*   SOMLINK somTP_somf_TSet_somfTSetInitS(somf_TSet *somSelf, Environment *ev, 
  335.         somf_TSet* s);
  336. #pragma linkage(somTP_somf_TSet_somfTSetInitS, system)
  337. typedef somTP_somf_TSet_somfTSetInitS *somTD_somf_TSet_somfTSetInitS;
  338. /*
  339.  *  Initializes the new set.
  340.  */
  341. #define somMD_somf_TSet_somfTSetInitS "::somf_TSet::somfTSetInitS"
  342. #define somf_TSet_somfTSetInitS(somSelf,ev,s) \
  343.     (SOM_Resolve(somSelf, somf_TSet, somfTSetInitS) \
  344.     (somSelf,ev,s))
  345. #ifndef SOMGD_somfTSetInitS
  346.     #if (defined(_somfTSetInitS) || defined(__somfTSetInitS))
  347.         #undef _somfTSetInitS
  348.         #undef __somfTSetInitS
  349.         #define SOMGD_somfTSetInitS 1
  350.     #else
  351.         #define _somfTSetInitS somf_TSet_somfTSetInitS
  352.     #endif /* _somfTSetInitS */
  353. #endif /* SOMGD_somfTSetInitS */
  354.  
  355. /*
  356.  * New Method: somfAssign
  357.  */
  358. typedef void   SOMLINK somTP_somf_TSet_somfAssign(somf_TSet *somSelf, Environment *ev, 
  359.         somf_TSet* source);
  360. #pragma linkage(somTP_somf_TSet_somfAssign, system)
  361. typedef somTP_somf_TSet_somfAssign *somTD_somf_TSet_somfAssign;
  362. /*
  363.  *  Assign the instance of this equal to the instance of source.
  364.  */
  365. #define somMD_somf_TSet_somfAssign "::somf_TSet::somfAssign"
  366. #define somf_TSet_somfAssign(somSelf,ev,source) \
  367.     (SOM_Resolve(somSelf, somf_TSet, somfAssign) \
  368.     (somSelf,ev,source))
  369. #ifndef SOMGD_somfAssign
  370.     #if (defined(_somfAssign) || defined(__somfAssign))
  371.         #undef _somfAssign
  372.         #undef __somfAssign
  373.         #define SOMGD_somfAssign 1
  374.     #else
  375.         #define _somfAssign somf_TSet_somfAssign
  376.     #endif /* _somfAssign */
  377. #endif /* SOMGD_somfAssign */
  378.  
  379. /*
  380.  * New Method: somfDifferenceS
  381.  */
  382. typedef void   SOMLINK somTP_somf_TSet_somfDifferenceS(somf_TSet *somSelf, Environment *ev, 
  383.         somf_TSet* set1);
  384. #pragma linkage(somTP_somf_TSet_somfDifferenceS, system)
  385. typedef somTP_somf_TSet_somfDifferenceS *somTD_somf_TSet_somfDifferenceS;
  386. /*
  387.  *  Destructively modify this to contain a set of elements of this that do not
  388.  *  appear in set1
  389.  */
  390. #define somMD_somf_TSet_somfDifferenceS "::somf_TSet::somfDifferenceS"
  391. #define somf_TSet_somfDifferenceS(somSelf,ev,set1) \
  392.     (SOM_Resolve(somSelf, somf_TSet, somfDifferenceS) \
  393.     (somSelf,ev,set1))
  394. #ifndef SOMGD_somfDifferenceS
  395.     #if (defined(_somfDifferenceS) || defined(__somfDifferenceS))
  396.         #undef _somfDifferenceS
  397.         #undef __somfDifferenceS
  398.         #define SOMGD_somfDifferenceS 1
  399.     #else
  400.         #define _somfDifferenceS somf_TSet_somfDifferenceS
  401.     #endif /* _somfDifferenceS */
  402. #endif /* SOMGD_somfDifferenceS */
  403.  
  404. /*
  405.  * New Method: somfDifferenceSS
  406.  */
  407. typedef void   SOMLINK somTP_somf_TSet_somfDifferenceSS(somf_TSet *somSelf, Environment *ev, 
  408.         somf_TSet* set1, 
  409.         somf_TSet* resultSet);
  410. #pragma linkage(somTP_somf_TSet_somfDifferenceSS, system)
  411. typedef somTP_somf_TSet_somfDifferenceSS *somTD_somf_TSet_somfDifferenceSS;
  412. /*
  413.  *  After this function is called, resultSet will contain a set of elements of
  414.  *  this that do not appear in set1
  415.  */
  416. #define somMD_somf_TSet_somfDifferenceSS "::somf_TSet::somfDifferenceSS"
  417. #define somf_TSet_somfDifferenceSS(somSelf,ev,set1,resultSet) \
  418.     (SOM_Resolve(somSelf, somf_TSet, somfDifferenceSS) \
  419.     (somSelf,ev,set1,resultSet))
  420. #ifndef SOMGD_somfDifferenceSS
  421.     #if (defined(_somfDifferenceSS) || defined(__somfDifferenceSS))
  422.         #undef _somfDifferenceSS
  423.         #undef __somfDifferenceSS
  424.         #define SOMGD_somfDifferenceSS 1
  425.     #else
  426.         #define _somfDifferenceSS somf_TSet_somfDifferenceSS
  427.     #endif /* _somfDifferenceSS */
  428. #endif /* SOMGD_somfDifferenceSS */
  429.  
  430. /*
  431.  * New Method: somfIntersectionS
  432.  */
  433. typedef void   SOMLINK somTP_somf_TSet_somfIntersectionS(somf_TSet *somSelf, Environment *ev, 
  434.         somf_TSet* set1);
  435. #pragma linkage(somTP_somf_TSet_somfIntersectionS, system)
  436. typedef somTP_somf_TSet_somfIntersectionS *somTD_somf_TSet_somfIntersectionS;
  437. /*
  438.  *  Destructively modify this to contain everything that is an element of set1
  439.  *  and this.
  440.  */
  441. #define somMD_somf_TSet_somfIntersectionS "::somf_TSet::somfIntersectionS"
  442. #define somf_TSet_somfIntersectionS(somSelf,ev,set1) \
  443.     (SOM_Resolve(somSelf, somf_TSet, somfIntersectionS) \
  444.     (somSelf,ev,set1))
  445. #ifndef SOMGD_somfIntersectionS
  446.     #if (defined(_somfIntersectionS) || defined(__somfIntersectionS))
  447.         #undef _somfIntersectionS
  448.         #undef __somfIntersectionS
  449.         #define SOMGD_somfIntersectionS 1
  450.     #else
  451.         #define _somfIntersectionS somf_TSet_somfIntersectionS
  452.     #endif /* _somfIntersectionS */
  453. #endif /* SOMGD_somfIntersectionS */
  454.  
  455. /*
  456.  * New Method: somfIntersectionSS
  457.  */
  458. typedef void   SOMLINK somTP_somf_TSet_somfIntersectionSS(somf_TSet *somSelf, Environment *ev, 
  459.         somf_TSet* set1, 
  460.         somf_TSet* resultSet);
  461. #pragma linkage(somTP_somf_TSet_somfIntersectionSS, system)
  462. typedef somTP_somf_TSet_somfIntersectionSS *somTD_somf_TSet_somfIntersectionSS;
  463. /*
  464.  *  After this function is called, resultSet will contain everything that is an
  465.  *  element of set1 and this.
  466.  */
  467. #define somMD_somf_TSet_somfIntersectionSS "::somf_TSet::somfIntersectionSS"
  468. #define somf_TSet_somfIntersectionSS(somSelf,ev,set1,resultSet) \
  469.     (SOM_Resolve(somSelf, somf_TSet, somfIntersectionSS) \
  470.     (somSelf,ev,set1,resultSet))
  471. #ifndef SOMGD_somfIntersectionSS
  472.     #if (defined(_somfIntersectionSS) || defined(__somfIntersectionSS))
  473.         #undef _somfIntersectionSS
  474.         #undef __somfIntersectionSS
  475.         #define SOMGD_somfIntersectionSS 1
  476.     #else
  477.         #define _somfIntersectionSS somf_TSet_somfIntersectionSS
  478.     #endif /* _somfIntersectionSS */
  479. #endif /* SOMGD_somfIntersectionSS */
  480.  
  481. /*
  482.  * New Method: somfUnionS
  483.  */
  484. typedef void   SOMLINK somTP_somf_TSet_somfUnionS(somf_TSet *somSelf, Environment *ev, 
  485.         somf_TSet* set1);
  486. #pragma linkage(somTP_somf_TSet_somfUnionS, system)
  487. typedef somTP_somf_TSet_somfUnionS *somTD_somf_TSet_somfUnionS;
  488. /*
  489.  *  Destructively modify this to contain everything that is an element of either
  490.  *  set1 or this.
  491.  */
  492. #define somMD_somf_TSet_somfUnionS "::somf_TSet::somfUnionS"
  493. #define somf_TSet_somfUnionS(somSelf,ev,set1) \
  494.     (SOM_Resolve(somSelf, somf_TSet, somfUnionS) \
  495.     (somSelf,ev,set1))
  496. #ifndef SOMGD_somfUnionS
  497.     #if (defined(_somfUnionS) || defined(__somfUnionS))
  498.         #undef _somfUnionS
  499.         #undef __somfUnionS
  500.         #define SOMGD_somfUnionS 1
  501.     #else
  502.         #define _somfUnionS somf_TSet_somfUnionS
  503.     #endif /* _somfUnionS */
  504. #endif /* SOMGD_somfUnionS */
  505.  
  506. /*
  507.  * New Method: somfUnionSS
  508.  */
  509. typedef void   SOMLINK somTP_somf_TSet_somfUnionSS(somf_TSet *somSelf, Environment *ev, 
  510.         somf_TSet* set1, 
  511.         somf_TSet* resultSet);
  512. #pragma linkage(somTP_somf_TSet_somfUnionSS, system)
  513. typedef somTP_somf_TSet_somfUnionSS *somTD_somf_TSet_somfUnionSS;
  514. /*
  515.  *  After this function is called, resultSet will contain everything that is an
  516.  *  element of either set1 or this.
  517.  */
  518. #define somMD_somf_TSet_somfUnionSS "::somf_TSet::somfUnionSS"
  519. #define somf_TSet_somfUnionSS(somSelf,ev,set1,resultSet) \
  520.     (SOM_Resolve(somSelf, somf_TSet, somfUnionSS) \
  521.     (somSelf,ev,set1,resultSet))
  522. #ifndef SOMGD_somfUnionSS
  523.     #if (defined(_somfUnionSS) || defined(__somfUnionSS))
  524.         #undef _somfUnionSS
  525.         #undef __somfUnionSS
  526.         #define SOMGD_somfUnionSS 1
  527.     #else
  528.         #define _somfUnionSS somf_TSet_somfUnionSS
  529.     #endif /* _somfUnionSS */
  530. #endif /* SOMGD_somfUnionSS */
  531.  
  532. /*
  533.  * New Method: somfXorS
  534.  */
  535. typedef void   SOMLINK somTP_somf_TSet_somfXorS(somf_TSet *somSelf, Environment *ev, 
  536.         somf_TSet* set1);
  537. #pragma linkage(somTP_somf_TSet_somfXorS, system)
  538. typedef somTP_somf_TSet_somfXorS *somTD_somf_TSet_somfXorS;
  539. /*
  540.  *  Destructively modify this to contain everything that is an element of either
  541.  *  set1 or this, but not both.
  542.  */
  543. #define somMD_somf_TSet_somfXorS "::somf_TSet::somfXorS"
  544. #define somf_TSet_somfXorS(somSelf,ev,set1) \
  545.     (SOM_Resolve(somSelf, somf_TSet, somfXorS) \
  546.     (somSelf,ev,set1))
  547. #ifndef SOMGD_somfXorS
  548.     #if (defined(_somfXorS) || defined(__somfXorS))
  549.         #undef _somfXorS
  550.         #undef __somfXorS
  551.         #define SOMGD_somfXorS 1
  552.     #else
  553.         #define _somfXorS somf_TSet_somfXorS
  554.     #endif /* _somfXorS */
  555. #endif /* SOMGD_somfXorS */
  556.  
  557. /*
  558.  * New Method: somfXorSS
  559.  */
  560. typedef void   SOMLINK somTP_somf_TSet_somfXorSS(somf_TSet *somSelf, Environment *ev, 
  561.         somf_TSet* set1, 
  562.         somf_TSet* resultSet);
  563. #pragma linkage(somTP_somf_TSet_somfXorSS, system)
  564. typedef somTP_somf_TSet_somfXorSS *somTD_somf_TSet_somfXorSS;
  565. /*
  566.  *  After this function is called, resultSet will contain everything that is an
  567.  *  element of either set1 or this, but not both.
  568.  */
  569. #define somMD_somf_TSet_somfXorSS "::somf_TSet::somfXorSS"
  570. #define somf_TSet_somfXorSS(somSelf,ev,set1,resultSet) \
  571.     (SOM_Resolve(somSelf, somf_TSet, somfXorSS) \
  572.     (somSelf,ev,set1,resultSet))
  573. #ifndef SOMGD_somfXorSS
  574.     #if (defined(_somfXorSS) || defined(__somfXorSS))
  575.         #undef _somfXorSS
  576.         #undef __somfXorSS
  577.         #define SOMGD_somfXorSS 1
  578.     #else
  579.         #define _somfXorSS somf_TSet_somfXorSS
  580.     #endif /* _somfXorSS */
  581. #endif /* SOMGD_somfXorSS */
  582.  
  583. /*
  584.  * New Method: somfSetHashFunction
  585.  */
  586. typedef void   SOMLINK somTP_somf_TSet_somfSetHashFunction(somf_TSet *somSelf, Environment *ev, 
  587.         somf_MCollectible_somf_MCollectibleHashFn fn);
  588. #pragma linkage(somTP_somf_TSet_somfSetHashFunction, system)
  589. typedef somTP_somf_TSet_somfSetHashFunction *somTD_somf_TSet_somfSetHashFunction;
  590. /*
  591.  *  Set the hash function to fn.
  592.  */
  593. #define somMD_somf_TSet_somfSetHashFunction "::somf_TSet::somfSetHashFunction"
  594. #define somf_TSet_somfSetHashFunction(somSelf,ev,fn) \
  595.     (SOM_Resolve(somSelf, somf_TSet, somfSetHashFunction) \
  596.     (somSelf,ev,fn))
  597. #ifndef SOMGD_somfSetHashFunction
  598.     #if (defined(_somfSetHashFunction) || defined(__somfSetHashFunction))
  599.         #undef _somfSetHashFunction
  600.         #undef __somfSetHashFunction
  601.         #define SOMGD_somfSetHashFunction 1
  602.     #else
  603.         #define _somfSetHashFunction somf_TSet_somfSetHashFunction
  604.     #endif /* _somfSetHashFunction */
  605. #endif /* SOMGD_somfSetHashFunction */
  606.  
  607. /*
  608.  * New Method: somfGetHashFunction
  609.  */
  610. typedef somf_MCollectible_somf_MCollectibleHashFn   SOMLINK somTP_somf_TSet_somfGetHashFunction(somf_TSet *somSelf, Environment *ev);
  611. #pragma linkage(somTP_somf_TSet_somfGetHashFunction, system)
  612. typedef somTP_somf_TSet_somfGetHashFunction *somTD_somf_TSet_somfGetHashFunction;
  613. /*
  614.  *  Return the hash function.
  615.  */
  616. #define somMD_somf_TSet_somfGetHashFunction "::somf_TSet::somfGetHashFunction"
  617. #define somf_TSet_somfGetHashFunction(somSelf,ev) \
  618.     (SOM_Resolve(somSelf, somf_TSet, somfGetHashFunction) \
  619.     (somSelf,ev))
  620. #ifndef SOMGD_somfGetHashFunction
  621.     #if (defined(_somfGetHashFunction) || defined(__somfGetHashFunction))
  622.         #undef _somfGetHashFunction
  623.         #undef __somfGetHashFunction
  624.         #define SOMGD_somfGetHashFunction 1
  625.     #else
  626.         #define _somfGetHashFunction somf_TSet_somfGetHashFunction
  627.     #endif /* _somfGetHashFunction */
  628. #endif /* SOMGD_somfGetHashFunction */
  629.  
  630. /*
  631.  * New Method: somfRehash
  632.  */
  633. typedef void   SOMLINK somTP_somf_TSet_somfRehash(somf_TSet *somSelf, Environment *ev);
  634. #pragma linkage(somTP_somf_TSet_somfRehash, system)
  635. typedef somTP_somf_TSet_somfRehash *somTD_somf_TSet_somfRehash;
  636. /*
  637.  *  Rehash the set, cleaning up for any entries marked for deletion.
  638.  */
  639. #define somMD_somf_TSet_somfRehash "::somf_TSet::somfRehash"
  640. #define somf_TSet_somfRehash(somSelf,ev) \
  641.     (SOM_Resolve(somSelf, somf_TSet, somfRehash) \
  642.     (somSelf,ev))
  643. #ifndef SOMGD_somfRehash
  644.     #if (defined(_somfRehash) || defined(__somfRehash))
  645.         #undef _somfRehash
  646.         #undef __somfRehash
  647.         #define SOMGD_somfRehash 1
  648.     #else
  649.         #define _somfRehash somf_TSet_somfRehash
  650.     #endif /* _somfRehash */
  651. #endif /* SOMGD_somfRehash */
  652. #ifndef SOM_DONT_USE_INHERITED_MACROS
  653. #define somf_TSet_somfAddAll somf_TCollection_somfAddAll
  654. #define somf_TSet_somfTestFunction somf_TCollection_somfTestFunction
  655. #define somf_TSet_somfSetTestFunction somf_TCollection_somfSetTestFunction
  656. #define somf_TSet_somfTCollectionInit somf_TCollection_somfTCollectionInit
  657. #define somf_TSet_somfIsEqual somf_MCollectible_somfIsEqual
  658. #define somf_TSet_somfClone somf_MCollectible_somfClone
  659. #define somf_TSet_somfClonePointer somf_MCollectible_somfClonePointer
  660. #define somf_TSet_somfHash somf_MCollectible_somfHash
  661. #define somf_TSet_somfIsSame somf_MCollectible_somfIsSame
  662. #define somf_TSet_somfIsNotEqual somf_MCollectible_somfIsNotEqual
  663. #define somf_TSet_somDefaultInit SOMObject_somDefaultInit
  664. #define somf_TSet_somDestruct SOMObject_somDestruct
  665. #define somf_TSet_somDefaultCopyInit SOMObject_somDefaultCopyInit
  666. #define somf_TSet_somDefaultAssign SOMObject_somDefaultAssign
  667. #define somf_TSet_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  668. #define somf_TSet_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  669. #define somf_TSet_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  670. #define somf_TSet_somDefaultConstAssign SOMObject_somDefaultConstAssign
  671. #define somf_TSet_somDefaultVAssign SOMObject_somDefaultVAssign
  672. #define somf_TSet_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  673. #define somf_TSet_somFree SOMObject_somFree
  674. #define somf_TSet_somGetClass SOMObject_somGetClass
  675. #define somf_TSet_somGetClassName SOMObject_somGetClassName
  676. #define somf_TSet_somGetSize SOMObject_somGetSize
  677. #define somf_TSet_somIsA SOMObject_somIsA
  678. #define somf_TSet_somIsInstanceOf SOMObject_somIsInstanceOf
  679. #define somf_TSet_somRespondsTo SOMObject_somRespondsTo
  680. #define somf_TSet_somDispatch SOMObject_somDispatch
  681. #define somf_TSet_somClassDispatch SOMObject_somClassDispatch
  682. #define somf_TSet_somCastObj SOMObject_somCastObj
  683. #define somf_TSet_somResetObj SOMObject_somResetObj
  684. #define somf_TSet_somDispatchV SOMObject_somDispatchV
  685. #define somf_TSet_somDispatchL SOMObject_somDispatchL
  686. #define somf_TSet_somDispatchA SOMObject_somDispatchA
  687. #define somf_TSet_somDispatchD SOMObject_somDispatchD
  688. #define somf_TSet_somPrintSelf SOMObject_somPrintSelf
  689. #define somf_TSet_somDumpSelf SOMObject_somDumpSelf
  690. #define somf_TSet_somDumpSelfInt SOMObject_somDumpSelfInt
  691. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  692.  
  693. #endif       /* SOM_somf_TSet_h */
  694.