blob: d3d7a9bf0c0e05cb9836f411e6a17f6c1c15d171 (
plain) (
tree)
|
|
#ifndef DEF_EARRAY_H
#define DEF_EARRAY_H
#include <sched.h>
/*
* 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 <typename T>
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
|