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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: mcollect.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-92 Apple Computer, Inc.  All rights reserved.
  23.  * 
  24.  * CLASS_NAME: somf_MCollectible
  25.  * 
  26.  * DESCRIPTION: The class somf_MCollectible defines the generic object class
  27.  *              from which all other classes are derived.  It is an abstract
  28.  *              class in that many subclasses will define some or all of the
  29.  *              methods presented below.
  30.  * 
  31.  * 
  32.  *  This file was generated by the SOM Compiler.
  33.  *  FileName: MCollect.id2.
  34.  *  Generated using:
  35.  *      SOM Precompiler spc: 6.13
  36.  *      SOM Emitter emitidl.dll: 6.18
  37.  */
  38.  
  39.  
  40. #ifndef SOM_somf_MCollectible_h
  41. #define SOM_somf_MCollectible_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_MCollectible
  57. #define somf_MCollectible SOMObject
  58. #endif
  59. #include <somobj.h>
  60.  
  61. /*
  62.  * Start of bindings for IDL types
  63.  */
  64.  
  65. #ifndef SOMClass
  66.     #define SOMClass SOMObject
  67. #endif /* SOMClass */
  68. #define somf_MCollectible_kReasonableLowerBound 5 /* 5 */
  69. typedef
  70. somMToken somf_MCollectible_somf_MCollectibleCompareFn;
  71. typedef
  72. somMToken somf_MCollectible_somf_MCollectibleHashFn;
  73.  
  74. #ifndef SOM_DONT_USE_SHORT_NAMES
  75. #ifndef SOMTGD_kReasonableLowerBound
  76.     #ifdef kReasonableLowerBound
  77.         #undef kReasonableLowerBound
  78.         #define SOMTGD_kReasonableLowerBound 1
  79.     #else
  80.         #define kReasonableLowerBound somf_MCollectible_kReasonableLowerBound
  81.     #endif /* kReasonableLowerBound */
  82. #endif /* SOMTGD_kReasonableLowerBound */
  83.  
  84. #ifndef SOM_DONT_USE_SHORT_NAMES
  85. #ifndef SOMTGD_somf_MCollectibleCompareFn
  86.     #ifdef somf_MCollectibleCompareFn
  87.         #undef somf_MCollectibleCompareFn
  88.         #define SOMTGD_somf_MCollectibleCompareFn 1
  89.     #else
  90.         #define somf_MCollectibleCompareFn somf_MCollectible_somf_MCollectibleCompareFn
  91.     #endif /* somf_MCollectibleCompareFn */
  92. #endif /* SOMTGD_somf_MCollectibleCompareFn */
  93. #endif /* SOM_DONT_USE_SHORT_NAMES */
  94.  
  95. #ifndef SOM_DONT_USE_SHORT_NAMES
  96. #ifndef SOMTGD_somf_MCollectibleHashFn
  97.     #ifdef somf_MCollectibleHashFn
  98.         #undef somf_MCollectibleHashFn
  99.         #define SOMTGD_somf_MCollectibleHashFn 1
  100.     #else
  101.         #define somf_MCollectibleHashFn somf_MCollectible_somf_MCollectibleHashFn
  102.     #endif /* somf_MCollectibleHashFn */
  103. #endif /* SOMTGD_somf_MCollectibleHashFn */
  104. #endif /* SOM_DONT_USE_SHORT_NAMES */
  105. #endif /* SOM_DONT_USE_SHORT_NAMES */
  106.  
  107. /*
  108.  * End of bindings for IDL types.
  109.  */
  110.  
  111. /*
  112.  * Passthru lines: File: "C.h", "after"
  113.  */
  114.  
  115.  
  116. #define SOMF_NIL 0
  117.  
  118. #define SOMF_CALL_COMPARE_FN(obj,token,parameter) (((somTD_somf_MCollectible_somfIsEqual) somResolve(obj,token))(obj, ev, parameter))
  119.  
  120. #define SOMF_CALL_HASH_FN(obj,token) (((somTD_somf_MCollectible_somfHash) somResolve(obj,token))(obj, ev))
  121.  
  122. #define kDeleted (somf_MCollectible*) 0xFFFFFFFF
  123.  
  124. #define somf_MCollectible_MajorVersion 2
  125. #define somf_MCollectible_MinorVersion 1
  126.  
  127. /*
  128.  * External name shortening if required
  129.  */
  130. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  131. #define somf_MCollectibleNewClass c
  132. #pragma linkage(c, system)
  133. #define somf_MCollectibleClassData d
  134. #define somf_MCollectibleCClassData x
  135. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  136. /*--------------Migration------------*/
  137. #define somf_MCollectible_classObj somf_MCollectibleClassData.classObject
  138. #define _somf_MCollectible somf_MCollectible_classObj
  139.  
  140. /*
  141.  * Declare the class creation procedure
  142.  */
  143. SOMEXTERN SOMClass * SOMLINK somf_MCollectibleNewClass(integer4 somtmajorVersion,
  144.         integer4 somtminorVersion);
  145. #pragma linkage(somf_MCollectibleNewClass, system)
  146.  
  147. /*
  148.  * Declare the class data structure
  149.  */
  150. SOMEXTERN struct somf_MCollectibleClassDataStructure {
  151.     SOMClass *classObject;
  152.     somMToken somfClone;
  153.     somMToken somfClonePointer;
  154.     somMToken somfHash;
  155.     somMToken somfIsEqual;
  156.     somMToken somfIsSame;
  157.     somMToken somfIsNotEqual;
  158. } SOMDLINK somf_MCollectibleClassData;
  159.  
  160. /*
  161.  * Declare the C specific class data structure
  162.  */
  163. SOMEXTERN struct somf_MCollectibleCClassDataStructure {
  164.     somMethodTabs parentMtab;
  165.     somDToken instanceDataToken;
  166. } SOMDLINK somf_MCollectibleCClassData;
  167.  
  168. /*
  169.  * New and Renew macros for somf_MCollectible
  170.  */
  171. #define somf_MCollectibleNew() \
  172.    ( _somf_MCollectible ? \
  173.     _somNew(_somf_MCollectible) \
  174.     : ( somf_MCollectibleNewClass(\
  175.         somf_MCollectible_MajorVersion, \
  176.         somf_MCollectible_MinorVersion),\
  177.        _somNew(_somf_MCollectible)))
  178. #define somf_MCollectibleRenew(buf) \
  179.    ( _somf_MCollectible ? \
  180.     _somRenew(_somf_MCollectible, buf) \
  181.     : ( somf_MCollectibleNewClass(\
  182.         somf_MCollectible_MajorVersion, \
  183.         somf_MCollectible_MinorVersion),\
  184.        _somRenew(_somf_MCollectible, buf)))
  185.  
  186. /*
  187.  * New Method: somfClone
  188.  */
  189. typedef somf_MCollectible*   SOMLINK somTP_somf_MCollectible_somfClone(somf_MCollectible *somSelf, Environment *ev);
  190. #pragma linkage(somTP_somf_MCollectible_somfClone, system)
  191. typedef somTP_somf_MCollectible_somfClone *somTD_somf_MCollectible_somfClone;
  192. /*
  193.  *  somfClone provides a general function for creating a new instance of this.
  194.  */
  195. #define somMD_somf_MCollectible_somfClone "::somf_MCollectible::somfClone"
  196. #define somf_MCollectible_somfClone(somSelf,ev) \
  197.     (SOM_Resolve(somSelf, somf_MCollectible, somfClone) \
  198.     (somSelf,ev))
  199. #ifndef SOMGD_somfClone
  200.     #if (defined(_somfClone) || defined(__somfClone))
  201.         #undef _somfClone
  202.         #undef __somfClone
  203.         #define SOMGD_somfClone 1
  204.     #else
  205.         #define _somfClone somf_MCollectible_somfClone
  206.     #endif /* _somfClone */
  207. #endif /* SOMGD_somfClone */
  208.  
  209. /*
  210.  * New Method: somfClonePointer
  211.  */
  212. typedef somf_MCollectible*   SOMLINK somTP_somf_MCollectible_somfClonePointer(somf_MCollectible *somSelf, Environment *ev, 
  213.         somf_MCollectible* clonee);
  214. #pragma linkage(somTP_somf_MCollectible_somfClonePointer, system)
  215. typedef somTP_somf_MCollectible_somfClonePointer *somTD_somf_MCollectible_somfClonePointer;
  216. /*
  217.  *  somfClonePointer returns a pointer to a Clone
  218.  */
  219. #define somMD_somf_MCollectible_somfClonePointer "::somf_MCollectible::somfClonePointer"
  220. #define somf_MCollectible_somfClonePointer(somSelf,ev,clonee) \
  221.     (SOM_Resolve(somSelf, somf_MCollectible, somfClonePointer) \
  222.     (somSelf,ev,clonee))
  223. #ifndef SOMGD_somfClonePointer
  224.     #if (defined(_somfClonePointer) || defined(__somfClonePointer))
  225.         #undef _somfClonePointer
  226.         #undef __somfClonePointer
  227.         #define SOMGD_somfClonePointer 1
  228.     #else
  229.         #define _somfClonePointer somf_MCollectible_somfClonePointer
  230.     #endif /* _somfClonePointer */
  231. #endif /* SOMGD_somfClonePointer */
  232.  
  233. /*
  234.  * New Method: somfHash
  235.  */
  236. typedef long   SOMLINK somTP_somf_MCollectible_somfHash(somf_MCollectible *somSelf, Environment *ev);
  237. #pragma linkage(somTP_somf_MCollectible_somfHash, system)
  238. typedef somTP_somf_MCollectible_somfHash *somTD_somf_MCollectible_somfHash;
  239. /*
  240.  *  somfHash returns a value suitable for use as a hashing probe for this.
  241.  *  The default function will simply return the address of the object.
  242.  *  The default function is almost certainly not adequate if you are overriding
  243.  *  somfIsEqual because you need to make sure that all objects that "are equal"
  244.  *  to each other return the same hash value.  For example, a TText object would
  245.  *  return a hash value computed using the characters in the string instead of
  246.  *  the address of the string.
  247.  */
  248. #define somMD_somf_MCollectible_somfHash "::somf_MCollectible::somfHash"
  249. #define somf_MCollectible_somfHash(somSelf,ev) \
  250.     (SOM_Resolve(somSelf, somf_MCollectible, somfHash) \
  251.     (somSelf,ev))
  252. #ifndef SOMGD_somfHash
  253.     #if (defined(_somfHash) || defined(__somfHash))
  254.         #undef _somfHash
  255.         #undef __somfHash
  256.         #define SOMGD_somfHash 1
  257.     #else
  258.         #define _somfHash somf_MCollectible_somfHash
  259.     #endif /* _somfHash */
  260. #endif /* SOMGD_somfHash */
  261.  
  262. /*
  263.  * New Method: somfIsEqual
  264.  */
  265. typedef boolean   SOMLINK somTP_somf_MCollectible_somfIsEqual(somf_MCollectible *somSelf, Environment *ev, 
  266.         somf_MCollectible* obj);
  267. #pragma linkage(somTP_somf_MCollectible_somfIsEqual, system)
  268. typedef somTP_somf_MCollectible_somfIsEqual *somTD_somf_MCollectible_somfIsEqual;
  269. /*
  270.  *  somfIsEqual returns TRUE if obj is isomorphic to this.  The default function
  271.  *  will give you a nasty message.  For example, the somfIsEqual method
  272.  *  for TText objects will do a string comparison.  All of the utility classes
  273.  *  allow you to specify what methods to use when comparing objects for
  274.  *  insertion, deletion, etc.
  275.  */
  276. #define somMD_somf_MCollectible_somfIsEqual "::somf_MCollectible::somfIsEqual"
  277. #define somf_MCollectible_somfIsEqual(somSelf,ev,obj) \
  278.     (SOM_Resolve(somSelf, somf_MCollectible, somfIsEqual) \
  279.     (somSelf,ev,obj))
  280. #ifndef SOMGD_somfIsEqual
  281.     #if (defined(_somfIsEqual) || defined(__somfIsEqual))
  282.         #undef _somfIsEqual
  283.         #undef __somfIsEqual
  284.         #define SOMGD_somfIsEqual 1
  285.     #else
  286.         #define _somfIsEqual somf_MCollectible_somfIsEqual
  287.     #endif /* _somfIsEqual */
  288. #endif /* SOMGD_somfIsEqual */
  289.  
  290. /*
  291.  * New Method: somfIsSame
  292.  */
  293. typedef boolean   SOMLINK somTP_somf_MCollectible_somfIsSame(somf_MCollectible *somSelf, Environment *ev, 
  294.         somf_MCollectible* obj);
  295. #pragma linkage(somTP_somf_MCollectible_somfIsSame, system)
  296. typedef somTP_somf_MCollectible_somfIsSame *somTD_somf_MCollectible_somfIsSame;
  297. /*
  298.  *  The default function for somfIsSame is a pointer comparison
  299.  */
  300. #define somMD_somf_MCollectible_somfIsSame "::somf_MCollectible::somfIsSame"
  301. #define somf_MCollectible_somfIsSame(somSelf,ev,obj) \
  302.     (SOM_Resolve(somSelf, somf_MCollectible, somfIsSame) \
  303.     (somSelf,ev,obj))
  304. #ifndef SOMGD_somfIsSame
  305.     #if (defined(_somfIsSame) || defined(__somfIsSame))
  306.         #undef _somfIsSame
  307.         #undef __somfIsSame
  308.         #define SOMGD_somfIsSame 1
  309.     #else
  310.         #define _somfIsSame somf_MCollectible_somfIsSame
  311.     #endif /* _somfIsSame */
  312. #endif /* SOMGD_somfIsSame */
  313.  
  314. /*
  315.  * New Method: somfIsNotEqual
  316.  */
  317. typedef boolean   SOMLINK somTP_somf_MCollectible_somfIsNotEqual(somf_MCollectible *somSelf, Environment *ev, 
  318.         somf_MCollectible* obj);
  319. #pragma linkage(somTP_somf_MCollectible_somfIsNotEqual, system)
  320. typedef somTP_somf_MCollectible_somfIsNotEqual *somTD_somf_MCollectible_somfIsNotEqual;
  321. /*
  322.  *  somfIsNotEqual returns TRUE if obj is NOT isomorphic to this.  It uses
  323.  *  somfIsEqual, so overriding somfIsEqual will handle the logic of somfIsNotEqual too.
  324.  */
  325. #define somMD_somf_MCollectible_somfIsNotEqual "::somf_MCollectible::somfIsNotEqual"
  326. #define somf_MCollectible_somfIsNotEqual(somSelf,ev,obj) \
  327.     (SOM_Resolve(somSelf, somf_MCollectible, somfIsNotEqual) \
  328.     (somSelf,ev,obj))
  329. #ifndef SOMGD_somfIsNotEqual
  330.     #if (defined(_somfIsNotEqual) || defined(__somfIsNotEqual))
  331.         #undef _somfIsNotEqual
  332.         #undef __somfIsNotEqual
  333.         #define SOMGD_somfIsNotEqual 1
  334.     #else
  335.         #define _somfIsNotEqual somf_MCollectible_somfIsNotEqual
  336.     #endif /* _somfIsNotEqual */
  337. #endif /* SOMGD_somfIsNotEqual */
  338. #ifndef SOM_DONT_USE_INHERITED_MACROS
  339. #define somf_MCollectible_somDefaultInit SOMObject_somDefaultInit
  340. #define somf_MCollectible_somDestruct SOMObject_somDestruct
  341. #define somf_MCollectible_somDefaultCopyInit SOMObject_somDefaultCopyInit
  342. #define somf_MCollectible_somDefaultAssign SOMObject_somDefaultAssign
  343. #define somf_MCollectible_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  344. #define somf_MCollectible_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  345. #define somf_MCollectible_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  346. #define somf_MCollectible_somDefaultConstAssign SOMObject_somDefaultConstAssign
  347. #define somf_MCollectible_somDefaultVAssign SOMObject_somDefaultVAssign
  348. #define somf_MCollectible_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  349. #define somf_MCollectible_somInit SOMObject_somInit
  350. #define somf_MCollectible_somFree SOMObject_somFree
  351. #define somf_MCollectible_somUninit SOMObject_somUninit
  352. #define somf_MCollectible_somGetClass SOMObject_somGetClass
  353. #define somf_MCollectible_somGetClassName SOMObject_somGetClassName
  354. #define somf_MCollectible_somGetSize SOMObject_somGetSize
  355. #define somf_MCollectible_somIsA SOMObject_somIsA
  356. #define somf_MCollectible_somIsInstanceOf SOMObject_somIsInstanceOf
  357. #define somf_MCollectible_somRespondsTo SOMObject_somRespondsTo
  358. #define somf_MCollectible_somDispatch SOMObject_somDispatch
  359. #define somf_MCollectible_somClassDispatch SOMObject_somClassDispatch
  360. #define somf_MCollectible_somCastObj SOMObject_somCastObj
  361. #define somf_MCollectible_somResetObj SOMObject_somResetObj
  362. #define somf_MCollectible_somDispatchV SOMObject_somDispatchV
  363. #define somf_MCollectible_somDispatchL SOMObject_somDispatchL
  364. #define somf_MCollectible_somDispatchA SOMObject_somDispatchA
  365. #define somf_MCollectible_somDispatchD SOMObject_somDispatchD
  366. #define somf_MCollectible_somPrintSelf SOMObject_somPrintSelf
  367. #define somf_MCollectible_somDumpSelf SOMObject_somDumpSelf
  368. #define somf_MCollectible_somDumpSelfInt SOMObject_somDumpSelfInt
  369. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  370.  
  371. #endif       /* SOM_somf_MCollectible_h */
  372.