/****************************************************************** 
 *
 * cacheclass.h --
 *
 *     Interface to caching class.
 *
 *
 * Created: 7 June 1998
 * $Author: mstoufer $
 * $Date: 2000/12/05 19:52:33 $
 * $Id: cacheclass.h,v 1.1.1.1 2000/12/05 19:52:33 mstoufer Exp $
 *
 ****************************************************************** 
 */
#ifndef NLV_CACHE_INCLUDED
#define NLV_CACHE_INCLUDED

#include "structs.h"
#include "errclass.h"

/*========= DATA =====================================================*/

#define T Nlv_ca
typedef struct T *T;

/*========= FUNCTIONS ================================================*/

T     Nlv_caNew( );
int   Nlv_caAdd( T, void* data);
void* Nlv_caRemove( T, Nlv_filterFn filter, void *fildata); 
void* Nlv_caReentrantRemove( T, Nlv_filterFn filter, void *fildata); 
void* Nlv_caReentrantExamine( T, Nlv_filterFn filter, void *fildata); 
void  Nlv_caReentrantClear( T this );
void  Nlv_caSetCapacity( T, int sz );
int   Nlv_caGetSize( T );
int   Nlv_caIsFull( T );

#undef T
#endif

