32 lines
1.0 KiB
C
32 lines
1.0 KiB
C
/* vector.h ..... store a vector of PPTP_CALL information and search it
|
|
* efficiently.
|
|
* C. Scott Ananian <cananian@alumni.princeton.edu>
|
|
*
|
|
* $Id: vector.h,v 1.2 2011/12/19 07:15:03 quozl Exp $
|
|
*/
|
|
|
|
#ifndef INC_VECTOR_H
|
|
#define INC_VECTOR_H
|
|
|
|
#include "pptp_ctrl.h" /* for definition of PPTP_CALL */
|
|
|
|
typedef struct vector_struct VECTOR;
|
|
|
|
VECTOR *vector_create(void);
|
|
void vector_destroy(VECTOR *v);
|
|
|
|
int vector_size(VECTOR *v);
|
|
|
|
/* vector_insert and vector_search return TRUE on success, FALSE on failure. */
|
|
int vector_insert(VECTOR *v, int key, PPTP_CALL * call);
|
|
int vector_remove(VECTOR *v, int key);
|
|
int vector_search(VECTOR *v, int key, PPTP_CALL ** call);
|
|
/* vector_contains returns FALSE if not found, TRUE if found. */
|
|
int vector_contains(VECTOR *v, int key);
|
|
/* find first unused key. Returns TRUE on success, FALSE if no. */
|
|
int vector_scan(VECTOR *v, int lo, int hi, int *key);
|
|
/* get a specific PPTP_CALL ... useful only when iterating. */
|
|
PPTP_CALL * vector_get_Nth(VECTOR *v, int n);
|
|
|
|
#endif /* INC_VECTOR_H */
|