00001
00002
00003
00004
00009 #define q4_UNIV 1
00010
00011 #include "mk4str.h"
00012
00014
00015 class c4_BaseArray
00016 {
00017 public:
00018 c4_BaseArray ();
00019 ~c4_BaseArray ();
00020
00021 int GetLength() const;
00022 void SetLength(int nNewSize);
00023
00024 const void* GetData(int nIndex) const;
00025 void* GetData(int nIndex);
00026
00027 void Grow(int nIndex);
00028
00029 void InsertAt(int nIndex, int nCount);
00030 void RemoveAt(int nIndex, int nCount);
00031
00032 private:
00033 char* _data;
00034 int _size;
00035
00036 };
00037
00038 class c4_PtrArray
00039 {
00040 public:
00041 c4_PtrArray ();
00042 ~c4_PtrArray ();
00043
00044 int GetSize() const;
00045 void SetSize(int nNewSize, int nGrowBy = -1);
00046
00047 void* GetAt(int nIndex) const;
00048 void SetAt(int nIndex, const void* newElement);
00049 void*& ElementAt(int nIndex);
00050
00051 int Add(void* newElement);
00052
00053 void InsertAt(int nIndex, void* newElement, int nCount = 1);
00054 void RemoveAt(int nIndex, int nCount = 1);
00055
00056 private:
00057 static int Off(int n_);
00058
00059 c4_BaseArray _vector;
00060 };
00061
00062 class c4_DWordArray
00063 {
00064 public:
00065 c4_DWordArray ();
00066 ~c4_DWordArray ();
00067
00068 int GetSize() const;
00069 void SetSize(int nNewSize, int nGrowBy = -1);
00070
00071 t4_i32 GetAt(int nIndex) const;
00072 void SetAt(int nIndex, t4_i32 newElement);
00073 t4_i32& ElementAt(int nIndex);
00074
00075 int Add(t4_i32 newElement);
00076
00077 void InsertAt(int nIndex, t4_i32 newElement, int nCount = 1);
00078 void RemoveAt(int nIndex, int nCount = 1);
00079
00080 private:
00081 static int Off(int n_);
00082
00083 c4_BaseArray _vector;
00084 };
00085
00086 class c4_StringArray
00087 {
00088 public:
00089 c4_StringArray ();
00090 ~c4_StringArray ();
00091
00092 int GetSize() const;
00093 void SetSize(int nNewSize, int nGrowBy = -1);
00094
00095 const char* GetAt(int nIndex) const;
00096 void SetAt(int nIndex, const char* newElement);
00097
00098
00099 int Add(const char* newElement);
00100
00101 void InsertAt(int nIndex, const char* newElement, int nCount = 1);
00102 void RemoveAt(int nIndex, int nCount = 1);
00103
00104 private:
00105 c4_PtrArray _ptrs;
00106 };
00107
00109
00110 #if q4_INLINE
00111 #include "univ.inl"
00112 #endif
00113
00115