/***********************************************************************
 *
 * TITLE:
 *	dynarray.h
 *
 * AUTHOR:
 *	Kevin J. Miller
 *
 * DESCRIPTION:
 *	Defines the structure for a dynamic array of integers
 *
 *				CHANGE HISTORY
 *
 * $Log: dynarray.h,v $
 * Revision 1.3  1994/05/04  23:36:45  clm
 * ported to ANSI C
 *
 * Revision 1.2  1992/12/01  17:31:00  clm
 * added function declarations
 *
 * Revision 1.1  1992/11/09  17:03:12  clm
 * Initial revision
 *
 ***********************************************************************/

#ifndef __dynarray_h
#define __dynarray_h
 
#ifndef lint
static char rcsid_dynarray_h[] =
     "$Id: dynarray.h,v 1.3 1994/05/04 23:36:45 clm OEL $";
#endif

#define DYNARRAY_BATCH_SIZE 4

struct dynarray {
    int (*basptr)[];
    int nelems;
    int nslots;
};

/*
 * function list
 */

struct dynarray *new_dynarray(void);
void append_dynarray(struct dynarray *ptr, int x);
void delete_dynarray(struct dynarray *ptr);
void delete_element(int co, struct dynarray *ptr);

/*
 * macro list
 */

#define elemof_dynarray(ptr, i) ((*((ptr)->basptr))[i])
#define sizeof_dynarray(ptr) ((ptr)->nelems)

#endif  /* !__dynarray_h */
