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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: tdeq.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_TDeque
  25.  * 
  26.  * DESCRIPTION: A TDeque is a TSequence.  It is ordered based on the order
  27.  *              elements are added to, or removed from, the collection.
  28.  *              A TDeque can also be used as a queue, or a stack.
  29.  * 
  30.  */
  31.  
  32.  
  33. #ifndef SOM_somf_TDeque_h
  34. #define SOM_somf_TDeque_h
  35.  
  36.  
  37. #include <som.h>
  38.  
  39. /*
  40.  * -- This emitter treats Method Tokens as Thunks by default.
  41.  * -- Use the sc modifier "nothunks" to change this default
  42.  */
  43. #undef somresolve_
  44. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  45.  
  46. /*
  47.  * Define the class name as an object type
  48.  */
  49. #ifndef somf_TDeque
  50. #define somf_TDeque SOMObject
  51. #endif
  52. #include <tseq.h>
  53.  
  54. /*
  55.  * Start of bindings for IDL types
  56.  */
  57.  
  58. #ifndef SOMClass
  59.     #define SOMClass SOMObject
  60. #endif /* SOMClass */
  61. #ifndef somf_TIterator
  62.     #define somf_TIterator SOMObject
  63. #endif /* somf_TIterator */
  64. #ifndef somf_TSequenceIterator
  65.     #define somf_TSequenceIterator SOMObject
  66. #endif /* somf_TSequenceIterator */
  67. #ifndef somf_TDequeLinkable
  68.     #define somf_TDequeLinkable SOMObject
  69. #endif /* somf_TDequeLinkable */
  70. #ifndef somf_TPrimitiveLinkedList
  71.     #define somf_TPrimitiveLinkedList SOMObject
  72. #endif /* somf_TPrimitiveLinkedList */
  73.  
  74. /*
  75.  * End of bindings for IDL types.
  76.  */
  77.  
  78. /*
  79.  * Passthru lines: File: "C.h", "after"
  80.  */
  81.  
  82. #include <mcollect.h>
  83. #include <tseqitr.h>
  84. #include <tdeqlink.h>
  85.  
  86.  
  87. #define somf_TDeque_MajorVersion 2
  88. #define somf_TDeque_MinorVersion 1
  89.  
  90. /*
  91.  * External name shortening if required
  92.  */
  93. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  94. #define somf_TDequeNewClass c
  95. #pragma linkage(c, system)
  96. #define somf_TDequeClassData d
  97. #define somf_TDequeCClassData x
  98. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  99. /*--------------Migration------------*/
  100. #define somf_TDeque_classObj somf_TDequeClassData.classObject
  101. #define _somf_TDeque somf_TDeque_classObj
  102.  
  103. /*
  104.  * Declare the class creation procedure
  105.  */
  106. SOMEXTERN SOMClass * SOMLINK somf_TDequeNewClass(integer4 somtmajorVersion,
  107.         integer4 somtminorVersion);
  108. #pragma linkage(somf_TDequeNewClass, system)
  109.  
  110. /*
  111.  * Declare the class data structure
  112.  */
  113. SOMEXTERN struct somf_TDequeClassDataStructure {
  114.     SOMClass *classObject;
  115.     somMToken somfAddAfter;
  116.     somMToken somfAddBefore;
  117.     somMToken somfAddLast;
  118.     somMToken somfAddFirst;
  119.     somMToken somfRemoveLast;
  120.     somMToken somfRemoveFirst;
  121.     somMToken somfCreateSequenceIterator;
  122.     somMToken somfRemoveQ;
  123.     somMToken somfInsert;
  124.     somMToken somfPop;
  125.     somMToken somfPush;
  126.     somMToken somfCreateNewLink;
  127.     somMToken somfAssign;
  128.     somMToken somfTDequeInitF;
  129.     somMToken somfTDequeInitD;
  130. } SOMDLINK somf_TDequeClassData;
  131.  
  132. /*
  133.  * Declare the C specific class data structure
  134.  */
  135. SOMEXTERN struct somf_TDequeCClassDataStructure {
  136.     somMethodTabs parentMtab;
  137.     somDToken instanceDataToken;
  138. } SOMDLINK somf_TDequeCClassData;
  139.  
  140. /*
  141.  * New and Renew macros for somf_TDeque
  142.  */
  143. #define somf_TDequeNew() \
  144.    ( _somf_TDeque ? \
  145.     _somNew(_somf_TDeque) \
  146.     : ( somf_TDequeNewClass(\
  147.         somf_TDeque_MajorVersion, \
  148.         somf_TDeque_MinorVersion),\
  149.        _somNew(_somf_TDeque)))
  150. #define somf_TDequeRenew(buf) \
  151.    ( _somf_TDeque ? \
  152.     _somRenew(_somf_TDeque, buf) \
  153.     : ( somf_TDequeNewClass(\
  154.         somf_TDeque_MajorVersion, \
  155.         somf_TDeque_MinorVersion),\
  156.        _somRenew(_somf_TDeque, buf)))
  157.  
  158. /*
  159.  * Override method: somInit
  160.  */
  161. #define somf_TDeque_somInit(somSelf) \
  162.     SOMObject_somInit(somSelf)
  163.  
  164. /*
  165.  * Override method: somUninit
  166.  */
  167. #define somf_TDeque_somUninit(somSelf) \
  168.     SOMObject_somUninit(somSelf)
  169.  
  170. /*
  171.  * Override method: somfAdd
  172.  */
  173. #define somf_TDeque_somfAdd(somSelf,ev,obj) \
  174.     somf_TCollection_somfAdd(somSelf,ev,obj)
  175.  
  176. /*
  177.  * Override method: somfRemove
  178.  */
  179. #define somf_TDeque_somfRemove(somSelf,ev,obj) \
  180.     somf_TCollection_somfRemove(somSelf,ev,obj)
  181.  
  182. /*
  183.  * Override method: somfDeleteAll
  184.  */
  185. #define somf_TDeque_somfDeleteAll(somSelf,ev) \
  186.     somf_TCollection_somfDeleteAll(somSelf,ev)
  187.  
  188. /*
  189.  * Override method: somfRemoveAll
  190.  */
  191. #define somf_TDeque_somfRemoveAll(somSelf,ev) \
  192.     somf_TCollection_somfRemoveAll(somSelf,ev)
  193.  
  194. /*
  195.  * Override method: somfCount
  196.  */
  197. #define somf_TDeque_somfCount(somSelf,ev) \
  198.     somf_TCollection_somfCount(somSelf,ev)
  199.  
  200. /*
  201.  * Override method: somfAfter
  202.  */
  203. #define somf_TDeque_somfAfter(somSelf,ev,obj) \
  204.     somf_TSequence_somfAfter(somSelf,ev,obj)
  205.  
  206. /*
  207.  * Override method: somfBefore
  208.  */
  209. #define somf_TDeque_somfBefore(somSelf,ev,obj) \
  210.     somf_TSequence_somfBefore(somSelf,ev,obj)
  211.  
  212. /*
  213.  * Override method: somfLast
  214.  */
  215. #define somf_TDeque_somfLast(somSelf,ev) \
  216.     somf_TSequence_somfLast(somSelf,ev)
  217.  
  218. /*
  219.  * Override method: somfFirst
  220.  */
  221. #define somf_TDeque_somfFirst(somSelf,ev) \
  222.     somf_TSequence_somfFirst(somSelf,ev)
  223.  
  224. /*
  225.  * Override method: somfMember
  226.  */
  227. #define somf_TDeque_somfMember(somSelf,ev,obj) \
  228.     somf_TCollection_somfMember(somSelf,ev,obj)
  229.  
  230. /*
  231.  * Override method: somfCreateIterator
  232.  */
  233. #define somf_TDeque_somfCreateIterator(somSelf,ev) \
  234.     somf_TCollection_somfCreateIterator(somSelf,ev)
  235.  
  236. /*
  237.  * New Method: somfTDequeInitF
  238.  */
  239. typedef somf_TDeque*   SOMLINK somTP_somf_TDeque_somfTDequeInitF(somf_TDeque *somSelf, Environment *ev, 
  240.         somf_MCollectible_somf_MCollectibleCompareFn testfn);
  241. #pragma linkage(somTP_somf_TDeque_somfTDequeInitF, system)
  242. typedef somTP_somf_TDeque_somfTDequeInitF *somTD_somf_TDeque_somfTDequeInitF;
  243. /*
  244.  *  Initializes the new deque.
  245.  */
  246. #define somMD_somf_TDeque_somfTDequeInitF "::somf_TDeque::somfTDequeInitF"
  247. #define somf_TDeque_somfTDequeInitF(somSelf,ev,testfn) \
  248.     (SOM_Resolve(somSelf, somf_TDeque, somfTDequeInitF) \
  249.     (somSelf,ev,testfn))
  250. #ifndef SOMGD_somfTDequeInitF
  251.     #if (defined(_somfTDequeInitF) || defined(__somfTDequeInitF))
  252.         #undef _somfTDequeInitF
  253.         #undef __somfTDequeInitF
  254.         #define SOMGD_somfTDequeInitF 1
  255.     #else
  256.         #define _somfTDequeInitF somf_TDeque_somfTDequeInitF
  257.     #endif /* _somfTDequeInitF */
  258. #endif /* SOMGD_somfTDequeInitF */
  259.  
  260. /*
  261.  * New Method: somfTDequeInitD
  262.  */
  263. typedef somf_TDeque*   SOMLINK somTP_somf_TDeque_somfTDequeInitD(somf_TDeque *somSelf, Environment *ev, 
  264.         somf_TDeque* s);
  265. #pragma linkage(somTP_somf_TDeque_somfTDequeInitD, system)
  266. typedef somTP_somf_TDeque_somfTDequeInitD *somTD_somf_TDeque_somfTDequeInitD;
  267. /*
  268.  *  Initializes the new deque.
  269.  */
  270. #define somMD_somf_TDeque_somfTDequeInitD "::somf_TDeque::somfTDequeInitD"
  271. #define somf_TDeque_somfTDequeInitD(somSelf,ev,s) \
  272.     (SOM_Resolve(somSelf, somf_TDeque, somfTDequeInitD) \
  273.     (somSelf,ev,s))
  274. #ifndef SOMGD_somfTDequeInitD
  275.     #if (defined(_somfTDequeInitD) || defined(__somfTDequeInitD))
  276.         #undef _somfTDequeInitD
  277.         #undef __somfTDequeInitD
  278.         #define SOMGD_somfTDequeInitD 1
  279.     #else
  280.         #define _somfTDequeInitD somf_TDeque_somfTDequeInitD
  281.     #endif /* _somfTDequeInitD */
  282. #endif /* SOMGD_somfTDequeInitD */
  283.  
  284. /*
  285.  * New Method: somfAssign
  286.  */
  287. typedef void   SOMLINK somTP_somf_TDeque_somfAssign(somf_TDeque *somSelf, Environment *ev, 
  288.         somf_TDeque* s);
  289. #pragma linkage(somTP_somf_TDeque_somfAssign, system)
  290. typedef somTP_somf_TDeque_somfAssign *somTD_somf_TDeque_somfAssign;
  291. /*
  292.  *  Assign the instance of this equal to the instance of source.
  293.  */
  294. #define somMD_somf_TDeque_somfAssign "::somf_TDeque::somfAssign"
  295. #define somf_TDeque_somfAssign(somSelf,ev,s) \
  296.     (SOM_Resolve(somSelf, somf_TDeque, somfAssign) \
  297.     (somSelf,ev,s))
  298. #ifndef SOMGD_somfAssign
  299.     #if (defined(_somfAssign) || defined(__somfAssign))
  300.         #undef _somfAssign
  301.         #undef __somfAssign
  302.         #define SOMGD_somfAssign 1
  303.     #else
  304.         #define _somfAssign somf_TDeque_somfAssign
  305.     #endif /* _somfAssign */
  306. #endif /* SOMGD_somfAssign */
  307.  
  308. /*
  309.  * New Method: somfAddAfter
  310.  */
  311. typedef void   SOMLINK somTP_somf_TDeque_somfAddAfter(somf_TDeque *somSelf, Environment *ev, 
  312.         somf_MCollectible* existingobj, 
  313.         somf_MCollectible* tobeadded);
  314. #pragma linkage(somTP_somf_TDeque_somfAddAfter, system)
  315. typedef somTP_somf_TDeque_somfAddAfter *somTD_somf_TDeque_somfAddAfter;
  316. /*
  317.  *  Add the obj object into the List after the existing object.
  318.  */
  319. #define somMD_somf_TDeque_somfAddAfter "::somf_TDeque::somfAddAfter"
  320. #define somf_TDeque_somfAddAfter(somSelf,ev,existingobj,tobeadded) \
  321.     (SOM_Resolve(somSelf, somf_TDeque, somfAddAfter) \
  322.     (somSelf,ev,existingobj,tobeadded))
  323. #ifndef SOMGD_somfAddAfter
  324.     #if (defined(_somfAddAfter) || defined(__somfAddAfter))
  325.         #undef _somfAddAfter
  326.         #undef __somfAddAfter
  327.         #define SOMGD_somfAddAfter 1
  328.     #else
  329.         #define _somfAddAfter somf_TDeque_somfAddAfter
  330.     #endif /* _somfAddAfter */
  331. #endif /* SOMGD_somfAddAfter */
  332.  
  333. /*
  334.  * New Method: somfAddBefore
  335.  */
  336. typedef void   SOMLINK somTP_somf_TDeque_somfAddBefore(somf_TDeque *somSelf, Environment *ev, 
  337.         somf_MCollectible* existingobj, 
  338.         somf_MCollectible* tobeadded);
  339. #pragma linkage(somTP_somf_TDeque_somfAddBefore, system)
  340. typedef somTP_somf_TDeque_somfAddBefore *somTD_somf_TDeque_somfAddBefore;
  341. /*
  342.  *  Add the obj object into the List before the existing object.
  343.  */
  344. #define somMD_somf_TDeque_somfAddBefore "::somf_TDeque::somfAddBefore"
  345. #define somf_TDeque_somfAddBefore(somSelf,ev,existingobj,tobeadded) \
  346.     (SOM_Resolve(somSelf, somf_TDeque, somfAddBefore) \
  347.     (somSelf,ev,existingobj,tobeadded))
  348. #ifndef SOMGD_somfAddBefore
  349.     #if (defined(_somfAddBefore) || defined(__somfAddBefore))
  350.         #undef _somfAddBefore
  351.         #undef __somfAddBefore
  352.         #define SOMGD_somfAddBefore 1
  353.     #else
  354.         #define _somfAddBefore somf_TDeque_somfAddBefore
  355.     #endif /* _somfAddBefore */
  356. #endif /* SOMGD_somfAddBefore */
  357.  
  358. /*
  359.  * New Method: somfAddLast
  360.  */
  361. typedef void   SOMLINK somTP_somf_TDeque_somfAddLast(somf_TDeque *somSelf, Environment *ev, 
  362.         somf_MCollectible* obj);
  363. #pragma linkage(somTP_somf_TDeque_somfAddLast, system)
  364. typedef somTP_somf_TDeque_somfAddLast *somTD_somf_TDeque_somfAddLast;
  365. /*
  366.  *  Add the obj object as the last object in the List.
  367.  */
  368. #define somMD_somf_TDeque_somfAddLast "::somf_TDeque::somfAddLast"
  369. #define somf_TDeque_somfAddLast(somSelf,ev,obj) \
  370.     (SOM_Resolve(somSelf, somf_TDeque, somfAddLast) \
  371.     (somSelf,ev,obj))
  372. #ifndef SOMGD_somfAddLast
  373.     #if (defined(_somfAddLast) || defined(__somfAddLast))
  374.         #undef _somfAddLast
  375.         #undef __somfAddLast
  376.         #define SOMGD_somfAddLast 1
  377.     #else
  378.         #define _somfAddLast somf_TDeque_somfAddLast
  379.     #endif /* _somfAddLast */
  380. #endif /* SOMGD_somfAddLast */
  381.  
  382. /*
  383.  * New Method: somfAddFirst
  384.  */
  385. typedef void   SOMLINK somTP_somf_TDeque_somfAddFirst(somf_TDeque *somSelf, Environment *ev, 
  386.         somf_MCollectible* obj);
  387. #pragma linkage(somTP_somf_TDeque_somfAddFirst, system)
  388. typedef somTP_somf_TDeque_somfAddFirst *somTD_somf_TDeque_somfAddFirst;
  389. /*
  390.  *  Add the obj object as the first object in the List.
  391.  */
  392. #define somMD_somf_TDeque_somfAddFirst "::somf_TDeque::somfAddFirst"
  393. #define somf_TDeque_somfAddFirst(somSelf,ev,obj) \
  394.     (SOM_Resolve(somSelf, somf_TDeque, somfAddFirst) \
  395.     (somSelf,ev,obj))
  396. #ifndef SOMGD_somfAddFirst
  397.     #if (defined(_somfAddFirst) || defined(__somfAddFirst))
  398.         #undef _somfAddFirst
  399.         #undef __somfAddFirst
  400.         #define SOMGD_somfAddFirst 1
  401.     #else
  402.         #define _somfAddFirst somf_TDeque_somfAddFirst
  403.     #endif /* _somfAddFirst */
  404. #endif /* SOMGD_somfAddFirst */
  405.  
  406. /*
  407.  * New Method: somfRemoveLast
  408.  */
  409. typedef somf_MCollectible*   SOMLINK somTP_somf_TDeque_somfRemoveLast(somf_TDeque *somSelf, Environment *ev);
  410. #pragma linkage(somTP_somf_TDeque_somfRemoveLast, system)
  411. typedef somTP_somf_TDeque_somfRemoveLast *somTD_somf_TDeque_somfRemoveLast;
  412. /*
  413.  *  Remove the last object in the List.
  414.  */
  415. #define somMD_somf_TDeque_somfRemoveLast "::somf_TDeque::somfRemoveLast"
  416. #define somf_TDeque_somfRemoveLast(somSelf,ev) \
  417.     (SOM_Resolve(somSelf, somf_TDeque, somfRemoveLast) \
  418.     (somSelf,ev))
  419. #ifndef SOMGD_somfRemoveLast
  420.     #if (defined(_somfRemoveLast) || defined(__somfRemoveLast))
  421.         #undef _somfRemoveLast
  422.         #undef __somfRemoveLast
  423.         #define SOMGD_somfRemoveLast 1
  424.     #else
  425.         #define _somfRemoveLast somf_TDeque_somfRemoveLast
  426.     #endif /* _somfRemoveLast */
  427. #endif /* SOMGD_somfRemoveLast */
  428.  
  429. /*
  430.  * New Method: somfRemoveFirst
  431.  */
  432. typedef somf_MCollectible*   SOMLINK somTP_somf_TDeque_somfRemoveFirst(somf_TDeque *somSelf, Environment *ev);
  433. #pragma linkage(somTP_somf_TDeque_somfRemoveFirst, system)
  434. typedef somTP_somf_TDeque_somfRemoveFirst *somTD_somf_TDeque_somfRemoveFirst;
  435. /*
  436.  *  Remove the first object in the deque.
  437.  */
  438. #define somMD_somf_TDeque_somfRemoveFirst "::somf_TDeque::somfRemoveFirst"
  439. #define somf_TDeque_somfRemoveFirst(somSelf,ev) \
  440.     (SOM_Resolve(somSelf, somf_TDeque, somfRemoveFirst) \
  441.     (somSelf,ev))
  442. #ifndef SOMGD_somfRemoveFirst
  443.     #if (defined(_somfRemoveFirst) || defined(__somfRemoveFirst))
  444.         #undef _somfRemoveFirst
  445.         #undef __somfRemoveFirst
  446.         #define SOMGD_somfRemoveFirst 1
  447.     #else
  448.         #define _somfRemoveFirst somf_TDeque_somfRemoveFirst
  449.     #endif /* _somfRemoveFirst */
  450. #endif /* SOMGD_somfRemoveFirst */
  451.  
  452. /*
  453.  * New Method: somfCreateSequenceIterator
  454.  */
  455. typedef somf_TSequenceIterator*   SOMLINK somTP_somf_TDeque_somfCreateSequenceIterator(somf_TDeque *somSelf, Environment *ev);
  456. #pragma linkage(somTP_somf_TDeque_somfCreateSequenceIterator, system)
  457. typedef somTP_somf_TDeque_somfCreateSequenceIterator *somTD_somf_TDeque_somfCreateSequenceIterator;
  458. /*
  459.  *  This method returns a new iterator which is suitable for use in iterating
  460.  *  over the objects in this collection.
  461.  */
  462. #define somMD_somf_TDeque_somfCreateSequenceIterator "::somf_TDeque::somfCreateSequenceIterator"
  463. #define somf_TDeque_somfCreateSequenceIterator(somSelf,ev) \
  464.     (SOM_Resolve(somSelf, somf_TDeque, somfCreateSequenceIterator) \
  465.     (somSelf,ev))
  466. #ifndef SOMGD_somfCreateSequenceIterator
  467.     #if (defined(_somfCreateSequenceIterator) || defined(__somfCreateSequenceIterator))
  468.         #undef _somfCreateSequenceIterator
  469.         #undef __somfCreateSequenceIterator
  470.         #define SOMGD_somfCreateSequenceIterator 1
  471.     #else
  472.         #define _somfCreateSequenceIterator somf_TDeque_somfCreateSequenceIterator
  473.     #endif /* _somfCreateSequenceIterator */
  474. #endif /* SOMGD_somfCreateSequenceIterator */
  475.  
  476. /*
  477.  * New Method: somfRemoveQ
  478.  */
  479. typedef somf_MCollectible*   SOMLINK somTP_somf_TDeque_somfRemoveQ(somf_TDeque *somSelf, Environment *ev);
  480. #pragma linkage(somTP_somf_TDeque_somfRemoveQ, system)
  481. typedef somTP_somf_TDeque_somfRemoveQ *somTD_somf_TDeque_somfRemoveQ;
  482. /*
  483.  *  Remove the object on the deque/queue
  484.  *  (This call can be used to simulate a queue)
  485.  */
  486. #define somMD_somf_TDeque_somfRemoveQ "::somf_TDeque::somfRemoveQ"
  487. #define somf_TDeque_somfRemoveQ(somSelf,ev) \
  488.     (SOM_Resolve(somSelf, somf_TDeque, somfRemoveQ) \
  489.     (somSelf,ev))
  490. #ifndef SOMGD_somfRemoveQ
  491.     #if (defined(_somfRemoveQ) || defined(__somfRemoveQ))
  492.         #undef _somfRemoveQ
  493.         #undef __somfRemoveQ
  494.         #define SOMGD_somfRemoveQ 1
  495.     #else
  496.         #define _somfRemoveQ somf_TDeque_somfRemoveQ
  497.     #endif /* _somfRemoveQ */
  498. #endif /* SOMGD_somfRemoveQ */
  499.  
  500. /*
  501.  * New Method: somfInsert
  502.  */
  503. typedef void   SOMLINK somTP_somf_TDeque_somfInsert(somf_TDeque *somSelf, Environment *ev, 
  504.         somf_MCollectible* obj);
  505. #pragma linkage(somTP_somf_TDeque_somfInsert, system)
  506. typedef somTP_somf_TDeque_somfInsert *somTD_somf_TDeque_somfInsert;
  507. /*
  508.  *  Add the object to the deque/queue
  509.  *  (This call can be used to simulate a queue)
  510.  */
  511. #define somMD_somf_TDeque_somfInsert "::somf_TDeque::somfInsert"
  512. #define somf_TDeque_somfInsert(somSelf,ev,obj) \
  513.     (SOM_Resolve(somSelf, somf_TDeque, somfInsert) \
  514.     (somSelf,ev,obj))
  515. #ifndef SOMGD_somfInsert
  516.     #if (defined(_somfInsert) || defined(__somfInsert))
  517.         #undef _somfInsert
  518.         #undef __somfInsert
  519.         #define SOMGD_somfInsert 1
  520.     #else
  521.         #define _somfInsert somf_TDeque_somfInsert
  522.     #endif /* _somfInsert */
  523. #endif /* SOMGD_somfInsert */
  524.  
  525. /*
  526.  * New Method: somfPop
  527.  */
  528. typedef somf_MCollectible*   SOMLINK somTP_somf_TDeque_somfPop(somf_TDeque *somSelf, Environment *ev);
  529. #pragma linkage(somTP_somf_TDeque_somfPop, system)
  530. typedef somTP_somf_TDeque_somfPop *somTD_somf_TDeque_somfPop;
  531. /*
  532.  *  Remove the object on the top of the deque/stack
  533.  *  (This call can be used to simulate a stack)
  534.  */
  535. #define somMD_somf_TDeque_somfPop "::somf_TDeque::somfPop"
  536. #define somf_TDeque_somfPop(somSelf,ev) \
  537.     (SOM_Resolve(somSelf, somf_TDeque, somfPop) \
  538.     (somSelf,ev))
  539. #ifndef SOMGD_somfPop
  540.     #if (defined(_somfPop) || defined(__somfPop))
  541.         #undef _somfPop
  542.         #undef __somfPop
  543.         #define SOMGD_somfPop 1
  544.     #else
  545.         #define _somfPop somf_TDeque_somfPop
  546.     #endif /* _somfPop */
  547. #endif /* SOMGD_somfPop */
  548.  
  549. /*
  550.  * New Method: somfPush
  551.  */
  552. typedef void   SOMLINK somTP_somf_TDeque_somfPush(somf_TDeque *somSelf, Environment *ev, 
  553.         somf_MCollectible* obj);
  554. #pragma linkage(somTP_somf_TDeque_somfPush, system)
  555. typedef somTP_somf_TDeque_somfPush *somTD_somf_TDeque_somfPush;
  556. /*
  557.  *  Add the object to the top of the deque/stack
  558.  *  (This call can be used to simulate a stack)
  559.  */
  560. #define somMD_somf_TDeque_somfPush "::somf_TDeque::somfPush"
  561. #define somf_TDeque_somfPush(somSelf,ev,obj) \
  562.     (SOM_Resolve(somSelf, somf_TDeque, somfPush) \
  563.     (somSelf,ev,obj))
  564. #ifndef SOMGD_somfPush
  565.     #if (defined(_somfPush) || defined(__somfPush))
  566.         #undef _somfPush
  567.         #undef __somfPush
  568.         #define SOMGD_somfPush 1
  569.     #else
  570.         #define _somfPush somf_TDeque_somfPush
  571.     #endif /* _somfPush */
  572. #endif /* SOMGD_somfPush */
  573.  
  574. /*
  575.  * New Method: somfCreateNewLink
  576.  */
  577. typedef somf_TDequeLinkable*   SOMLINK somTP_somf_TDeque_somfCreateNewLink(somf_TDeque *somSelf, Environment *ev, 
  578.         somf_TDequeLinkable* p, 
  579.         somf_TDequeLinkable* n, 
  580.         somf_MCollectible* v);
  581. #pragma linkage(somTP_somf_TDeque_somfCreateNewLink, system)
  582. typedef somTP_somf_TDeque_somfCreateNewLink *somTD_somf_TDeque_somfCreateNewLink;
  583. /*
  584.  *  Create a new TDeque link, using a TDequeLinkable instance.
  585.  */
  586. #define somMD_somf_TDeque_somfCreateNewLink "::somf_TDeque::somfCreateNewLink"
  587. #define somf_TDeque_somfCreateNewLink(somSelf,ev,p,n,v) \
  588.     (SOM_Resolve(somSelf, somf_TDeque, somfCreateNewLink) \
  589.     (somSelf,ev,p,n,v))
  590. #ifndef SOMGD_somfCreateNewLink
  591.     #if (defined(_somfCreateNewLink) || defined(__somfCreateNewLink))
  592.         #undef _somfCreateNewLink
  593.         #undef __somfCreateNewLink
  594.         #define SOMGD_somfCreateNewLink 1
  595.     #else
  596.         #define _somfCreateNewLink somf_TDeque_somfCreateNewLink
  597.     #endif /* _somfCreateNewLink */
  598. #endif /* SOMGD_somfCreateNewLink */
  599. #ifndef SOM_DONT_USE_INHERITED_MACROS
  600. #define somf_TDeque_somfOccurrencesOf somf_TSequence_somfOccurrencesOf
  601. #define somf_TDeque_somfTSequenceInit somf_TSequence_somfTSequenceInit
  602. #define somf_TDeque_somfAddAll somf_TCollection_somfAddAll
  603. #define somf_TDeque_somfTestFunction somf_TCollection_somfTestFunction
  604. #define somf_TDeque_somfSetTestFunction somf_TCollection_somfSetTestFunction
  605. #define somf_TDeque_somfTCollectionInit somf_TCollection_somfTCollectionInit
  606. #define somf_TDeque_somfIsEqual somf_MCollectible_somfIsEqual
  607. #define somf_TDeque_somfClone somf_MCollectible_somfClone
  608. #define somf_TDeque_somfClonePointer somf_MCollectible_somfClonePointer
  609. #define somf_TDeque_somfHash somf_MCollectible_somfHash
  610. #define somf_TDeque_somfIsSame somf_MCollectible_somfIsSame
  611. #define somf_TDeque_somfIsNotEqual somf_MCollectible_somfIsNotEqual
  612. #define somf_TDeque_somDefaultInit SOMObject_somDefaultInit
  613. #define somf_TDeque_somDestruct SOMObject_somDestruct
  614. #define somf_TDeque_somDefaultCopyInit SOMObject_somDefaultCopyInit
  615. #define somf_TDeque_somDefaultAssign SOMObject_somDefaultAssign
  616. #define somf_TDeque_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  617. #define somf_TDeque_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  618. #define somf_TDeque_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  619. #define somf_TDeque_somDefaultConstAssign SOMObject_somDefaultConstAssign
  620. #define somf_TDeque_somDefaultVAssign SOMObject_somDefaultVAssign
  621. #define somf_TDeque_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  622. #define somf_TDeque_somFree SOMObject_somFree
  623. #define somf_TDeque_somGetClass SOMObject_somGetClass
  624. #define somf_TDeque_somGetClassName SOMObject_somGetClassName
  625. #define somf_TDeque_somGetSize SOMObject_somGetSize
  626. #define somf_TDeque_somIsA SOMObject_somIsA
  627. #define somf_TDeque_somIsInstanceOf SOMObject_somIsInstanceOf
  628. #define somf_TDeque_somRespondsTo SOMObject_somRespondsTo
  629. #define somf_TDeque_somDispatch SOMObject_somDispatch
  630. #define somf_TDeque_somClassDispatch SOMObject_somClassDispatch
  631. #define somf_TDeque_somCastObj SOMObject_somCastObj
  632. #define somf_TDeque_somResetObj SOMObject_somResetObj
  633. #define somf_TDeque_somDispatchV SOMObject_somDispatchV
  634. #define somf_TDeque_somDispatchL SOMObject_somDispatchL
  635. #define somf_TDeque_somDispatchA SOMObject_somDispatchA
  636. #define somf_TDeque_somDispatchD SOMObject_somDispatchD
  637. #define somf_TDeque_somPrintSelf SOMObject_somPrintSelf
  638. #define somf_TDeque_somDumpSelf SOMObject_somDumpSelf
  639. #define somf_TDeque_somDumpSelfInt SOMObject_somDumpSelfInt
  640. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  641.  
  642. #endif       /* SOM_somf_TDeque_h */
  643.