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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: tassoc.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 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 Apple Computer, Inc. All rights reserved.
  23.  * 
  24.  * CLASS_NAME: somf_TAssoc
  25.  * 
  26.  * DESCRIPTION: A somf_TAssoc is used to hold a pair of objects.  Typically, these
  27.  *              structures are owned by some other higher level object
  28.  *              (e.g. a dictionary) and are usually not returned to the user.
  29.  * 
  30.  *  This file was generated by the SOM Compiler.
  31.  *  FileName: TAssoc.id2.
  32.  *  Generated using:
  33.  *      SOM Precompiler spc: 6.13
  34.  *      SOM Emitter emitidl.dll: 6.18
  35.  */
  36.  
  37.  
  38. #ifndef SOM_somf_TAssoc_xh
  39. #define SOM_somf_TAssoc_xh
  40.  
  41. class somf_TAssoc;
  42.  
  43. #define somf_TAssoc_MajorVersion 2
  44. #define somf_TAssoc_MinorVersion 1
  45.  
  46. /* C++ SOM defs */
  47. #include <somcls.xh>
  48. #include <somcm.xh>
  49.  
  50. /* C++ parent defs */
  51. #ifndef SOM_somf_MCollectible_xh
  52. #include <mcollect.xh>
  53. #endif
  54.  
  55. #ifndef somf_TAssoc_API
  56. #define somf_TAssoc_API
  57. /*
  58.  * -- The Class API
  59.  */
  60.  
  61. /*
  62.  * Start of bindings for IDL types
  63.  */
  64.  
  65. class SOMClass;
  66. class SOMObject;
  67.  
  68. /*
  69.  * End of bindings for IDL types.
  70.  */
  71.  
  72. /* A procedure to create the somf_TAssoc Class */
  73. SOMEXTERN SOMClass * SOMLINK somf_TAssocNewClass(
  74.         integer4 majorVersion,
  75.         integer4 minorVersion);
  76.  
  77. /* The API to the somf_TAssoc class object, and the methods it introduces. */
  78. SOMEXTERN struct somf_TAssocClassDataStructure {
  79.     SOMClass *classObject;
  80.     somMToken somfGetKey;
  81.     somMToken somfGetValue;
  82.     somMToken somfSetKey;
  83.     somMToken somfSetValue;
  84.     somMToken somfTAssocInitMM;
  85.     somMToken somfTAssocInitM;
  86. } SOMDLINK somf_TAssocClassData;
  87. #define _somf_TAssoc somf_TAssocClassData.classObject
  88.  
  89. /* The API to parentMtabs for somf_TAssoc, and the instance data it introduces. */
  90. SOMEXTERN struct somf_TAssocCClassDataStructure {
  91.     somMethodTabs parentMtab;
  92.     somDToken              instanceDataToken;
  93. } SOMDLINK somf_TAssocCClassData;
  94.  
  95. /*
  96.  * -- Typedefs for somf_TAssoc Method Procedures
  97.  */
  98. SOMEXTERN {
  99. typedef somf_TAssoc*   SOMLINK somTP_somf_TAssoc_somfTAssocInitMM(somf_TAssoc *somSelf, Environment *ev, 
  100.         somf_MCollectible* k, 
  101.         somf_MCollectible* v);
  102. typedef somTP_somf_TAssoc_somfTAssocInitMM *somTD_somf_TAssoc_somfTAssocInitMM;
  103. typedef somf_TAssoc*   SOMLINK somTP_somf_TAssoc_somfTAssocInitM(somf_TAssoc *somSelf, Environment *ev, 
  104.         somf_MCollectible* k);
  105. typedef somTP_somf_TAssoc_somfTAssocInitM *somTD_somf_TAssoc_somfTAssocInitM;
  106. typedef somf_MCollectible*   SOMLINK somTP_somf_TAssoc_somfGetKey(somf_TAssoc *somSelf, Environment *ev);
  107. typedef somTP_somf_TAssoc_somfGetKey *somTD_somf_TAssoc_somfGetKey;
  108. typedef somf_MCollectible*   SOMLINK somTP_somf_TAssoc_somfGetValue(somf_TAssoc *somSelf, Environment *ev);
  109. typedef somTP_somf_TAssoc_somfGetValue *somTD_somf_TAssoc_somfGetValue;
  110. typedef void   SOMLINK somTP_somf_TAssoc_somfSetKey(somf_TAssoc *somSelf, Environment *ev, 
  111.         somf_MCollectible* k);
  112. typedef somTP_somf_TAssoc_somfSetKey *somTD_somf_TAssoc_somfSetKey;
  113. typedef void   SOMLINK somTP_somf_TAssoc_somfSetValue(somf_TAssoc *somSelf, Environment *ev, 
  114.         somf_MCollectible* v);
  115. typedef somTP_somf_TAssoc_somfSetValue *somTD_somf_TAssoc_somfSetValue;
  116.  
  117. /*
  118.  * -- Typedefs for Reintroduced Wrapper Methods
  119.  */
  120. typedef somf_MCollectible*   SOMLINK somTP_somf_TAssoc_somfClone(somf_TAssoc *somSelf, Environment *ev);
  121. typedef somTP_somf_TAssoc_somfClone *somTD_somf_TAssoc_somfClone;
  122. typedef somf_MCollectible*   SOMLINK somTP_somf_TAssoc_somfClonePointer(somf_TAssoc *somSelf, Environment *ev, 
  123.         somf_MCollectible* clonee);
  124. typedef somTP_somf_TAssoc_somfClonePointer *somTD_somf_TAssoc_somfClonePointer;
  125. typedef long   SOMLINK somTP_somf_TAssoc_somfHash(somf_TAssoc *somSelf, Environment *ev);
  126. typedef somTP_somf_TAssoc_somfHash *somTD_somf_TAssoc_somfHash;
  127. typedef boolean   SOMLINK somTP_somf_TAssoc_somfIsEqual(somf_TAssoc *somSelf, Environment *ev, 
  128.         somf_MCollectible* obj);
  129. typedef somTP_somf_TAssoc_somfIsEqual *somTD_somf_TAssoc_somfIsEqual;
  130. typedef boolean   SOMLINK somTP_somf_TAssoc_somfIsSame(somf_TAssoc *somSelf, Environment *ev, 
  131.         somf_MCollectible* obj);
  132. typedef somTP_somf_TAssoc_somfIsSame *somTD_somf_TAssoc_somfIsSame;
  133. typedef boolean   SOMLINK somTP_somf_TAssoc_somfIsNotEqual(somf_TAssoc *somSelf, Environment *ev, 
  134.         somf_MCollectible* obj);
  135. typedef somTP_somf_TAssoc_somfIsNotEqual *somTD_somf_TAssoc_somfIsNotEqual;
  136. typedef void   SOMLINK somTP_somf_TAssoc_somDefaultInit(somf_TAssoc *somSelf, 
  137.         som3InitCtrl* ctrl);
  138. typedef somTP_somf_TAssoc_somDefaultInit *somTD_somf_TAssoc_somDefaultInit;
  139. typedef void   SOMLINK somTP_somf_TAssoc_somDestruct(somf_TAssoc *somSelf, 
  140.         octet doFree, 
  141.         som3DestructCtrl* ctrl);
  142. typedef somTP_somf_TAssoc_somDestruct *somTD_somf_TAssoc_somDestruct;
  143. typedef void   SOMLINK somTP_somf_TAssoc_somDefaultCopyInit(somf_TAssoc *somSelf, 
  144.         som3InitCtrl* ctrl, 
  145.         SOMObject* fromObj);
  146. typedef somTP_somf_TAssoc_somDefaultCopyInit *somTD_somf_TAssoc_somDefaultCopyInit;
  147. typedef somf_TAssoc*   SOMLINK somTP_somf_TAssoc_somDefaultAssign(somf_TAssoc *somSelf, 
  148.         som3AssignCtrl* ctrl, 
  149.         SOMObject* fromObj);
  150. typedef somTP_somf_TAssoc_somDefaultAssign *somTD_somf_TAssoc_somDefaultAssign;
  151. typedef void   SOMLINK somTP_somf_TAssoc_somDefaultConstCopyInit(somf_TAssoc *somSelf, 
  152.         som3InitCtrl* ctrl, 
  153.         SOMObject* fromObj);
  154. typedef somTP_somf_TAssoc_somDefaultConstCopyInit *somTD_somf_TAssoc_somDefaultConstCopyInit;
  155. typedef void   SOMLINK somTP_somf_TAssoc_somDefaultVCopyInit(somf_TAssoc *somSelf, 
  156.         som3InitCtrl* ctrl, 
  157.         SOMObject* fromObj);
  158. typedef somTP_somf_TAssoc_somDefaultVCopyInit *somTD_somf_TAssoc_somDefaultVCopyInit;
  159. typedef void   SOMLINK somTP_somf_TAssoc_somDefaultConstVCopyInit(somf_TAssoc *somSelf, 
  160.         som3InitCtrl* ctrl, 
  161.         SOMObject* fromObj);
  162. typedef somTP_somf_TAssoc_somDefaultConstVCopyInit *somTD_somf_TAssoc_somDefaultConstVCopyInit;
  163. typedef somf_TAssoc*   SOMLINK somTP_somf_TAssoc_somDefaultConstAssign(somf_TAssoc *somSelf, 
  164.         som3AssignCtrl* ctrl, 
  165.         SOMObject* fromObj);
  166. typedef somTP_somf_TAssoc_somDefaultConstAssign *somTD_somf_TAssoc_somDefaultConstAssign;
  167. typedef somf_TAssoc*   SOMLINK somTP_somf_TAssoc_somDefaultVAssign(somf_TAssoc *somSelf, 
  168.         som3AssignCtrl* ctrl, 
  169.         SOMObject* fromObj);
  170. typedef somTP_somf_TAssoc_somDefaultVAssign *somTD_somf_TAssoc_somDefaultVAssign;
  171. typedef somf_TAssoc*   SOMLINK somTP_somf_TAssoc_somDefaultConstVAssign(somf_TAssoc *somSelf, 
  172.         som3AssignCtrl* ctrl, 
  173.         SOMObject* fromObj);
  174. typedef somTP_somf_TAssoc_somDefaultConstVAssign *somTD_somf_TAssoc_somDefaultConstVAssign;
  175. typedef void   SOMLINK somTP_somf_TAssoc_somInit(somf_TAssoc *somSelf);
  176. typedef somTP_somf_TAssoc_somInit *somTD_somf_TAssoc_somInit;
  177. typedef void   SOMLINK somTP_somf_TAssoc_somFree(somf_TAssoc *somSelf);
  178. typedef somTP_somf_TAssoc_somFree *somTD_somf_TAssoc_somFree;
  179. typedef void   SOMLINK somTP_somf_TAssoc_somUninit(somf_TAssoc *somSelf);
  180. typedef somTP_somf_TAssoc_somUninit *somTD_somf_TAssoc_somUninit;
  181. typedef SOMClass*   SOMLINK somTP_somf_TAssoc_somGetClass(somf_TAssoc *somSelf);
  182. typedef somTP_somf_TAssoc_somGetClass *somTD_somf_TAssoc_somGetClass;
  183. typedef string   SOMLINK somTP_somf_TAssoc_somGetClassName(somf_TAssoc *somSelf);
  184. typedef somTP_somf_TAssoc_somGetClassName *somTD_somf_TAssoc_somGetClassName;
  185. typedef long   SOMLINK somTP_somf_TAssoc_somGetSize(somf_TAssoc *somSelf);
  186. typedef somTP_somf_TAssoc_somGetSize *somTD_somf_TAssoc_somGetSize;
  187. typedef boolean   SOMLINK somTP_somf_TAssoc_somIsA(somf_TAssoc *somSelf, 
  188.         SOMClass* aClassObj);
  189. typedef somTP_somf_TAssoc_somIsA *somTD_somf_TAssoc_somIsA;
  190. typedef boolean   SOMLINK somTP_somf_TAssoc_somIsInstanceOf(somf_TAssoc *somSelf, 
  191.         SOMClass* aClassObj);
  192. typedef somTP_somf_TAssoc_somIsInstanceOf *somTD_somf_TAssoc_somIsInstanceOf;
  193. typedef boolean   SOMLINK somTP_somf_TAssoc_somRespondsTo(somf_TAssoc *somSelf, 
  194.         somId mId);
  195. typedef somTP_somf_TAssoc_somRespondsTo *somTD_somf_TAssoc_somRespondsTo;
  196. typedef boolean   SOMLINK somTP_somf_TAssoc_somDispatch(somf_TAssoc *somSelf, 
  197.         somToken* retValue, 
  198.         somId methodId, 
  199.         va_list ap);
  200. typedef somTP_somf_TAssoc_somDispatch *somTD_somf_TAssoc_somDispatch;
  201. typedef boolean   SOMLINK somTP_somf_TAssoc_somClassDispatch(somf_TAssoc *somSelf, 
  202.         SOMClass* clsObj, 
  203.         somToken* retValue, 
  204.         somId methodId, 
  205.         va_list ap);
  206. typedef somTP_somf_TAssoc_somClassDispatch *somTD_somf_TAssoc_somClassDispatch;
  207. typedef boolean   SOMLINK somTP_somf_TAssoc_somCastObj(somf_TAssoc *somSelf, 
  208.         SOMClass* cls);
  209. typedef somTP_somf_TAssoc_somCastObj *somTD_somf_TAssoc_somCastObj;
  210. typedef boolean   SOMLINK somTP_somf_TAssoc_somResetObj(somf_TAssoc *somSelf);
  211. typedef somTP_somf_TAssoc_somResetObj *somTD_somf_TAssoc_somResetObj;
  212. typedef void   SOMLINK somTP_somf_TAssoc_somDispatchV(somf_TAssoc *somSelf, 
  213.         somId methodId, 
  214.         somId descriptor, 
  215.         va_list ap);
  216. typedef somTP_somf_TAssoc_somDispatchV *somTD_somf_TAssoc_somDispatchV;
  217. typedef long   SOMLINK somTP_somf_TAssoc_somDispatchL(somf_TAssoc *somSelf, 
  218.         somId methodId, 
  219.         somId descriptor, 
  220.         va_list ap);
  221. typedef somTP_somf_TAssoc_somDispatchL *somTD_somf_TAssoc_somDispatchL;
  222. typedef void*   SOMLINK somTP_somf_TAssoc_somDispatchA(somf_TAssoc *somSelf, 
  223.         somId methodId, 
  224.         somId descriptor, 
  225.         va_list ap);
  226. typedef somTP_somf_TAssoc_somDispatchA *somTD_somf_TAssoc_somDispatchA;
  227. typedef double   SOMLINK somTP_somf_TAssoc_somDispatchD(somf_TAssoc *somSelf, 
  228.         somId methodId, 
  229.         somId descriptor, 
  230.         va_list ap);
  231. typedef somTP_somf_TAssoc_somDispatchD *somTD_somf_TAssoc_somDispatchD;
  232. typedef SOMObject*   SOMLINK somTP_somf_TAssoc_somPrintSelf(somf_TAssoc *somSelf);
  233. typedef somTP_somf_TAssoc_somPrintSelf *somTD_somf_TAssoc_somPrintSelf;
  234. typedef void   SOMLINK somTP_somf_TAssoc_somDumpSelf(somf_TAssoc *somSelf, 
  235.         long level);
  236. typedef somTP_somf_TAssoc_somDumpSelf *somTD_somf_TAssoc_somDumpSelf;
  237. typedef void   SOMLINK somTP_somf_TAssoc_somDumpSelfInt(somf_TAssoc *somSelf, 
  238.         long level);
  239. typedef somTP_somf_TAssoc_somDumpSelfInt *somTD_somf_TAssoc_somDumpSelfInt;
  240. }
  241.  
  242. #endif /* somf_TAssoc_API */
  243.  
  244.  
  245. /*
  246.  * -- This emitter treats Method Tokens as Thunks by default.
  247.  * -- Use the sc modifier "nothunks" to change this default
  248.  */
  249. #undef somresolve_
  250. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  251.  
  252. /*
  253.  * -- The C++ Wrapper Class for somf_TAssoc
  254.  */
  255. class somf_TAssoc : public somf_MCollectible
  256. {
  257. public:
  258.  
  259. // somf_TAssoc::new creates the class object if necessary, and then uses somNewNoInit
  260. // to allocate memory and create the object. Initialization is in ctors.
  261. void *operator new(size_t)
  262. {
  263.    if (!_somf_TAssoc) somf_TAssocNewClass(somf_TAssoc_MajorVersion,somf_TAssoc_MinorVersion);
  264.    return (void*)
  265.       SOM_Resolve(_somf_TAssoc,SOMClass,somNewNoInit)
  266.          ((SOMClass *)((void*)_somf_TAssoc));
  267. }
  268.  
  269. // somf_TAssoc::delete uses somDestruct.
  270. void operator delete(void * obj)
  271. {
  272.    if (obj && *(void**)obj) {
  273.       SOM_Resolve(obj,SOMObject,somFree)
  274.          ((SOMObject*)obj);
  275.    }
  276. }
  277.  
  278. somf_TAssoc& operator=(somf_TAssoc& fromObj)
  279. {
  280.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  281.    return *this;
  282. }
  283.  
  284. somf_TAssoc()
  285. {
  286.    if (*(void**)this != 
  287.        ((somParentMtabStructPtr)
  288.         (somf_TAssocCClassData.parentMtab))->mtab)
  289.       return;
  290.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  291. }
  292.  
  293. somf_TAssoc(somf_TAssoc* fromObj)
  294. {
  295.    if (*(void**)this != 
  296.        ((somParentMtabStructPtr)
  297.         (somf_TAssocCClassData.parentMtab))->mtab)
  298.       return;
  299.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  300. }
  301.  
  302. #ifdef __IBMCPP__
  303. #pragma info(nocnv,nopar)
  304. #endif
  305. somf_TAssoc(const somf_TAssoc* fromObj)
  306. {
  307.    if (*(void**)this != 
  308.        ((somParentMtabStructPtr)
  309.         (somf_TAssocCClassData.parentMtab))->mtab)
  310.       return;
  311.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  312. }
  313. #ifdef __IBMCPP__
  314. #pragma info(restore)
  315. #endif
  316.  
  317.  
  318. /* method: somfTAssocInitMM */
  319. somf_TAssoc*   somfTAssocInitMM(Environment *ev, 
  320.         somf_MCollectible* k, 
  321.         somf_MCollectible* v)
  322. {
  323. /*
  324.  *  Initialize somf_TAssoc to an existing key (k) and value (v).
  325.  */
  326.    return SOM_ResolveD(this,somf_TAssoc,somf_TAssoc,somfTAssocInitMM)
  327.     (this, ev,k,v);
  328. }
  329.  
  330.  
  331. /* method: somfTAssocInitM */
  332. somf_TAssoc*   somfTAssocInitM(Environment *ev, 
  333.         somf_MCollectible* k)
  334. {
  335. /*
  336.  *  Initialize somf_TAssoc to an existing key (k).  The value is set to SOMF_NIL.
  337.  */
  338.    return SOM_ResolveD(this,somf_TAssoc,somf_TAssoc,somfTAssocInitM)
  339.     (this, ev,k);
  340. }
  341.  
  342.  
  343. /* method: somfGetKey */
  344. somf_MCollectible*   somfGetKey(Environment *ev)
  345. {
  346. /*
  347.  *  Get the key (fKey) to the associated pair.
  348.  */
  349.    return SOM_ResolveD(this,somf_TAssoc,somf_TAssoc,somfGetKey)
  350.     (this, ev);
  351. }
  352.  
  353.  
  354. /* method: somfGetValue */
  355. somf_MCollectible*   somfGetValue(Environment *ev)
  356. {
  357. /*
  358.  *  Get the value (fValue) to the associated pair.
  359.  */
  360.    return SOM_ResolveD(this,somf_TAssoc,somf_TAssoc,somfGetValue)
  361.     (this, ev);
  362. }
  363.  
  364.  
  365. /* method: somfSetKey */
  366. void   somfSetKey(Environment *ev, 
  367.         somf_MCollectible* k)
  368. {
  369. /*
  370.  *  Set the key (fKey) to the associated pair.
  371.  */
  372.    SOM_ResolveD(this,somf_TAssoc,somf_TAssoc,somfSetKey)
  373.     (this, ev,k);
  374. }
  375.  
  376.  
  377. /* method: somfSetValue */
  378. void   somfSetValue(Environment *ev, 
  379.         somf_MCollectible* v)
  380. {
  381. /*
  382.  *  Set the value (fValue) to the associated pair.
  383.  */
  384.    SOM_ResolveD(this,somf_TAssoc,somf_TAssoc,somfSetValue)
  385.     (this, ev,v);
  386. }
  387.  
  388.  
  389. /*
  390.  * Reintroduce inherited methods
  391.  */
  392.  
  393. /* method: somfClone */
  394. somf_MCollectible*   somfClone(Environment *ev)
  395. {
  396. /*
  397.  *  somfClone provides a general function for creating a new instance of this.
  398.  */
  399.    return SOM_ResolveD(this,somf_TAssoc,somf_MCollectible,somfClone)
  400.     (this, ev);
  401. }
  402.  
  403.  
  404. /* method: somfClonePointer */
  405. somf_MCollectible*   somfClonePointer(Environment *ev, 
  406.         somf_MCollectible* clonee)
  407. {
  408. /*
  409.  *  somfClonePointer returns a pointer to a Clone
  410.  */
  411.    return SOM_ResolveD(this,somf_TAssoc,somf_MCollectible,somfClonePointer)
  412.     (this, ev,clonee);
  413. }
  414.  
  415.  
  416. /* method: somfHash */
  417. long   somfHash(Environment *ev)
  418. {
  419. /*
  420.  *  somfHash returns a value suitable for use as a hashing probe for this.
  421.  *  The default function will simply return the address of the object.
  422.  *  The default function is almost certainly not adequate if you are overriding
  423.  *  somfIsEqual because you need to make sure that all objects that "are equal"
  424.  *  to each other return the same hash value.  For example, a TText object would
  425.  *  return a hash value computed using the characters in the string instead of
  426.  *  the address of the string.
  427.  */
  428.    return SOM_ResolveD(this,somf_TAssoc,somf_MCollectible,somfHash)
  429.     (this, ev);
  430. }
  431.  
  432.  
  433. /* method: somfIsEqual */
  434. boolean   somfIsEqual(Environment *ev, 
  435.         somf_MCollectible* obj)
  436. {
  437. /*
  438.  *  somfIsEqual returns TRUE if obj is isomorphic to this.  The default function
  439.  *  will give you a nasty message.  For example, the somfIsEqual method
  440.  *  for TText objects will do a string comparison.  All of the utility classes
  441.  *  allow you to specify what methods to use when comparing objects for
  442.  *  insertion, deletion, etc.
  443.  */
  444.    return SOM_ResolveD(this,somf_TAssoc,somf_MCollectible,somfIsEqual)
  445.     (this, ev,obj);
  446. }
  447.  
  448.  
  449. /* method: somfIsSame */
  450. boolean   somfIsSame(Environment *ev, 
  451.         somf_MCollectible* obj)
  452. {
  453. /*
  454.  *  The default function for somfIsSame is a pointer comparison
  455.  */
  456.    return SOM_ResolveD(this,somf_TAssoc,somf_MCollectible,somfIsSame)
  457.     (this, ev,obj);
  458. }
  459.  
  460.  
  461. /* method: somfIsNotEqual */
  462. boolean   somfIsNotEqual(Environment *ev, 
  463.         somf_MCollectible* obj)
  464. {
  465. /*
  466.  *  somfIsNotEqual returns TRUE if obj is NOT isomorphic to this.  It uses
  467.  *  somfIsEqual, so overriding somfIsEqual will handle the logic of somfIsNotEqual too.
  468.  */
  469.    return SOM_ResolveD(this,somf_TAssoc,somf_MCollectible,somfIsNotEqual)
  470.     (this, ev,obj);
  471. }
  472.  
  473.  
  474. /* initializer method: somDefaultInit */
  475. void   somDefaultInit(som3InitCtrl* ctrl)
  476. {
  477. /*
  478.  *  A default initializer for a SOM object. Passing a null ctrl
  479.  *  indicates to the receiver that its class is the class of the
  480.  *  object being initialized, whereby the initializer will determine
  481.  *  an appropriate control structure.
  482.  */
  483.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultInit)
  484.     (this,ctrl);
  485. }
  486.  
  487.  
  488. /* method: somDestruct */
  489. void   somDestruct(octet doFree, 
  490.         som3DestructCtrl* ctrl)
  491. {
  492. /*
  493.  *  The default destructor for a SOM object. A nonzero <doFree>
  494.  *  indicates that the object storage should be freed by the
  495.  *  object's class (via somDeallocate) after uninitialization.
  496.  *  As with somDefaultInit, a null ctrl can be passed.
  497.  */
  498.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDestruct)
  499.     (this,doFree,ctrl);
  500. }
  501.  
  502.  
  503. /* initializer method: somDefaultCopyInit */
  504. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  505.         SOMObject* fromObj)
  506. {
  507. /*
  508.  *  A default copy constructor. Use this to make copies of objects for
  509.  *  calling methods with "by-value" argument semantics.
  510.  */
  511.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultCopyInit)
  512.     (this,ctrl,fromObj);
  513. }
  514.  
  515.  
  516. /* method: somDefaultAssign */
  517. somf_TAssoc*  somDefaultAssign(som3AssignCtrl* ctrl, 
  518.         SOMObject* fromObj)
  519. {
  520. /*
  521.  *  A default assignment operator. Use this to "assign" the state of one
  522.  *  object to another.
  523.  */
  524.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultAssign)
  525.     (this,ctrl,fromObj);
  526. }
  527.  
  528.  
  529. /* initializer method: somDefaultConstCopyInit */
  530. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  531.         SOMObject* fromObj)
  532. {
  533. /*
  534.  *  A default copy constructor that uses a const fromObj.
  535.  */
  536.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultConstCopyInit)
  537.     (this,ctrl,fromObj);
  538. }
  539.  
  540.  
  541. /* initializer method: somDefaultVCopyInit */
  542. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  543.         SOMObject* fromObj)
  544. {
  545. /*
  546.  *  A default copy constructor that uses a volatile fromObj.
  547.  */
  548.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultVCopyInit)
  549.     (this,ctrl,fromObj);
  550. }
  551.  
  552.  
  553. /* initializer method: somDefaultConstVCopyInit */
  554. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  555.         SOMObject* fromObj)
  556. {
  557. /*
  558.  *  A default copy constructor that uses a const volatile fromObj.
  559.  */
  560.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultConstVCopyInit)
  561.     (this,ctrl,fromObj);
  562. }
  563.  
  564.  
  565. /* method: somDefaultConstAssign */
  566. somf_TAssoc*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  567.         SOMObject* fromObj)
  568. {
  569. /*
  570.  *  A default assignment operator that uses a const fromObj.
  571.  */
  572.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultConstAssign)
  573.     (this,ctrl,fromObj);
  574. }
  575.  
  576.  
  577. /* method: somDefaultVAssign */
  578. somf_TAssoc*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  579.         SOMObject* fromObj)
  580. {
  581. /*
  582.  *  A default assignment operator that uses a volatile fromObj.
  583.  */
  584.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultVAssign)
  585.     (this,ctrl,fromObj);
  586. }
  587.  
  588.  
  589. /* method: somDefaultConstVAssign */
  590. somf_TAssoc*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  591.         SOMObject* fromObj)
  592. {
  593. /*
  594.  *  A default assignment operator that uses a const volatile fromObj.
  595.  */
  596.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDefaultConstVAssign)
  597.     (this,ctrl,fromObj);
  598. }
  599.  
  600.  
  601. /* method: somInit */
  602. void   somInit()
  603. {
  604. /*
  605.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  606.  */
  607.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somInit)
  608.     (this);
  609. }
  610.  
  611.  
  612. /* method: somFree */
  613. void   somFree()
  614. {
  615. /*
  616.  *  Use as directed by framework implementations.
  617.  */
  618.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somFree)
  619.     (this);
  620. }
  621.  
  622.  
  623. /* method: somUninit */
  624. void   somUninit()
  625. {
  626. /*
  627.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  628.  */
  629.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somUninit)
  630.     (this);
  631. }
  632.  
  633.  
  634. /* method: somGetClass */
  635. SOMClass*   somGetClass()
  636. {
  637. /*
  638.  *  Return the receiver's class.
  639.  */
  640.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somGetClass)
  641.     (this);
  642. }
  643.  
  644.  
  645. /* method: somGetClassName */
  646. string   somGetClassName()
  647. {
  648. /*
  649.  *  Return the name of the receiver's class.
  650.  */
  651.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somGetClassName)
  652.     (this);
  653. }
  654.  
  655.  
  656. /* method: somGetSize */
  657. long   somGetSize()
  658. {
  659. /*
  660.  *  Return the size of the receiver.
  661.  */
  662.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somGetSize)
  663.     (this);
  664. }
  665.  
  666.  
  667. /* method: somIsA */
  668. boolean   somIsA(SOMClass* aClassObj)
  669. {
  670. /*
  671.  *  Returns 1 (true) if the receiver responds to methods
  672.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  673.  */
  674.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somIsA)
  675.     (this,aClassObj);
  676. }
  677.  
  678.  
  679. /* method: somIsInstanceOf */
  680. boolean   somIsInstanceOf(SOMClass* aClassObj)
  681. {
  682. /*
  683.  *  Returns 1 (true) if the receiver is an instance of
  684.  *  <aClassObj> and 0 (false) otherwise.
  685.  */
  686.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somIsInstanceOf)
  687.     (this,aClassObj);
  688. }
  689.  
  690.  
  691. /* method: somRespondsTo */
  692. boolean   somRespondsTo(somId mId)
  693. {
  694. /*
  695.  *  Returns 1 (true) if the indicated method can be invoked
  696.  *  on the receiver and 0 (false) otherwise.
  697.  */
  698.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somRespondsTo)
  699.     (this,mId);
  700. }
  701.  
  702.  
  703. /* va_list method: somDispatch */
  704.  
  705. /*
  706.  *  This method provides a generic, class-specific dispatch mechanism.
  707.  *  It accepts as input <retValue> a pointer to the memory area to be
  708.  *  loaded with the result of dispatching the method indicated by
  709.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  710.  *  on which the method is to be invoked as the first argument.
  711.  */
  712. /* the va_list invocation form */
  713. boolean   somf_TAssoc_somDispatch(somToken* retValue, 
  714.         somId methodId, 
  715.         va_list ap)
  716. {return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatch)
  717.     (this,retValue,methodId,ap);
  718. }
  719.  
  720. /* the varargs invocation form */
  721. boolean   somDispatch(somToken* retValue, 
  722.         somId methodId, 
  723.         ...)
  724. {
  725. /*
  726.  *  This method provides a generic, class-specific dispatch mechanism.
  727.  *  It accepts as input <retValue> a pointer to the memory area to be
  728.  *  loaded with the result of dispatching the method indicated by
  729.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  730.  *  on which the method is to be invoked as the first argument.
  731.  */
  732.    va_list ap;
  733.    va_start(ap, methodId);
  734.    boolean __somResult = 
  735.       SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatch)
  736.     (this,retValue,methodId,ap);
  737.    va_end(ap);
  738.    return __somResult;
  739. }
  740.  
  741.  
  742. /* va_list method: somClassDispatch */
  743.  
  744. /*
  745.  *  Like somDispatch, but method resolution for static methods is done
  746.  *  according to the clsObj instance method table.
  747.  */
  748. /* the va_list invocation form */
  749. boolean   somf_TAssoc_somClassDispatch(SOMClass* clsObj, 
  750.         somToken* retValue, 
  751.         somId methodId, 
  752.         va_list ap)
  753. {return SOM_ResolveD(this,somf_TAssoc,SOMObject,somClassDispatch)
  754.     (this,clsObj,retValue,methodId,ap);
  755. }
  756.  
  757. /* the varargs invocation form */
  758. boolean   somClassDispatch(SOMClass* clsObj, 
  759.         somToken* retValue, 
  760.         somId methodId, 
  761.         ...)
  762. {
  763. /*
  764.  *  Like somDispatch, but method resolution for static methods is done
  765.  *  according to the clsObj instance method table.
  766.  */
  767.    va_list ap;
  768.    va_start(ap, methodId);
  769.    boolean __somResult = 
  770.       SOM_ResolveD(this,somf_TAssoc,SOMObject,somClassDispatch)
  771.     (this,clsObj,retValue,methodId,ap);
  772.    va_end(ap);
  773.    return __somResult;
  774. }
  775.  
  776.  
  777. /* method: somCastObj */
  778. boolean   somCastObj(SOMClass* cls)
  779. {
  780. /*
  781.  *  cast the receiving object to cls (which must be an ancestor of the
  782.  *  objects true class. Returns true on success.
  783.  */
  784.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somCastObj)
  785.     (this,cls);
  786. }
  787.  
  788.  
  789. /* method: somResetObj */
  790. boolean   somResetObj()
  791. {
  792. /*
  793.  *  reset an object to its true class. Returns true always.
  794.  */
  795.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somResetObj)
  796.     (this);
  797. }
  798.  
  799.  
  800. /* va_list method: somDispatchV */
  801.  
  802. /*
  803.  *  Obsolete. Use somDispatch instead.
  804.  */
  805. /* the va_list invocation form */
  806. void   somf_TAssoc_somDispatchV(somId methodId, 
  807.         somId descriptor, 
  808.         va_list ap)
  809. {   SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchV)
  810.     (this,methodId,descriptor,ap);
  811. }
  812.  
  813. /* the varargs invocation form */
  814. void   somDispatchV(somId methodId, 
  815.         somId descriptor, 
  816.         ...)
  817. {
  818. /*
  819.  *  Obsolete. Use somDispatch instead.
  820.  */
  821.    va_list ap;
  822.    va_start(ap, descriptor);
  823.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchV)
  824.     (this,methodId,descriptor,ap);
  825.    va_end(ap);
  826. }
  827.  
  828.  
  829. /* va_list method: somDispatchL */
  830.  
  831. /*
  832.  *  Obsolete. Use somDispatch instead.
  833.  */
  834. /* the va_list invocation form */
  835. long   somf_TAssoc_somDispatchL(somId methodId, 
  836.         somId descriptor, 
  837.         va_list ap)
  838. {return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchL)
  839.     (this,methodId,descriptor,ap);
  840. }
  841.  
  842. /* the varargs invocation form */
  843. long   somDispatchL(somId methodId, 
  844.         somId descriptor, 
  845.         ...)
  846. {
  847. /*
  848.  *  Obsolete. Use somDispatch instead.
  849.  */
  850.    va_list ap;
  851.    va_start(ap, descriptor);
  852.    long __somResult = 
  853.       SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchL)
  854.     (this,methodId,descriptor,ap);
  855.    va_end(ap);
  856.    return __somResult;
  857. }
  858.  
  859.  
  860. /* va_list method: somDispatchA */
  861.  
  862. /*
  863.  *  Obsolete. Use somDispatch instead.
  864.  */
  865. /* the va_list invocation form */
  866. void*   somf_TAssoc_somDispatchA(somId methodId, 
  867.         somId descriptor, 
  868.         va_list ap)
  869. {return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchA)
  870.     (this,methodId,descriptor,ap);
  871. }
  872.  
  873. /* the varargs invocation form */
  874. void*   somDispatchA(somId methodId, 
  875.         somId descriptor, 
  876.         ...)
  877. {
  878. /*
  879.  *  Obsolete. Use somDispatch instead.
  880.  */
  881.    va_list ap;
  882.    va_start(ap, descriptor);
  883.    void* __somResult = 
  884.       SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchA)
  885.     (this,methodId,descriptor,ap);
  886.    va_end(ap);
  887.    return __somResult;
  888. }
  889.  
  890.  
  891. /* va_list method: somDispatchD */
  892.  
  893. /*
  894.  *  Obsolete. Use somDispatch instead.
  895.  */
  896. /* the va_list invocation form */
  897. double   somf_TAssoc_somDispatchD(somId methodId, 
  898.         somId descriptor, 
  899.         va_list ap)
  900. {return SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchD)
  901.     (this,methodId,descriptor,ap);
  902. }
  903.  
  904. /* the varargs invocation form */
  905. double   somDispatchD(somId methodId, 
  906.         somId descriptor, 
  907.         ...)
  908. {
  909. /*
  910.  *  Obsolete. Use somDispatch instead.
  911.  */
  912.    va_list ap;
  913.    va_start(ap, descriptor);
  914.    double __somResult = 
  915.       SOM_ResolveD(this,somf_TAssoc,SOMObject,somDispatchD)
  916.     (this,methodId,descriptor,ap);
  917.    va_end(ap);
  918.    return __somResult;
  919. }
  920.  
  921.  
  922. /* method: somPrintSelf */
  923. SOMObject*   somPrintSelf()
  924. {
  925. /*
  926.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  927.  *  information about this object.  The default implementation just gives
  928.  *  the object's class name and its address in memory.
  929.  *  <self> is returned.
  930.  */
  931.    return SOM_ResolveD(this,somf_TAssoc,SOMObject,somPrintSelf)
  932.     (this);
  933. }
  934.  
  935.  
  936. /* method: somDumpSelf */
  937. void   somDumpSelf(long level)
  938. {
  939. /*
  940.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  941.  *  and its current state.
  942.  * 
  943.  *  <level> indicates the nesting level for describing compound objects
  944.  *  it must be greater than or equal to zero.  All lines in the
  945.  *  description will be preceeded by <2*level> spaces.
  946.  * 
  947.  *  This routine only actually writes the data that concerns the object
  948.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  949.  *  the object's current state.  This approach allows readable
  950.  *  descriptions of compound objects to be constructed.
  951.  * 
  952.  *  Generally it is not necessary to override this method, if it is
  953.  *  overriden it generally must be completely replaced.
  954.  */
  955.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDumpSelf)
  956.     (this,level);
  957. }
  958.  
  959.  
  960. /* method: somDumpSelfInt */
  961. void   somDumpSelfInt(long level)
  962. {
  963. /*
  964.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  965.  *  Generally this method will need to be overridden.  When overriding
  966.  *  it, begin by calling the parent class form of this method and then
  967.  *  write in a description of your class's instance data. This will
  968.  *  result in a description of all the object's instance data going
  969.  *  from its root ancestor class to its specific class.
  970.  */
  971.    SOM_ResolveD(this,somf_TAssoc,SOMObject,somDumpSelfInt)
  972.     (this,level);
  973. }
  974.  
  975.  
  976.  
  977. };   /* somf_TAssoc */
  978.  
  979.  
  980.  
  981. #endif       /* SOM_somf_TAssoc_xh */
  982.