aboutsummaryrefslogtreecommitdiff
path: root/jindroush/chkbas/carray.h
diff options
context:
space:
mode:
Diffstat (limited to 'jindroush/chkbas/carray.h')
-rw-r--r--jindroush/chkbas/carray.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/jindroush/chkbas/carray.h b/jindroush/chkbas/carray.h
new file mode 100644
index 0000000..9779cad
--- /dev/null
+++ b/jindroush/chkbas/carray.h
@@ -0,0 +1,49 @@
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//
+
+#include "jintypes.h"
+
+#ifndef __CARRAY_H__
+#define __CARRAY_H__
+
+#define CARRAY_SUB_SIZE 16
+
+typedef struct sa
+{
+ struct sa* pPrev;
+ struct sa* pNext;
+ void* array[ CARRAY_SUB_SIZE ];
+
+} SubArray;
+
+class CArray
+{
+public:
+ CArray();
+ ~CArray();
+ void* GetAt( int );
+ BOOL SetAt( int, void* );
+ int GetSize() { return m_iArrayItems; };
+ BOOL Add( void* );
+ BOOL DeleteLast();
+ void Destroy();
+private:
+ BOOL AddNewBlock();
+ int m_iAllocatedBlocks;
+ int m_iArrayItems;
+ SubArray * m_pFirstBlock;
+};
+
+#endif