Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

csimlist.h

00001 #ifndef __CSIMLIST_H__
00002 #define __CSIMLIST_H__
00003 
00004 template<class T, int inc> class csimList {
00005 public:
00007   csimList(void) {
00008     l = n =0;
00009     elements = 0;
00010   }
00011 
00013   void add(T *el) {
00014     if ( n >= l ) {
00015       l += inc;
00016       elements = (T **)realloc(elements,l*sizeof(T *));
00017     }
00018     elements[n++] = el;
00019   } 
00020 
00022   void destroy(void) {
00023     if (elements) {
00024       for(unsigned long i=0;i<n;i++)
00025         delete elements[i];
00026       free(elements); elements = 0;
00027       l = n =0;
00028     }
00029   }
00030 
00032   void destroy_arrays(void) {
00033     if (elements) {
00034       for(unsigned long i=0;i<n;i++)
00035         delete [] elements[i];
00036       free(elements); elements = 0;
00037       l = n =0;
00038     }
00039   }
00041   void clear(void) {
00042     if (elements) {
00043       free(elements); elements = 0;
00044       l=n=0; 
00045     }
00046   }
00047 
00049   ~csimList() {
00050     if (elements) {
00051       free(elements); elements=0;
00052       n = 0;
00053     }
00054   }
00055   unsigned long n;
00056   T **elements;
00057 private:
00058   unsigned long l;
00059 };
00060 #endif