home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / btree / protocols.h < prev   
Text File  |  1992-05-27  |  5KB  |  170 lines

  1. /*
  2. protocols.h
  3. Copyright 1991,NeXT Computer,Inc.
  4. */
  5.  
  6. #import    <store/protocols.h>
  7.  
  8. typedef int 
  9. IXComparator(const void *data1, unsigned short length1, 
  10.     const void *data2, unsigned short length2, const void *context);
  11.  
  12. #ifndef    RELEASE_2
  13. @protocol IXComparatorSetting
  14. #else    RELEASE_2
  15. @interface Object (IXComparatorSetting)
  16. #endif    RELEASE_2
  17.  
  18. // context is arbitrary, caller supplied pointer passed to comparator
  19. - getComparator:(IXComparator **)comparator andContext:(const void **)context;
  20. - setComparator:(IXComparator *)comparator andContext:(const void *)context;
  21.  
  22. @end
  23.  
  24. #ifndef    RELEASE_2
  25. @protocol IXComparisonSetting
  26. #else    RELEASE_2
  27. @interface Object (IXComparisonSetting)
  28. #endif    RELEASE_2
  29.  
  30. // caller supplied comparator is cleared, and format string is installed
  31. - (const char *)comparisonFormat;
  32. - setComparisonFormat:(const char *)aFormat;
  33.  
  34. @end
  35.  
  36. #ifndef    RELEASE_2
  37. @protocol IXCursorPositioning
  38. #else    RELEASE_2
  39. @interface Object (IXCursorPositioning)
  40. #endif    RELEASE_2
  41.  
  42. - (BOOL)setFirst; // pos#ns cursor at first key in key space
  43. - (BOOL)setLast; // positions cursor at last key in key space
  44. - (BOOL)setNext; // positions cursor at next key in key space
  45. - (BOOL)setPrevious; // position cursor at previous key in key space
  46.  
  47. - (BOOL)getKey:(const void **)key // returns value of key at cursor
  48.     andLength:(unsigned *)length;
  49. - (BOOL)setKey:(const void *)key // positions cursor at supplied key
  50.     andLength:(unsigned)length;
  51.  
  52. - (BOOL)isMatch; // true if cursor matched a key on last operation
  53.  
  54. @end
  55.  
  56. // a weighted reference to something that can be described by a handle
  57. typedef struct IXPosting    {
  58.     unsigned            handle;
  59.     unsigned            weight;
  60. } IXPosting;
  61.  
  62. #ifndef    RELEASE_2
  63. @protocol IXPostingExchange
  64. #else    RELEASE_2
  65. @interface Object (IXPostingExchange)
  66. #endif    RELEASE_2
  67.  
  68. - getCount:(unsigned *)theCount andPostings:(IXPosting **)thePostings;
  69. - setCount:(unsigned)theCount andPostings:(const IXPosting *)thePostings;
  70.  
  71. @end
  72.  
  73. #ifndef    RELEASE_2
  74. @protocol IXPostingOperations
  75. #else    RELEASE_2
  76. @interface Object (IXPostingOperations)
  77. #endif    RELEASE_2
  78.  
  79. - addHandle:(unsigned)handle withWeight:(unsigned)weight;
  80. - removeHandle:(unsigned)handle;
  81.  
  82. - (unsigned)count;
  83. - empty;
  84.  
  85. - (unsigned)setFirstHandle;
  86. - (unsigned)setNextHandle;
  87.  
  88. - (unsigned)setHandle:(unsigned)handle;
  89. - (unsigned)getHandle:(unsigned *)handle 
  90.     andWeight:(unsigned *)weight;
  91.  
  92. @end
  93.  
  94. extern int 
  95. IXFormatComparator(const void *data1, unsigned short length1, 
  96.     const void *data2, unsigned short length2, void *format);
  97.  
  98. extern int 
  99. IXCompareStrings(const void *data1, unsigned short length1, 
  100.     const void *data2, unsigned short length2, const void *context);
  101.  
  102. extern int 
  103. IXCompareMonocaseStrings(const void *data1, unsigned short length1, 
  104.     const void *data2, unsigned short length2, const void *context);
  105.  
  106. extern int 
  107. IXCompareBytes(const void *data1, unsigned short length1, 
  108.     const void *data2, unsigned short length2, const void *context);
  109.  
  110. extern int 
  111. IXCompareShort(const void *data1, unsigned short length1, 
  112.     const void *data2, unsigned short length2, const void *context);
  113.  
  114. extern int 
  115. IXCompareShorts(const void *data1, unsigned short length1, 
  116.     const void *data2, unsigned short length2, const void *context);
  117.  
  118. extern int 
  119. IXCompareLong(const void *data1, unsigned short length1, 
  120.     const void *data2, unsigned short length2, const void *conte$
  121.  
  122. extern int 
  123. IXCompareLongs(const void *data1, unsigned short length1, 
  124.     const void *data2, unsigned short length2, const void *context);
  125.  
  126. extern int 
  127. IXCompareUnsignedBytes(const void *data1, unsigned short length1, 
  128.     const void *data2, unsigned short length2, const void *context);
  129.  
  130. extern int 
  131. IXCompareUnsignedShort(const void *data1, unsigned short length1, 
  132.     const void *data2, unsigned short length2, const void *context);
  133.  
  134. extern int 
  135. IXCompareUnsignedShorts(const void *data1, unsigned short length1, 
  136.     const void *data2, unsigned short length2, const void *context);
  137.  
  138. extern int 
  139. IXCompareUnsignedLong(const void *data1, unsigned short length1, 
  140.     const void *data2, unsigned short length2, const void *context);
  141.  
  142. extern int 
  143. IXCompareUnsignedLongs(const void *data1, unsigned short length1, 
  144.     const void *data2, unsigned short length2, const void *context);
  145.  
  146. extern int 
  147. IXCompareFloat(const void *data1, unsigned short length1, 
  148.     const void *data2, unsigned short length2, const void *context);
  149.  
  150. extern int 
  151. IXCompareFloats(const void *data1, unsigned short length1, 
  152.     const void *data2, unsigned short length2, const void *context);
  153.  
  154. extern int 
  155. IXCompareDouble(const void *data1, unsigned short length1, 
  156.     const void *data2, unsigned short length2, const void *context);
  157.  
  158. extern int 
  159. IXCompareDoubles(const void *data1, unsigned short length1, 
  160.     const void *data2, unsigned short length2, const void *context);
  161.  
  162. extern int 
  163. IXCompareStringAndUnsigneds(const void *data1, unsigned short length1, 
  164.     const void *data2, unsigned short length2, const void *context);
  165.  
  166. extern int 
  167. IXCompareUnsignedAndStrings(const void *data1, unsigned short length1, 
  168.     const void *data2, unsigned short length2, const void *context);
  169.  
  170.