CSIM: csimlist.h Source File

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       }
00027       free(elements); elements = 0;
00028       l = n =0;
00029     }
00030   }
00031 
00033   void destroy_arrays(void) {
00034     if (elements) {
00035       for(unsigned long i=0;i<n;i++)
00036         delete [] elements[i];
00037       free(elements); elements = 0;
00038       l = n =0;
00039     }
00040   }
00042   void clear(void) {
00043     if (elements) {
00044       free(elements); elements = 0;
00045       l=n=0; 
00046     }
00047   }
00048 
00050   ~csimList() {
00051     if (elements) {
00052       free(elements); elements=0;
00053       n = 0;
00054     }
00055   }
00056   unsigned long n;
00057   T **elements;
00058 private:
00059   unsigned long l;
00060 };
00061 #endif

 
(C) 2003, Thomas Natschläger last modified 07/10/2006