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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: tpll.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. /*
  11.  * CLASS_NAME: somf_TPrimitiveLinkedList
  12.  * 
  13.  * DESCRIPTION: This class describes a primitive linked list, a sequence on 0
  14.  *              or more items, with a link from one item to it's following
  15.  *              item.
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_somf_TPrimitiveLinkedList_xh
  21. #define SOM_somf_TPrimitiveLinkedList_xh
  22.  
  23. class somf_TPrimitiveLinkedList;
  24.  
  25. #define somf_TPrimitiveLinkedList_MajorVersion 2
  26. #define somf_TPrimitiveLinkedList_MinorVersion 1
  27.  
  28. /* C++ SOM defs */
  29. #include <somcls.xh>
  30. #include <somcm.xh>
  31.  
  32. /* C++ parent defs */
  33. #ifndef SOM_SOMObject_xh
  34. #include <somobj.xh>
  35. #endif
  36.  
  37. #ifndef somf_TPrimitiveLinkedList_API
  38. #define somf_TPrimitiveLinkedList_API
  39. /*
  40.  * -- The Class API
  41.  */
  42.  
  43. /*
  44.  * Start of bindings for IDL types
  45.  */
  46.  
  47. class SOMClass;
  48. class SOMObject;
  49. class somf_MLinkable;
  50.  
  51. /*
  52.  * End of bindings for IDL types.
  53.  */
  54.  
  55. /*
  56.  * Passthru lines: File: "C.xh", "after"
  57.  */
  58.  
  59.  
  60. #include <mlink.xh>
  61.  
  62.  
  63. /* A procedure to create the somf_TPrimitiveLinkedList Class */
  64. SOMEXTERN SOMClass * SOMLINK somf_TPrimitiveLinkedListNewClass(
  65.         integer4 majorVersion,
  66.         integer4 minorVersion);
  67.  
  68. /* The API to the somf_TPrimitiveLinkedList class object, and the methods it introduces. */
  69. SOMEXTERN struct somf_TPrimitiveLinkedListClassDataStructure {
  70.     SOMClass *classObject;
  71.     somMToken somfCount;
  72.     somMToken somfRemove;
  73.     somMToken somfRemoveAll;
  74.     somMToken somfRemoveFirst;
  75.     somMToken somfRemoveLast;
  76.     somMToken somfAddBefore;
  77.     somMToken somfAddAfter;
  78.     somMToken somfAddFirst;
  79.     somMToken somfAddLast;
  80.     somMToken somfAfter;
  81.     somMToken somfBefore;
  82.     somMToken somfFirst;
  83.     somMToken somfLast;
  84. } SOMDLINK somf_TPrimitiveLinkedListClassData;
  85. #define _somf_TPrimitiveLinkedList somf_TPrimitiveLinkedListClassData.classObject
  86.  
  87. /* The API to parentMtabs for somf_TPrimitiveLinkedList, and the instance data it introduces. */
  88. SOMEXTERN struct somf_TPrimitiveLinkedListCClassDataStructure {
  89.     somMethodTabs parentMtab;
  90.     somDToken              instanceDataToken;
  91. } SOMDLINK somf_TPrimitiveLinkedListCClassData;
  92.  
  93. /*
  94.  * -- Typedefs for somf_TPrimitiveLinkedList Method Procedures
  95.  */
  96. SOMEXTERN {
  97. typedef unsigned long   SOMLINK somTP_somf_TPrimitiveLinkedList_somfCount(somf_TPrimitiveLinkedList *somSelf, Environment *ev);
  98. typedef somTP_somf_TPrimitiveLinkedList_somfCount *somTD_somf_TPrimitiveLinkedList_somfCount;
  99. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somfRemove(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  100.         somf_MLinkable* aLink);
  101. typedef somTP_somf_TPrimitiveLinkedList_somfRemove *somTD_somf_TPrimitiveLinkedList_somfRemove;
  102. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somfRemoveAll(somf_TPrimitiveLinkedList *somSelf, Environment *ev);
  103. typedef somTP_somf_TPrimitiveLinkedList_somfRemoveAll *somTD_somf_TPrimitiveLinkedList_somfRemoveAll;
  104. typedef somf_MLinkable*   SOMLINK somTP_somf_TPrimitiveLinkedList_somfRemoveFirst(somf_TPrimitiveLinkedList *somSelf, Environment *ev);
  105. typedef somTP_somf_TPrimitiveLinkedList_somfRemoveFirst *somTD_somf_TPrimitiveLinkedList_somfRemoveFirst;
  106. typedef somf_MLinkable*   SOMLINK somTP_somf_TPrimitiveLinkedList_somfRemoveLast(somf_TPrimitiveLinkedList *somSelf, Environment *ev);
  107. typedef somTP_somf_TPrimitiveLinkedList_somfRemoveLast *somTD_somf_TPrimitiveLinkedList_somfRemoveLast;
  108. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somfAddBefore(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  109.         somf_MLinkable* existing, 
  110.         somf_MLinkable* obj);
  111. typedef somTP_somf_TPrimitiveLinkedList_somfAddBefore *somTD_somf_TPrimitiveLinkedList_somfAddBefore;
  112. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somfAddAfter(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  113.         somf_MLinkable* existing, 
  114.         somf_MLinkable* obj);
  115. typedef somTP_somf_TPrimitiveLinkedList_somfAddAfter *somTD_somf_TPrimitiveLinkedList_somfAddAfter;
  116. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somfAddFirst(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  117.         somf_MLinkable* obj);
  118. typedef somTP_somf_TPrimitiveLinkedList_somfAddFirst *somTD_somf_TPrimitiveLinkedList_somfAddFirst;
  119. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somfAddLast(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  120.         somf_MLinkable* obj);
  121. typedef somTP_somf_TPrimitiveLinkedList_somfAddLast *somTD_somf_TPrimitiveLinkedList_somfAddLast;
  122. typedef somf_MLinkable*   SOMLINK somTP_somf_TPrimitiveLinkedList_somfAfter(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  123.         somf_MLinkable* existingobj);
  124. typedef somTP_somf_TPrimitiveLinkedList_somfAfter *somTD_somf_TPrimitiveLinkedList_somfAfter;
  125. typedef somf_MLinkable*   SOMLINK somTP_somf_TPrimitiveLinkedList_somfBefore(somf_TPrimitiveLinkedList *somSelf, Environment *ev, 
  126.         somf_MLinkable* existingobj);
  127. typedef somTP_somf_TPrimitiveLinkedList_somfBefore *somTD_somf_TPrimitiveLinkedList_somfBefore;
  128. typedef somf_MLinkable*   SOMLINK somTP_somf_TPrimitiveLinkedList_somfFirst(somf_TPrimitiveLinkedList *somSelf, Environment *ev);
  129. typedef somTP_somf_TPrimitiveLinkedList_somfFirst *somTD_somf_TPrimitiveLinkedList_somfFirst;
  130. typedef somf_MLinkable*   SOMLINK somTP_somf_TPrimitiveLinkedList_somfLast(somf_TPrimitiveLinkedList *somSelf, Environment *ev);
  131. typedef somTP_somf_TPrimitiveLinkedList_somfLast *somTD_somf_TPrimitiveLinkedList_somfLast;
  132.  
  133. /*
  134.  * -- Typedefs for Reintroduced Wrapper Methods
  135.  */
  136. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultInit(somf_TPrimitiveLinkedList *somSelf, 
  137.         som3InitCtrl* ctrl);
  138. typedef somTP_somf_TPrimitiveLinkedList_somDefaultInit *somTD_somf_TPrimitiveLinkedList_somDefaultInit;
  139. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDestruct(somf_TPrimitiveLinkedList *somSelf, 
  140.         octet doFree, 
  141.         som3DestructCtrl* ctrl);
  142. typedef somTP_somf_TPrimitiveLinkedList_somDestruct *somTD_somf_TPrimitiveLinkedList_somDestruct;
  143. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultCopyInit(somf_TPrimitiveLinkedList *somSelf, 
  144.         som3InitCtrl* ctrl, 
  145.         SOMObject* fromObj);
  146. typedef somTP_somf_TPrimitiveLinkedList_somDefaultCopyInit *somTD_somf_TPrimitiveLinkedList_somDefaultCopyInit;
  147. typedef somf_TPrimitiveLinkedList*   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultAssign(somf_TPrimitiveLinkedList *somSelf, 
  148.         som3AssignCtrl* ctrl, 
  149.         SOMObject* fromObj);
  150. typedef somTP_somf_TPrimitiveLinkedList_somDefaultAssign *somTD_somf_TPrimitiveLinkedList_somDefaultAssign;
  151. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultConstCopyInit(somf_TPrimitiveLinkedList *somSelf, 
  152.         som3InitCtrl* ctrl, 
  153.         SOMObject* fromObj);
  154. typedef somTP_somf_TPrimitiveLinkedList_somDefaultConstCopyInit *somTD_somf_TPrimitiveLinkedList_somDefaultConstCopyInit;
  155. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultVCopyInit(somf_TPrimitiveLinkedList *somSelf, 
  156.         som3InitCtrl* ctrl, 
  157.         SOMObject* fromObj);
  158. typedef somTP_somf_TPrimitiveLinkedList_somDefaultVCopyInit *somTD_somf_TPrimitiveLinkedList_somDefaultVCopyInit;
  159. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultConstVCopyInit(somf_TPrimitiveLinkedList *somSelf, 
  160.         som3InitCtrl* ctrl, 
  161.         SOMObject* fromObj);
  162. typedef somTP_somf_TPrimitiveLinkedList_somDefaultConstVCopyInit *somTD_somf_TPrimitiveLinkedList_somDefaultConstVCopyInit;
  163. typedef somf_TPrimitiveLinkedList*   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultConstAssign(somf_TPrimitiveLinkedList *somSelf, 
  164.         som3AssignCtrl* ctrl, 
  165.         SOMObject* fromObj);
  166. typedef somTP_somf_TPrimitiveLinkedList_somDefaultConstAssign *somTD_somf_TPrimitiveLinkedList_somDefaultConstAssign;
  167. typedef somf_TPrimitiveLinkedList*   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultVAssign(somf_TPrimitiveLinkedList *somSelf, 
  168.         som3AssignCtrl* ctrl, 
  169.         SOMObject* fromObj);
  170. typedef somTP_somf_TPrimitiveLinkedList_somDefaultVAssign *somTD_somf_TPrimitiveLinkedList_somDefaultVAssign;
  171. typedef somf_TPrimitiveLinkedList*   SOMLINK somTP_somf_TPrimitiveLinkedList_somDefaultConstVAssign(somf_TPrimitiveLinkedList *somSelf, 
  172.         som3AssignCtrl* ctrl, 
  173.         SOMObject* fromObj);
  174. typedef somTP_somf_TPrimitiveLinkedList_somDefaultConstVAssign *somTD_somf_TPrimitiveLinkedList_somDefaultConstVAssign;
  175. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somInit(somf_TPrimitiveLinkedList *somSelf);
  176. typedef somTP_somf_TPrimitiveLinkedList_somInit *somTD_somf_TPrimitiveLinkedList_somInit;
  177. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somFree(somf_TPrimitiveLinkedList *somSelf);
  178. typedef somTP_somf_TPrimitiveLinkedList_somFree *somTD_somf_TPrimitiveLinkedList_somFree;
  179. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somUninit(somf_TPrimitiveLinkedList *somSelf);
  180. typedef somTP_somf_TPrimitiveLinkedList_somUninit *somTD_somf_TPrimitiveLinkedList_somUninit;
  181. typedef SOMClass*   SOMLINK somTP_somf_TPrimitiveLinkedList_somGetClass(somf_TPrimitiveLinkedList *somSelf);
  182. typedef somTP_somf_TPrimitiveLinkedList_somGetClass *somTD_somf_TPrimitiveLinkedList_somGetClass;
  183. typedef string   SOMLINK somTP_somf_TPrimitiveLinkedList_somGetClassName(somf_TPrimitiveLinkedList *somSelf);
  184. typedef somTP_somf_TPrimitiveLinkedList_somGetClassName *somTD_somf_TPrimitiveLinkedList_somGetClassName;
  185. typedef long   SOMLINK somTP_somf_TPrimitiveLinkedList_somGetSize(somf_TPrimitiveLinkedList *somSelf);
  186. typedef somTP_somf_TPrimitiveLinkedList_somGetSize *somTD_somf_TPrimitiveLinkedList_somGetSize;
  187. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somIsA(somf_TPrimitiveLinkedList *somSelf, 
  188.         SOMClass* aClassObj);
  189. typedef somTP_somf_TPrimitiveLinkedList_somIsA *somTD_somf_TPrimitiveLinkedList_somIsA;
  190. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somIsInstanceOf(somf_TPrimitiveLinkedList *somSelf, 
  191.         SOMClass* aClassObj);
  192. typedef somTP_somf_TPrimitiveLinkedList_somIsInstanceOf *somTD_somf_TPrimitiveLinkedList_somIsInstanceOf;
  193. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somRespondsTo(somf_TPrimitiveLinkedList *somSelf, 
  194.         somId mId);
  195. typedef somTP_somf_TPrimitiveLinkedList_somRespondsTo *somTD_somf_TPrimitiveLinkedList_somRespondsTo;
  196. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somDispatch(somf_TPrimitiveLinkedList *somSelf, 
  197.         somToken* retValue, 
  198.         somId methodId, 
  199.         va_list ap);
  200. typedef somTP_somf_TPrimitiveLinkedList_somDispatch *somTD_somf_TPrimitiveLinkedList_somDispatch;
  201. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somClassDispatch(somf_TPrimitiveLinkedList *somSelf, 
  202.         SOMClass* clsObj, 
  203.         somToken* retValue, 
  204.         somId methodId, 
  205.         va_list ap);
  206. typedef somTP_somf_TPrimitiveLinkedList_somClassDispatch *somTD_somf_TPrimitiveLinkedList_somClassDispatch;
  207. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somCastObj(somf_TPrimitiveLinkedList *somSelf, 
  208.         SOMClass* cls);
  209. typedef somTP_somf_TPrimitiveLinkedList_somCastObj *somTD_somf_TPrimitiveLinkedList_somCastObj;
  210. typedef boolean   SOMLINK somTP_somf_TPrimitiveLinkedList_somResetObj(somf_TPrimitiveLinkedList *somSelf);
  211. typedef somTP_somf_TPrimitiveLinkedList_somResetObj *somTD_somf_TPrimitiveLinkedList_somResetObj;
  212. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDispatchV(somf_TPrimitiveLinkedList *somSelf, 
  213.         somId methodId, 
  214.         somId descriptor, 
  215.         va_list ap);
  216. typedef somTP_somf_TPrimitiveLinkedList_somDispatchV *somTD_somf_TPrimitiveLinkedList_somDispatchV;
  217. typedef long   SOMLINK somTP_somf_TPrimitiveLinkedList_somDispatchL(somf_TPrimitiveLinkedList *somSelf, 
  218.         somId methodId, 
  219.         somId descriptor, 
  220.         va_list ap);
  221. typedef somTP_somf_TPrimitiveLinkedList_somDispatchL *somTD_somf_TPrimitiveLinkedList_somDispatchL;
  222. typedef void*   SOMLINK somTP_somf_TPrimitiveLinkedList_somDispatchA(somf_TPrimitiveLinkedList *somSelf, 
  223.         somId methodId, 
  224.         somId descriptor, 
  225.         va_list ap);
  226. typedef somTP_somf_TPrimitiveLinkedList_somDispatchA *somTD_somf_TPrimitiveLinkedList_somDispatchA;
  227. typedef double   SOMLINK somTP_somf_TPrimitiveLinkedList_somDispatchD(somf_TPrimitiveLinkedList *somSelf, 
  228.         somId methodId, 
  229.         somId descriptor, 
  230.         va_list ap);
  231. typedef somTP_somf_TPrimitiveLinkedList_somDispatchD *somTD_somf_TPrimitiveLinkedList_somDispatchD;
  232. typedef SOMObject*   SOMLINK somTP_somf_TPrimitiveLinkedList_somPrintSelf(somf_TPrimitiveLinkedList *somSelf);
  233. typedef somTP_somf_TPrimitiveLinkedList_somPrintSelf *somTD_somf_TPrimitiveLinkedList_somPrintSelf;
  234. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDumpSelf(somf_TPrimitiveLinkedList *somSelf, 
  235.         long level);
  236. typedef somTP_somf_TPrimitiveLinkedList_somDumpSelf *somTD_somf_TPrimitiveLinkedList_somDumpSelf;
  237. typedef void   SOMLINK somTP_somf_TPrimitiveLinkedList_somDumpSelfInt(somf_TPrimitiveLinkedList *somSelf, 
  238.         long level);
  239. typedef somTP_somf_TPrimitiveLinkedList_somDumpSelfInt *somTD_somf_TPrimitiveLinkedList_somDumpSelfInt;
  240. }
  241.  
  242. #endif /* somf_TPrimitiveLinkedList_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_TPrimitiveLinkedList
  254.  */
  255. class somf_TPrimitiveLinkedList : public SOMObject
  256. {
  257. public:
  258.  
  259. // somf_TPrimitiveLinkedList::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_TPrimitiveLinkedList) somf_TPrimitiveLinkedListNewClass(somf_TPrimitiveLinkedList_MajorVersion,somf_TPrimitiveLinkedList_MinorVersion);
  264.    return (void*)
  265.       SOM_Resolve(_somf_TPrimitiveLinkedList,SOMClass,somNewNoInit)
  266.          ((SOMClass *)((void*)_somf_TPrimitiveLinkedList));
  267. }
  268.  
  269. // somf_TPrimitiveLinkedList::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_TPrimitiveLinkedList& operator=(somf_TPrimitiveLinkedList& fromObj)
  279. {
  280.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  281.    return *this;
  282. }
  283.  
  284. somf_TPrimitiveLinkedList()
  285. {
  286.    if (*(void**)this != 
  287.        ((somParentMtabStructPtr)
  288.         (somf_TPrimitiveLinkedListCClassData.parentMtab))->mtab)
  289.       return;
  290.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  291. }
  292.  
  293. somf_TPrimitiveLinkedList(somf_TPrimitiveLinkedList* fromObj)
  294. {
  295.    if (*(void**)this != 
  296.        ((somParentMtabStructPtr)
  297.         (somf_TPrimitiveLinkedListCClassData.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_TPrimitiveLinkedList(const somf_TPrimitiveLinkedList* fromObj)
  306. {
  307.    if (*(void**)this != 
  308.        ((somParentMtabStructPtr)
  309.         (somf_TPrimitiveLinkedListCClassData.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: somfCount */
  319. unsigned long   somfCount(Environment *ev)
  320. {
  321. /*
  322.  *  Return the number of objects in this.
  323.  */
  324.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfCount)
  325.     (this, ev);
  326. }
  327.  
  328.  
  329. /* method: somfRemove */
  330. void   somfRemove(Environment *ev, 
  331.         somf_MLinkable* aLink)
  332. {
  333. /*
  334.  *  Remove the somf_MLinkable object from the List.
  335.  */
  336.    SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfRemove)
  337.     (this, ev,aLink);
  338. }
  339.  
  340.  
  341. /* method: somfRemoveAll */
  342. void   somfRemoveAll(Environment *ev)
  343. {
  344. /*
  345.  *  Remove all of the objects from this.
  346.  */
  347.    SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfRemoveAll)
  348.     (this, ev);
  349. }
  350.  
  351.  
  352. /* method: somfRemoveFirst */
  353. somf_MLinkable*   somfRemoveFirst(Environment *ev)
  354. {
  355. /*
  356.  *  Remove the first object in the List.
  357.  */
  358.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfRemoveFirst)
  359.     (this, ev);
  360. }
  361.  
  362.  
  363. /* method: somfRemoveLast */
  364. somf_MLinkable*   somfRemoveLast(Environment *ev)
  365. {
  366. /*
  367.  *  Remove the last object in the List.
  368.  */
  369.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfRemoveLast)
  370.     (this, ev);
  371. }
  372.  
  373.  
  374. /* method: somfAddBefore */
  375. void   somfAddBefore(Environment *ev, 
  376.         somf_MLinkable* existing, 
  377.         somf_MLinkable* obj)
  378. {
  379. /*
  380.  *  Add the obj object into the List before the existing object.
  381.  */
  382.    SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfAddBefore)
  383.     (this, ev,existing,obj);
  384. }
  385.  
  386.  
  387. /* method: somfAddAfter */
  388. void   somfAddAfter(Environment *ev, 
  389.         somf_MLinkable* existing, 
  390.         somf_MLinkable* obj)
  391. {
  392. /*
  393.  *  Add the obj object into the List after the existing object.
  394.  */
  395.    SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfAddAfter)
  396.     (this, ev,existing,obj);
  397. }
  398.  
  399.  
  400. /* method: somfAddFirst */
  401. void   somfAddFirst(Environment *ev, 
  402.         somf_MLinkable* obj)
  403. {
  404. /*
  405.  *  Add the obj object as the first object in the List.
  406.  */
  407.    SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfAddFirst)
  408.     (this, ev,obj);
  409. }
  410.  
  411.  
  412. /* method: somfAddLast */
  413. void   somfAddLast(Environment *ev, 
  414.         somf_MLinkable* obj)
  415. {
  416. /*
  417.  *  Add the obj object as the last object in the List.
  418.  */
  419.    SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfAddLast)
  420.     (this, ev,obj);
  421. }
  422.  
  423.  
  424. /* method: somfAfter */
  425. somf_MLinkable*   somfAfter(Environment *ev, 
  426.         somf_MLinkable* existingobj)
  427. {
  428. /*
  429.  *  Return the object that comes after the existingobj object in the List.
  430.  */
  431.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfAfter)
  432.     (this, ev,existingobj);
  433. }
  434.  
  435.  
  436. /* method: somfBefore */
  437. somf_MLinkable*   somfBefore(Environment *ev, 
  438.         somf_MLinkable* existingobj)
  439. {
  440. /*
  441.  *  Return the object that comes before the existingobj object in the List.
  442.  */
  443.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfBefore)
  444.     (this, ev,existingobj);
  445. }
  446.  
  447.  
  448. /* method: somfFirst */
  449. somf_MLinkable*   somfFirst(Environment *ev)
  450. {
  451. /*
  452.  *  Return the first object in the List.
  453.  */
  454.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfFirst)
  455.     (this, ev);
  456. }
  457.  
  458.  
  459. /* method: somfLast */
  460. somf_MLinkable*   somfLast(Environment *ev)
  461. {
  462. /*
  463.  *  Return the last object in the List.
  464.  */
  465.    return SOM_ResolveD(this,somf_TPrimitiveLinkedList,somf_TPrimitiveLinkedList,somfLast)
  466.     (this, ev);
  467. }
  468.  
  469.  
  470. /*
  471.  * Reintroduce inherited methods
  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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,SOMObject,somDefaultCopyInit)
  512.     (this,ctrl,fromObj);
  513. }
  514.  
  515.  
  516. /* method: somDefaultAssign */
  517. somf_TPrimitiveLinkedList*  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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,SOMObject,somDefaultConstVCopyInit)
  561.     (this,ctrl,fromObj);
  562. }
  563.  
  564.  
  565. /* method: somDefaultConstAssign */
  566. somf_TPrimitiveLinkedList*  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_TPrimitiveLinkedList,SOMObject,somDefaultConstAssign)
  573.     (this,ctrl,fromObj);
  574. }
  575.  
  576.  
  577. /* method: somDefaultVAssign */
  578. somf_TPrimitiveLinkedList*  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_TPrimitiveLinkedList,SOMObject,somDefaultVAssign)
  585.     (this,ctrl,fromObj);
  586. }
  587.  
  588.  
  589. /* method: somDefaultConstVAssign */
  590. somf_TPrimitiveLinkedList*  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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList_somDispatch(somToken* retValue, 
  714.         somId methodId, 
  715.         va_list ap)
  716. {return SOM_ResolveD(this,somf_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList_somClassDispatch(SOMClass* clsObj, 
  750.         somToken* retValue, 
  751.         somId methodId, 
  752.         va_list ap)
  753. {return SOM_ResolveD(this,somf_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList_somDispatchV(somId methodId, 
  807.         somId descriptor, 
  808.         va_list ap)
  809. {   SOM_ResolveD(this,somf_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList_somDispatchL(somId methodId, 
  836.         somId descriptor, 
  837.         va_list ap)
  838. {return SOM_ResolveD(this,somf_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList_somDispatchA(somId methodId, 
  867.         somId descriptor, 
  868.         va_list ap)
  869. {return SOM_ResolveD(this,somf_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList_somDispatchD(somId methodId, 
  898.         somId descriptor, 
  899.         va_list ap)
  900. {return SOM_ResolveD(this,somf_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,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_TPrimitiveLinkedList,SOMObject,somDumpSelfInt)
  972.     (this,level);
  973. }
  974.  
  975.  
  976.  
  977. };   /* somf_TPrimitiveLinkedList */
  978.  
  979.  
  980.  
  981. #endif       /* SOM_somf_TPrimitiveLinkedList_xh */
  982.