mhArray.h
gehe zur Dokumentation dieser Datei
00001 
00023 #ifndef mhARRAY_H
00024 #define mhARRAY_H
00025 
00026 #include "wx/dynarray.h"
00027 
00028 #define DEF_MHARRAY(T, name, baseType)                                                          \
00029 class name                                                                                                                      \
00030 {                                                                   \
00031 public:                                                             \
00032     baseType data;                                                                                                      \
00033         name(int WXUNUSED(i), int WXUNUSED(j), int WXUNUSED(k)) {};                       \
00034         ~name() {};                                                     \
00035         size_t GetItemsInContainer() const { return data.GetCount(); }  \
00036         void Flush() { data.Clear(); }                                 \
00037     void Add(T t) { data.Add(t); }                                                                      \
00038     T& operator[](size_t uiIndex) const { return data[uiIndex]; }       \
00039         void Destroy(size_t uiIndex) { data.RemoveAt(uiIndex); }                \
00040         void AddAt(T t, size_t uiIndex) { data.Insert(t, uiIndex); }            \
00041         void RemoveEntry(size_t uiIndex) { data.RemoveAt(uiIndex); }    \
00042 };                                                                                                                                      \
00043 
00044 /*
00045 */
00046 #define DEF_MHARRAYPTR(T, name, baseType)                                                       \
00047 class name                                                                                                                      \
00048 {                                                                   \
00049 public:                                                             \
00050     baseType data;                                                                                                      \
00051     name(int WXUNUSED(i), int WXUNUSED(j), int WXUNUSED(k)) {};                       \
00052         ~name() {};                                                     \
00053     size_t GetItemsInContainer() const { return data.GetCount(); }  \
00054     void Add(T t) { data.Add(new T(t)); }                                       \
00055         void Flush() { data.Clear(); }                                  \
00056         void RemoveEntry(size_t i) { data.RemoveAt(i); }                                        \
00057     T& operator[](size_t uiIndex) const { return *(data[uiIndex]); }\
00058         void Destroy(size_t uiIndex) { /*delete data[uiIndex];*/ data.RemoveAt(uiIndex); }              \
00059         void AddAt(T t, size_t uiIndex) { data.Insert(new T(t), uiIndex); }             \
00060 };                                                                                                                                      \
00061 
00062 #define DEF_STACK(T, name, baseType)                                                                                    \
00063 class name                                                                                                                      \
00064 {                                                                   \
00065 public:                                                             \
00066         baseType data;                                                                                          \
00067     name() {};                       \
00068     name(int WXUNUSED(i), int WXUNUSED(j), int WXUNUSED(k)) {};                       \
00069         ~name() {};                                                                                                             \
00070         void Push(T t) { data.Add(t); }                                                                 \
00071         T Pop() { T h = data.Last(); data.RemoveAt(data.GetCount()-1); return h; } \
00072         bool IsEmpty() const { return data.GetCount() == 0; }                   \
00073         T Top() const { return data.Last(); }                                                   \
00074 };                                                                                                                                      \
00075 
00076 #endif
00077 
00078 

Erzeugt am Sun Aug 21 2011 10:51:56 für Mutabor von doxygen 1.7.4