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