00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef INCL_BASE_UTIL_ARRAY_LIST
00021 #define INCL_BASE_UTIL_ARRAY_LIST
00022
00024 #include "base/fscapi.h"
00025
00026 #include "base/util/ArrayElement.h"
00027
00043 struct Element {
00044 ArrayElement* e;
00045 Element* n;
00046 };
00047
00048 class ArrayList {
00049 private:
00050 Element* head;
00051 Element* lastElement;
00052
00053 Element* iterator;
00054
00055 int count;
00056
00057 ArrayList& set (const ArrayList & other);
00058
00059 public:
00060 ArrayList();
00061 ArrayList(const ArrayList &other);
00062 ~ArrayList();
00063
00067 bool isEmpty();
00068
00081 int add(int index, ArrayElement& element);
00082
00088 int add(ArrayElement& element);
00089
00094 int add(ArrayList* list);
00095
00099 void clear();
00100
00105 void clearAll();
00106
00107 int removeElementAt(int index);
00108
00116 ArrayElement* get(int index);
00117
00126 ArrayElement* front();
00127
00136 ArrayElement* next();
00137
00146 ArrayElement* prev();
00147
00156 ArrayElement* back();
00157
00161 int size();
00162
00166 ArrayElement* operator[] (int index);
00167
00171 ArrayList& operator= (const ArrayList &v);
00172
00173
00177 ArrayList* clone();
00178
00179 };
00181 #endif