#ifndef DEF_EARRAY_H #define DEF_EARRAY_H #include /* * This class implements a simple extensible array structure. * An entry with a 0 value is considered free and can be allocated. * The array will free as much space when elements are removed. */ template struct earray { private: int ref_vect_init_len; int vect_len; // NEVER CHANGE THIS AFTER INITIALISATION!!!! int ref_vect_len; int elements; T ***data; mutex_t mutex; public: earray(int refvectinitlen, int vectlen); ~earray(); int add(T* ptr); // return element number or -1 if fail T* at(int num); // returns 0 when nothing void set(int num, T* ptr); int count() { return elements; } }; #endif