00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkList_h
00012 #define __mitkList_h
00013
00014 #include "mitkObject.h"
00015
00016 struct mitkListNode
00017 {
00018 mitkObject *Item;
00019 mitkListNode *Next;
00020 };
00021
00025 class MITK_COMMON_API mitkList
00026 {
00027 public:
00028 mitkList();
00029 virtual ~mitkList();
00030 void Delete() {delete this;}
00031
00035 void Add(mitkObject *itemAdding);
00036
00040 void Insert(mitkObject *itemInserting, int pos);
00041
00045 void Replace(int i, mitkObject *itemNew);
00046
00050 void Remove(int i);
00051
00055 void Remove(mitkObject *itemRemove);
00056
00060 void RemoveAll();
00061 void Clear();
00062
00067 int Find(mitkObject *itemFinding);
00068
00072 mitkObject* GetItem(int i);
00073 mitkObject* Item(int i);
00074
00078 int Count() {return m_Count;}
00079 int GetNumberOfItems() {return m_Count;}
00080
00084 void InitTraversal() {m_Current = m_Top;}
00085 mitkObject* GetNextItem(void);
00086
00087 protected:
00088 int m_Count;
00089 mitkListNode *m_Top;
00090 mitkListNode *m_Bottom;
00091 mitkListNode *m_Current;
00092
00093
00094 private:
00095 mitkList(const mitkList&);
00096 void operator=(const mitkList&);
00097 };
00098
00099
00100
00101
00102
00103
00104 #endif
00105