1 #ifndef _H_OVOneToAny
2 #define _H_OVOneToAny
3 
4 
5 /* OneToAny: A bidirectional associative array for ov_words
6  *
7  * associates a unique ov_word to a unique ov_word in both forward and
8  * reverse directions.
9  *
10 */
11 
12 #include "OVHeap.h"
13 #include "OVreturns.h"
14 
15 typedef struct _OVOneToAny OVOneToAny;
16 
17 OVOneToAny *OVOneToAny_New(OVHeap * heap);
18 OVstatus OVOneToAny_Init(OVOneToAny * o2o, OVHeap * heap);
19 void OVOneToAny_Purge(OVOneToAny * o2o);
20 void OVOneToAny_Del(OVOneToAny * o2o);
21 void OVOneToAny_Reset(OVOneToAny * up);
22 
23 OVreturn_word OVOneToAny_GetKey(OVOneToAny * o2o, ov_word forward_value);
24 OVstatus OVOneToAny_SetKey(OVOneToAny * o2o, ov_word forward_value,
25                            ov_word reverse_value);
26 
27 OVstatus OVOneToAny_Pack(OVOneToAny * o2o);
28 OVreturn_size OVOneToAny_GetSize(OVOneToAny * o2o);
29 OVstatus OVOneToAny_DelKey(OVOneToAny * o2o, ov_word forward_value);
30 void OVOneToAny_Stats(OVOneToAny * o2o);
31 void OVOneToAny_Dump(OVOneToAny * o2o);
32 
33 #define OVOneToAny_DEL_AUTO_NULL(I) { if(I) { OVOneToAny_Del(I); I=OV_NULL; }}
34 
35 #endif
36