home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / yacl-012.zip / base / objset.cxx < prev    next >
C/C++ Source or Header  |  1995-04-04  |  2KB  |  84 lines

  1.  
  2.  
  3.  
  4.  
  5. /*
  6.  *
  7.  *          Copyright (C) 1994, M. A. Sridhar
  8.  *  
  9.  *
  10.  *     This software is Copyright M. A. Sridhar, 1994. You are free
  11.  *     to copy, modify or distribute this software  as you see fit,
  12.  *     and to use  it  for  any  purpose, provided   this copyright
  13.  *     notice and the following   disclaimer are included  with all
  14.  *     copies.
  15.  *
  16.  *                        DISCLAIMER
  17.  *
  18.  *     The author makes no warranties, either expressed or implied,
  19.  *     with respect  to  this  software, its  quality, performance,
  20.  *     merchantability, or fitness for any particular purpose. This
  21.  *     software is distributed  AS IS.  The  user of this  software
  22.  *     assumes all risks  as to its quality  and performance. In no
  23.  *     event shall the author be liable for any direct, indirect or
  24.  *     consequential damages, even if the  author has been  advised
  25.  *     as to the possibility of such damages.
  26.  *
  27.  */
  28.  
  29.  
  30.  
  31.  
  32. #ifdef __GNUC__
  33. #pragma implementation
  34. #endif
  35.  
  36.  
  37.  
  38. #include "base/setimp.cxx"
  39.  
  40.  
  41. #if defined(__GNUC__) && __GNUC_MINOR__ >= 6
  42. template class CL_Set<CL_ObjectPtr>;
  43. template class CL_Iterator<CL_ObjectPtr>;
  44. template class CL_SetIterator<CL_ObjectPtr>;
  45. #endif
  46.  
  47.  
  48. #include "base/objset.h"
  49. #include "base/objseq.h"
  50.  
  51.  
  52.  
  53. CL_DEFINE_CLASS(CL_ObjectSet, _CL_ObjectSet_CLASSID);
  54.  
  55.  
  56. CL_ObjectSet::CL_ObjectSet (CL_ObjectIOFilter* bld)
  57. : CL_Set<CL_ObjectPtr> (new CL_ObjectSequence (0, bld))
  58. {
  59. }
  60.  
  61.  
  62. CL_ObjectSet::CL_ObjectSet (const CL_ObjectSet& s)
  63. : CL_Set<CL_ObjectPtr> (s)
  64. {
  65. }
  66.  
  67.  
  68. CL_ObjectPtr CL_ObjectSet::Find (CL_ObjectPtr p) const
  69. {
  70.     if (!_idata)
  71.         return NULL;
  72.     long l;
  73.     CL_ObjectSequence& _data = * (CL_ObjectSequence*) _idata;
  74.     return _data.BinarySearch (p, l) ? _data[l] : (CL_ObjectPtr) NULL;
  75. }
  76.  
  77.  
  78. void CL_ObjectSet::DestroyContents ()
  79. {
  80.     if (_idata)
  81.         ((CL_ObjectSequence*) _idata)->DestroyContents();
  82. }
  83.  
  84.