home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c221 / 6.ddi / MWHC.006 / H2 < prev    next >
Encoding:
Text File  |  1992-06-07  |  8.3 KB  |  248 lines

  1. #ifndef __RWTOOLDEFS_H__
  2. #define __RWTOOLDEFS_H__
  3. pragma push_align_members(64);
  4.  
  5. /*
  6.  * General declarations for Tools.h++
  7.  *
  8.  * $Header:   E:/vcs/rw/tooldefs.h_v   1.6   17 Mar 1992 12:26:50   KEFFER  $
  9.  *
  10.  ****************************************************************************
  11.  *
  12.  * Rogue Wave Software, Inc.
  13.  * P.O. Box 2328
  14.  * Corvallis, OR 97339
  15.  * Voice: (503) 754-3010    FAX: (503) 757-6650
  16.  *
  17.  * Copyright (C) 1989, 1990, 1991, 1992. This software is subject to copyright 
  18.  * protection under the laws of the United States and other countries.
  19.  *
  20.  ***************************************************************************
  21.  *
  22.  * $Log:   E:/vcs/rw/tooldefs.h_v  $
  23.  * 
  24.  *    Rev 1.6   17 Mar 1992 12:26:50   KEFFER
  25.  * Removed RWTV3_COMPATIBLE macro hooks.
  26.  * 
  27.  *    Rev 1.5   21 Feb 1992 12:42:56   KEFFER
  28.  * Added RWNO_STD_TYPEDEFS directive.
  29.  * 
  30.  *    Rev 1.4   13 Nov 1991 11:45:52   keffer
  31.  * Added Class ID's for V4.1 new objects.
  32.  * 
  33.  *    Rev 1.3   28 Oct 1991 09:08:26   keffer
  34.  * Changed inclusions to <rw/xxx.h>
  35.  * 
  36.  *    Rev 1.2   08 Sep 1991 13:43:42   keffer
  37.  * Added STARTWRAP/ENDWRAP wrapper around stddef.h for Glockenspiel
  38.  * 
  39.  *    Rev 1.1   28 Jul 1991 12:35:34   keffer
  40.  * Now includes <stddef.h>.
  41.  * 
  42.  *    Rev 1.0   28 Jul 1991 08:17:44   keffer
  43.  * Tools.h++ V4.0.5 PVCS baseline version
  44.  *
  45.  */
  46.  
  47. #ifndef __RWDEFS_H__
  48. #  include "rw/defs.h"
  49. #endif
  50. STARTWRAP
  51. #include <stddef.h>
  52. ENDWRAP
  53.  
  54. class RWExport RWBag;
  55. class RWExport RWBagIterator;
  56. class RWExport RWBinaryTree;
  57. class RWExport RWBinaryTreeIterator;
  58. class RWExport RWCollectable;
  59. class RWExport RWCollectableDate;
  60. class RWExport RWCollectableInt;
  61. class RWExport RWCollectableString;
  62. class RWExport RWCollectableTime;
  63. class RWExport RWCollection;
  64. class RWExport RWDlistCollectables;
  65. class RWExport RWDlistCollectablesIterator;
  66. class RWExport RWHashDictionary;
  67. class RWExport RWHashDictionaryIterator;
  68. class RWExport RWIdentityDictionary;
  69. class RWExport RWIdentitySet;
  70. class RWExport RWOrdered;
  71. class RWExport RWOrderedIterator;
  72. class RWExport RWSequenceable;
  73. class RWExport RWSet;
  74. class RWExport RWSetIterator;
  75. class RWExport RWSlistCollectables;
  76. class RWExport RWSlistCollectablesIterator;
  77. class RWExport RWSlistCollectablesQueue;
  78. class RWExport RWSlistCollectablesStack;
  79.  
  80.  
  81. #ifndef RWNO_STD_TYPEDEFS
  82.  
  83. /*
  84.  * Standard Smalltalk interface which, in case of name
  85.  * collisions, can be either changed or optionally 
  86.  * #ifdef'd out by defining "RWNO_STD_TYPEDEFS" before
  87.  * including any files.
  88.  */
  89.  
  90. typedef RWBag                Bag;
  91. typedef RWBagIterator            BagIterator;
  92. typedef RWBinaryTree            SortedCollection;
  93. typedef RWBinaryTreeIterator        SortedCollectionIterator;
  94. typedef RWCollectable            Object;            // Careful: All-to-common type
  95. typedef RWCollectableDate        Date;
  96. typedef RWCollectableInt        Integer;
  97. typedef RWCollectableString        String;
  98. typedef RWCollectableTime        Time;
  99. typedef RWCollection            Collection;
  100. typedef RWHashDictionary        Dictionary;
  101. typedef RWHashDictionaryIterator    DictionaryIterator;
  102. typedef RWIdentityDictionary        IdentityDictionary;
  103. typedef RWIdentitySet            IdentitySet;
  104. typedef RWOrdered            OrderedCollection;
  105. typedef RWOrderedIterator        OrderedCollectionIterator;
  106. typedef RWSequenceable            SequenceableCollection;
  107. typedef RWSet                 Set;
  108. typedef RWSetIterator            SetIterator;
  109. typedef RWSlistCollectables        LinkedList;
  110. typedef RWSlistCollectablesIterator    LinkedListIterator;
  111. typedef RWSlistCollectablesQueue    Queue;
  112. typedef RWSlistCollectablesStack    Stack;
  113.  
  114. #endif    /* RWNO_STD_TYPEDEFS */
  115.  
  116. /*
  117.  * Class ID definitions:
  118.  */
  119.  
  120. #define __GDLIST                        0x8014
  121. #define __GDLISTITERATOR                0x8015
  122. #define __GQUEUE                        0x8016
  123. #define __GSTACK                        0x8017
  124. #define __GVECTOR                       0x8018
  125. #define __RWBAG                         0x801b
  126. #define __RWBAGITERATOR                 0x801c
  127. #define __RWBINARYTREE                  0x8001
  128. #define __RWBINARYTREEITERATOR          0x8002
  129. #define __RWBTREE                       0x8003
  130. #define __RWBTREEDICTIONARY             0x8004
  131. #define __RWBTREENODE                   0x8005
  132. #define __RWBTREEONDISK                 0x8006
  133. #define __RWCOLLECTABLE                 0x8007
  134. #define __RWCOLLECTABLEASSOCIATION      0x8008
  135. #define __RWCOLLECTABLEDATE             0x8009
  136. #define __RWCOLLECTABLEINT              0x800a
  137. #define __RWCOLLECTABLESTRING           0x800b
  138. #define __RWCOLLECTABLETIME             0x800c
  139. #define __RWCOLLECTION                  0x801d
  140. #define __RWDATE                        0x801e
  141. #define __RWDISKTREENODE                0x800d
  142. #define __RWDLINK                       0x800e
  143. #define __RWDLIST                       0x800f
  144. #define __RWDLISTCOLLECTABLES           0x8010
  145. #define __RWDLISTCOLLECTABLESITERATOR   0x8011
  146. #define __RWDLISTITERATOR               0x8012
  147. #define __RWFACTORY                     0x801f
  148. #define __RWFILEMANAGER                 0x8013
  149. #define __RWFREELISTDATA                0x8021
  150. #define __RWHASHDICTIONARY              0x8022
  151. #define __RWHASHDICTIONARYITERATOR      0x8023
  152. #define __RWIDENTITYDICTIONARY          0x8024
  153. #define __RWIDENTITYSET                 0x8025
  154. #define __RWINTEGER                     0x8026
  155. #define __RWITERATOR                    0x8027
  156. #define __RWORDERED                     0x8028
  157. #define __RWORDEREDITERATOR             0x8029
  158. #define __RWSEQUENCEABLE                0x802a
  159. #define __RWSET                         0x802b
  160. #define __RWSETITERATOR                 0x802c
  161. #define __RWSLINK                       0x8031
  162. #define __RWSLIST                       0x8032
  163. #define __RWSLISTCOLLECTABLES           0x8033
  164. #define __RWSLISTCOLLECTABLESITERATOR   0x8034
  165. #define __RWSLISTCOLLECTABLESQUEUE      0x8035
  166. #define __RWSLISTCOLLECTABLESSTACK      0x8036
  167. #define __RWSLISTITERATOR               0x8037
  168. //#define __RWSTRING                      0x802d
  169. #define __RWSTRINGREF                   0x802e
  170. //#define __RWSUBSTRING                   0x802f
  171. #define __RWTIME                        0x8030
  172. #define __RWTREENODE                    0x8038
  173.  
  174. // --- V4.0 new objects ---
  175. #define __GBITVEC            0x8040
  176. #define __GSLIST            0x8041
  177. #define __GSLISTITERATOR        0x8042
  178. #define __GSORTEDVECTOR            0x8043
  179. #define __RWBITREF            0x8045
  180. #define __RWBITVEC            0x8046
  181. #define __RWCACHEMANAGER        0x8048
  182. #define __RWREGEXP            0x8049
  183. #define __RWSORTEDVECTOR        0x804a
  184. #define __RWTOKENIZER            0x804b
  185.  
  186. // --- V4.1 new objects ---
  187. #define __RWDLLDICTIONARY        0x804c
  188. #define __RWDLLSET            0x804d
  189. #define __RWFACTORYMANAGER        0x804e
  190. #define __RWINSTANCEDATA        0x804f
  191. #define __RWINSTANCEDATAMANAGER        0x8050
  192. #define __RWINSTANCEMANAGER        0x8051
  193. #define __RWMODEL            0x8052
  194. #define __RWPROCESS            0x8053
  195. #define __RWPROCESSMANAGER        0x8054
  196. #define __RWREADMANAGER            0x8055
  197. #define __RWREADTABLE            0x8056
  198. #define __RWSTOREMANAGER        0x8057
  199. #define __RWSTORETABLE            0x8058
  200. #define __RWTHREAD            0x8059
  201.  
  202. // --- V5.0 new objects ---
  203. #define __RWCSTRING            0x802d    /* Recycled from RWString */
  204. #define __RWCSUBSTRING            0x802f    /* Recycled from RWSubString */
  205. #define __RWBUFFER            0x805a
  206. #define __RWTEMPLATE            0x805b
  207. #define __RWVIRTUALREF            0x805c
  208. #define __RWDISKPAGEHEAP        0x805d
  209.  
  210. /*
  211.  * Typedefs used internally:
  212.  */
  213. typedef RWCollectable*    RWCollectableP;
  214. typedef RWCollectable*    (*userCreator)();        
  215. typedef long        nodeOffset;
  216. typedef long        storedValue;    // Type of value in disk dictionaries.
  217. typedef long        RWoffset;    // Used for file offsets.
  218. typedef void*        RWvoid;        // Useful for arrays of void*.
  219.  
  220. #ifdef BSD
  221.   typedef int        RWspace;
  222. #else
  223.   typedef unsigned    RWspace;    // Used for file records.
  224. #endif
  225.  
  226. /*
  227.  * Pointer to function to test an object.  Returns TRUE if
  228.  * they are considered "a match", FALSE otherwise.
  229.  */
  230. typedef RWBoolean  (*RWtestGeneric)        (const void*, const void*);
  231. typedef RWBoolean  (*RWtestCollectable) (const RWCollectable*, const void*);
  232.  
  233. /*
  234.  * Pointer to functions to apply operation to objects: 
  235.  */
  236. typedef void (*RWapplyGeneric)( void*, void*);
  237. typedef void (*RWapplyCollectable)(RWCollectable*, void*);
  238.  
  239. /*
  240.  * Prototype for the binary search routine, used for insertions and finds:
  241.  */
  242. extern "C" void* rwexport
  243. RWbsearch(const void* key, const void* base, size_t nelem, size_t width, 
  244.           int (*)(const void*, const void*));
  245.  
  246. pragma pop_align_members();
  247. #endif /* __RWTOOLDEFS_H__ */
  248.