home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Headers / g++ / gen / OXPBag.hP < prev    next >
Text File  |  1993-06-29  |  1KB  |  73 lines

  1. #ifndef _<T>OXPBag_h
  2. #ifdef __GNUG__
  3. #pragma interface
  4. #endif
  5. #define _<T>OXPBag_h 1
  6.  
  7. #include "<T>.Bag.h"
  8. #include "<T>.XPlex.h"
  9.  
  10. class <T>OXPBag : public <T>Bag
  11. {
  12. protected:
  13.   <T>XPlex       p;
  14.  
  15. public:
  16.                 <T>OXPBag(int chunksize = DEFAULT_INITIAL_CAPACITY);
  17.                 <T>OXPBag(const <T>OXPBag&);
  18.  
  19.   Pix           add(<T&> item);
  20.   void          del(<T&> item);
  21.   void          remove(<T&>item);
  22.   int           nof(<T&> item);
  23.   int           contains(<T&> item);
  24.  
  25.   void          clear();
  26.  
  27.   Pix           first();
  28.   void          next(Pix& i);
  29.   <T>&          operator () (Pix i);
  30.   int           owns(Pix i);
  31.   Pix           seek(<T&> item, Pix from = 0);
  32.  
  33.   int           OK();
  34. };
  35.  
  36.  
  37. inline <T>OXPBag::<T>OXPBag(int chunksize) 
  38.      : p(chunksize) { count = 0; }
  39.  
  40. inline <T>OXPBag::<T>OXPBag(const <T>OXPBag& s) : p(s.p) { count = s.count; }
  41.  
  42. inline Pix <T>OXPBag::first()
  43. {
  44.   return p.first();
  45. }
  46.  
  47. inline void <T>OXPBag::next(Pix  & idx)
  48. {
  49.   p.next(idx);
  50. }
  51.  
  52. inline <T>& <T>OXPBag::operator ()(Pix   idx)
  53. {
  54.   return p(idx);
  55. }
  56.  
  57. inline void <T>OXPBag::clear()
  58. {
  59.   count = 0;  p.clear();
  60. }
  61.  
  62. inline int <T>OXPBag::owns (Pix   idx)
  63. {
  64.   return p.owns(idx);
  65. }
  66.  
  67. inline int <T>OXPBag::contains(<T&> item)
  68. {
  69.   return seek(item) != 0;
  70. }
  71.  
  72. #endif
  73.