#ifndef __PtrArray__H
#define __PtrArray__H

#include "WimpLib:std.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct PtrArray PtrArray;

PtrArray* New_PtrArray   (int grow_count) throws(mem);
void      Delete_PtrArray(PtrArray*);

int       PtrArray_Count (const PtrArray*);

void      PtrArray_Insert(PtrArray*, int index, void* pobj) throws(mem index);
void      PtrArray_Set   (PtrArray*, int index, void* pobj) throws(index);
void      PtrArray_Remove(PtrArray*, int index) throws(index);
void      PtrArray_Clear (PtrArray*);

void*     PtrArray_Get   (const PtrArray*, int index) throws(index);
int       PtrArray_Find  (const PtrArray*, int start, const void* pobj) throws(index);

#ifdef __cplusplus
}
#endif

#endif
