36 lines
1.0 KiB
C
36 lines
1.0 KiB
C
#ifndef _H_OVOneToAny
|
|
#define _H_OVOneToAny
|
|
|
|
|
|
/* OneToAny: A bidirectional associative array for ov_words
|
|
*
|
|
* associates a unique ov_word to a unique ov_word in both forward and
|
|
* reverse directions.
|
|
*
|
|
*/
|
|
|
|
#include "OVHeap.h"
|
|
#include "OVreturns.h"
|
|
|
|
typedef struct _OVOneToAny OVOneToAny;
|
|
|
|
OVOneToAny *OVOneToAny_New(OVHeap * heap);
|
|
OVstatus OVOneToAny_Init(OVOneToAny * o2o, OVHeap * heap);
|
|
void OVOneToAny_Purge(OVOneToAny * o2o);
|
|
void OVOneToAny_Del(OVOneToAny * o2o);
|
|
void OVOneToAny_Reset(OVOneToAny * up);
|
|
|
|
OVreturn_word OVOneToAny_GetKey(OVOneToAny * o2o, ov_word forward_value);
|
|
OVstatus OVOneToAny_SetKey(OVOneToAny * o2o, ov_word forward_value,
|
|
ov_word reverse_value);
|
|
|
|
OVstatus OVOneToAny_Pack(OVOneToAny * o2o);
|
|
OVreturn_size OVOneToAny_GetSize(OVOneToAny * o2o);
|
|
OVstatus OVOneToAny_DelKey(OVOneToAny * o2o, ov_word forward_value);
|
|
void OVOneToAny_Stats(OVOneToAny * o2o);
|
|
void OVOneToAny_Dump(OVOneToAny * o2o);
|
|
|
|
#define OVOneToAny_DEL_AUTO_NULL(I) { if(I) { OVOneToAny_Del(I); I=OV_NULL; }}
|
|
|
|
#endif
|