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
00052 Element* iterator;
00053
00054 ArrayList& set (const ArrayList & other);
00055
00056 public:
00057 ArrayList() EXTRA_SECTION_00;
00058 ArrayList(const ArrayList &other) EXTRA_SECTION_00;
00059 ~ArrayList() EXTRA_SECTION_00;
00060
00064 bool isEmpty() EXTRA_SECTION_00;
00065
00078 int add(int index, ArrayElement& element) EXTRA_SECTION_00;
00079
00085 int add(ArrayElement& element) EXTRA_SECTION_00;
00086
00091 int add(ArrayList* list) EXTRA_SECTION_00;
00092
00096 void clear() EXTRA_SECTION_00;
00097
00102 void clearAll() EXTRA_SECTION_00;
00103
00104 int removeElementAt(int index);
00105
00113 ArrayElement* get(int index) EXTRA_SECTION_00;
00114
00123 ArrayElement* front() EXTRA_SECTION_00;
00124
00133 ArrayElement* next() EXTRA_SECTION_00;
00134
00143 ArrayElement* prev() EXTRA_SECTION_00;
00144
00153 ArrayElement* back() EXTRA_SECTION_00;
00154
00158 int size() EXTRA_SECTION_00;
00159
00163 ArrayElement* operator[] (int index) EXTRA_SECTION_00;
00164
00168 ArrayList& operator= (const ArrayList &v) EXTRA_SECTION_00;
00169
00170 bool remove(int index) EXTRA_SECTION_00;
00174 ArrayList* clone();
00175
00176 };
00178 #endif