00001
00002 #ifndef CMAID_MAP_H
00003 #define CMAID_MAP_H
00004
00024 typedef Cmaid_Container Cmaid_Map;
00036 typedef void *(*Cmaid_Map_Set_Cb)(Cmaid_Map *m, void *key, void *data);
00038 typedef void (*Cmaid_Map_Remove_Cb)(Cmaid_Map *m, const void *key);
00040 typedef void *(*Cmaid_Map_Get_Cb)(Cmaid_Map *m, const void *key);
00042 typedef void (*Cmaid_Map_Value_Iter_Attach_Cb)(Cmaid_Map *m, Cmaid_Iter *it);
00043
00045 typedef struct Cmaid_Map_Interface Cmaid_Map_Interface;
00046
00052 struct Cmaid_Map_Interface
00053 {
00054 Cmaid_Container_Interface container_if;
00055 Cmaid_Map_Set_Cb set;
00056 Cmaid_Map_Remove_Cb remove;
00057 Cmaid_Map_Get_Cb get;
00058 Cmaid_Map_Value_Iter_Attach_Cb value_iter_attach;
00059 };
00068 CMAID_INLINE void *cmaid_map_set(Cmaid_Map *m, void *key, void *data);
00069 CMAID_INLINE void cmaid_map_remove(Cmaid_Map *m, const void *key);
00070 CMAID_INLINE void *cmaid_map_get(Cmaid_Map *m, const void *key);
00071 CMAID_INLINE void cmaid_map_value_iter_attach(Cmaid_Map *m,
00072 Cmaid_Iter *iter);
00076 #include <cmaid_map_funcdef.h>
00077
00078 #endif