ftp.nice.ch/pub/next/unix/audio/line2sine.1.0.NI.bs.tar.gz#/line2sine/include/Collection.h

This is Collection.h in view mode; [Download] [Up]

//
// Programmer:    Craig Stuart Sapp <craig@ccrma.stanford.edu>
// Creation Date: Wed Feb  5 19:42:53 PST 1997
// Last Modified: Tue Apr 22 20:28:16 GMT-0800 1997
// Filename:      /Users/craig/lang/c/sig/src/Collection
// Syntax:        C++ 
// $Smake:        cc -g -c %b.cc -I../../include && rm -f %b.o
//

#ifndef _COLLECTION_H_INCLUDED
#define _COLLECTION_H_INCLUDED

template<class type>
class Collection {

   public:
                Collection        (void);
                Collection        (int arraySize);
                Collection        (int arraySize, type *aCollection);
                Collection        (Collection<type>& aCollection);
               ~Collection        ();

      void      allowGrowth       (int status = 1);
      void      append            (type& element);
//    void      append            (type element);
      void      append            (type* element);
      type     *getBase           (void);
      long      getSize           (void) const;
      type     *pointer           (void);
      void      setGrowth         (long growth);
      void      setSize           (long newSize);
      type&     operator[]        (int arrayIndex);
      type      operator[]        (int arrayIndex) const;
      void      grow              (long growamt = -1);


   protected:
      long      size;             // actual array size
      long      allocSize;        // maximum allowable array size
      type     *array;            // where the array data is stored
      char      allowGrowthQ;     // allow/disallow growth
      long      growthAmount;     // number of elements to grow by if index
				  //    element one beyond max size is accessed
      long maxSize;               // the largest size the array is allowed 
                                  //    to grow to, if 0, then ignore max
};

#ifdef VISUAL
   #include "Collection.cpp"
#else
   #include "Collection.cc"    /* necessary for template for Unix compiler */
#endif VISUAL


#endif  _COLLECTION_H_INCLUDED

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.