1 #ifndef _H_OVOneToOne 2 #define _H_OVOneToOne 3 4 5 /* OneToOne: 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 #ifndef OVONETOONE_DEFINED 16 typedef struct _OVOneToOne OVOneToOne; 17 #define OVONETOONE_DEFINED 18 #endif 19 20 OVOneToOne *OVOneToOne_New(OVHeap * heap); 21 OVstatus OVOneToOne_Init(OVOneToOne * o2o, OVHeap * heap); 22 void OVOneToOne_Purge(OVOneToOne * o2o); 23 void OVOneToOne_Del(OVOneToOne * o2o); 24 void OVOneToOne_Reset(OVOneToOne * up); 25 26 OVreturn_word OVOneToOne_IterateForward(OVOneToOne * o2o, ov_word * hidden); 27 28 OVreturn_word OVOneToOne_GetForward(OVOneToOne * o2o, ov_word forward_value); 29 OVreturn_word OVOneToOne_GetReverse(OVOneToOne * o2o, ov_word reverse_value); 30 OVstatus OVOneToOne_Set(OVOneToOne * o2o, ov_word forward_value, ov_word reverse_value); 31 32 OVstatus OVOneToOne_Pack(OVOneToOne * o2o); 33 OVreturn_size OVOneToOne_GetSize(OVOneToOne * o2o); 34 OVstatus OVOneToOne_DelReverse(OVOneToOne * o2o, ov_word reverse_value); 35 OVstatus OVOneToOne_DelForward(OVOneToOne * o2o, ov_word forward_value); 36 void OVOneToOne_Stats(OVOneToOne * o2o); 37 void OVOneToOne_Dump(OVOneToOne * o2o); 38 39 #define OVOneToOne_DEL_AUTO_NULL(I) { if(I) { OVOneToOne_Del(I); I=OV_NULL; }} 40 41 #endif 42