home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tlx501.zip / SRC / VPSET.CPP < prev    next >
C/C++ Source or Header  |  1996-07-08  |  4KB  |  127 lines

  1. /****************************************************************************
  2.     $Id: vpset.cpp 501.0 1995/03/07 12:26:28 RON Exp $
  3.  
  4.     Copyright (c) 1991-95 Tarma Software Research. All rights reserved.
  5.  
  6.     Project:    Tarma Library for C++ V5.0
  7.     Author:    Ron van der Wal
  8.  
  9.     Implementation of class TLVPSet.
  10.  
  11.     $Log: vpset.cpp $
  12.     Revision 501.0  1995/03/07 12:26:28  RON
  13.     Updated for TLX 5.01
  14.     Revision 1.7  1995/01/31 16:30:34  RON
  15.     Update for release 012
  16.     Added partial support for SunPro C++ compiler
  17.     Revision 1.6  1995/01/06  15:58:56  ron
  18.     Corrected Revision keyword
  19.  
  20.     Revision 1.5  1994/11/16  15:46:10  ron
  21.     Added module info; rearranged #include directives
  22.  
  23.     Revision 1.4  1994/09/28  14:47:53  ron
  24.     Removed Macintosh-style #include references
  25.  
  26.     Revision 1.3  1994/09/27  20:23:34  ron
  27.     Changed path separator from / to \
  28.  
  29.     Revision 1.2  1994/09/26  15:51:53  ron
  30.     Changed include file references
  31.  
  32.     Revision 1.1  1994/08/16  18:13:23  ron
  33.     Initial revision
  34.  
  35. ****************************************************************************/
  36.  
  37. #include <tlx\501\_build.h>
  38.  
  39. TLX_MODULE_INFO("$Revision: 501.0 $");
  40.  
  41. #include <tlx\501\except.h>        // Exception handling
  42. #include <tlx\501\vparrays.h>    // Class declaration
  43.  
  44. /*-------------------------------------------------------------------------*/
  45.     TLVPSet::TLVPSet(size_t aSize, size_t aDelta)
  46.  
  47. /*  Constructor, creates a set of specific initial capacity and expansion
  48.     factor. Also doubles as default constructor, creating and empty and
  49.     nonexpandable set.
  50. ---------------------------------------------------------------------------*/
  51. : mSeq(aSize, aDelta)
  52. {
  53.     TLX_ASSERT(Size() == aSize);
  54. }
  55.  
  56. /*-------------------------------------------------------------------------*/
  57.     TLVPSet::TLVPSet(void *aPtr)
  58.  
  59. /*  Constructor, creating a single element set that is not expandable.
  60. ---------------------------------------------------------------------------*/
  61. : mSeq(aPtr)
  62. {
  63.     TLX_ASSERT(Size() == 1);
  64. }
  65.  
  66. /*-------------------------------------------------------------------------*/
  67.     TLVPSet::TLVPSet(void **aVector, size_t aSize)
  68.  
  69. /*  Constructor, creating a set that contains a copy of a C-style vector.
  70.     The set is not expandable initially.
  71. ---------------------------------------------------------------------------*/
  72. : mSeq(aVector, aSize)
  73. {
  74.     TLX_ASSERT(Size() == aSize);
  75. }
  76.  
  77. /*-------------------------------------------------------------------------*/
  78.     TLVPSet::TLVPSet(const TLVPSet &aSet)
  79.  
  80. /*  Copy constructor. Creates a copy of another set.
  81. ---------------------------------------------------------------------------*/
  82. : mSeq(aSet.mSeq)
  83. {
  84.     TLX_ASSERT(Size() == aSet.Size());
  85. }
  86. #if 0
  87. /*-------------------------------------------------------------------------*/
  88.     void *&TLVPSet::PeekIter(index_t aIndex)
  89.  
  90. /*  Returns a reference to the current iterator element.
  91. ---------------------------------------------------------------------------*/
  92. {
  93.     return mSeq[aIndex];    // Will test index validity
  94. }
  95.  
  96. /*-------------------------------------------------------------------------*/
  97.     void *TLVPSet::PeekIter(index_t aIndex) const
  98.  
  99. /*  Returns the value of the current iterator element.
  100. ---------------------------------------------------------------------------*/
  101. {
  102.     return mSeq[aIndex];    // Will test index validity
  103. }
  104.  
  105. /*-------------------------------------------------------------------------*/
  106.     bool TLVPSet::IterStart(index_t &aIndex) const
  107.  
  108. /*  Resets set iterator, returning nonzero if the iterator is valid after
  109.     the operation.
  110. ---------------------------------------------------------------------------*/
  111. {
  112.     aIndex = mSeq.Mini();
  113.     return !mSeq.IsEmpty();
  114. }
  115.  
  116. /*-------------------------------------------------------------------------*/
  117.     bool TLVPSet::IterNext(index_t &aIndex) const
  118.  
  119. /*  Advances the set iterator to the next element in the set, returning
  120.     nonzero if the iterator is valid after the operation.
  121. ---------------------------------------------------------------------------*/
  122. {
  123.     aIndex++;
  124.     return mSeq.IsValidIndex(aIndex);
  125. }
  126. #endif
  127.