#ifndef _DAT_DICTIONARY_H_
#define _DAT_DICTIONARY_H_
#include <dat_osd.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct DAT_DICTIONARY DAT_DICTIONARY;
typedef void *DAT_DICTIONARY_DATA;
typedef void *DAT_DICTIONARY_ENTRY;
extern DAT_RETURN
dat_dictionary_create(
OUT DAT_DICTIONARY **pp_dictionary);
extern DAT_RETURN
dat_dictionary_destroy(
IN DAT_DICTIONARY *p_dictionary);
extern DAT_RETURN
dat_dictionary_size(
IN DAT_DICTIONARY *p_dictionary,
OUT DAT_COUNT *p_size);
extern DAT_RETURN
dat_dictionary_entry_create(
OUT DAT_DICTIONARY_ENTRY *p_entry);
extern DAT_RETURN
dat_dictionary_entry_destroy(
IN DAT_DICTIONARY_ENTRY entry);
extern DAT_RETURN
dat_dictionary_insert(
IN DAT_DICTIONARY *p_dictionary,
IN DAT_DICTIONARY_ENTRY entry,
IN const DAT_PROVIDER_INFO *key,
IN DAT_DICTIONARY_DATA data);
extern DAT_RETURN
dat_dictionary_search(
IN DAT_DICTIONARY *p_dictionary,
IN const DAT_PROVIDER_INFO *key,
OUT DAT_DICTIONARY_DATA *p_data);
extern DAT_RETURN
dat_dictionary_enumerate(
IN DAT_DICTIONARY *p_dictionary,
IN DAT_DICTIONARY_DATA array[],
IN DAT_COUNT array_size);
extern DAT_RETURN
dat_dictionary_remove(
IN DAT_DICTIONARY *p_dictionary,
IN DAT_DICTIONARY_ENTRY *p_entry,
IN const DAT_PROVIDER_INFO *key,
OUT DAT_DICTIONARY_DATA *p_data);
#ifdef __cplusplus
}
#endif
#endif