Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

univ.h

Go to the documentation of this file.
00001 // univ.h --
00002 // $Id: univ.h,v 1.6 2003/11/23 01:42:51 wcvs Exp $
00003 // This is part of Metakit, the homepage is https://www.equi4.com/metakit/
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 //  char _buffer[4];
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 //  c4_String& ElementAt(int nIndex);
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 


Metakit C++ API Reference - https://www.equi4.com/metakit.html - extracted with Doxygen