blob: b6d0a555323443657984cba8de8713fbcf7c8864 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#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);
};
#endif
|