home *** CD-ROM | disk | FTP | other *** search
-
- #include <classes/DataStructures/GenArraylist.h>
- #include <string.h>
-
- gen_arraylist::gen_arraylist(ULONG es, ULONG s)
- : gen_array(es,s)
- {
- top = 0;
- }
-
- VOID &gen_arraylist::addTail()
- {
- return gen_array::operator[] (top++);
- }
-
- VOID &gen_arraylist::insert(ULONG index)
- {
- if (index == top)
- return addTail();
- if (index < top)
- {
- gen_array::operator[] (top++);
- memmove(&gen_array::operator[] (index+1),
- &gen_array::operator[] (index),(top-index-1)*esize());
- };
- return gen_array::operator[] (index);
- }
-
- VOID gen_arraylist::remove(ULONG index)
- {
- if (index == top-1)
- --top
- else if (index < top-1)
- {
- --top;
- memmove(&gen_array::operator[] (index),
- &gen_array::operator[] (index+1),(top-index)*esize());
- };
- }
-
- VOID gen_arraylist::remTail()
- {
- if (top > 0)
- --top;
- }
-
- VOID gen_arraylist::clear()
- {
- top = 0;
- }
-
- // *************************************************************
-
- gen_arraycursor::gen_arraycursor(gen_arraylist &l)
- {
- list = &l;
- first();
- }
-
- VOID gen_arraycursor::first()
- {
- pos = 0;
- }
-
- VOID gen_arraycursor::last()
- {
- pos = list->length() - 1;
- }
-
- VOID gen_arraycursor::next()
- {
- if (pos < list->length())
- pos++;
- }
-
- VOID gen_arraycursor::prev()
- {
- if (pos >= 0)
- pos--;
- }
-
- VOID &gen_arraycursor::item()
- {
- return list->operator[](pos);
- }
-
- BOOL gen_arraycursor::isDone()
- {
- return pos >= list->length() || pos < 0;
- }
-
-