00001 #ifndef _PDICT_IMPL_H_ 00002 #define _PDICT_IMPL_H_ 00003 00004 #include "pdict.h" 00005 00006 struct pdict_listener; 00007 00008 /* 00009 * Represents a dictionary entry. 00010 * key and value strings, with a plist of listeners 00011 */ 00012 struct pdict_ent { 00013 const char *pde_key; 00014 const char *pde_val; 00015 plist_node_t *pde_listeners; 00016 }; 00017 00018 typedef struct pdict_listener { 00019 pdl_notify_func_t pdl_notify; 00020 void *pdl_arg; 00021 } pdict_listener_t; 00022 00023 typedef struct pdict_persistent_listener { 00024 pdict_listener_t pdpl_l; 00025 regex_t pdpl_regex; 00026 int pdpl_new; 00027 } pdict_persistent_listener_t; 00028 00029 /* 00030 * A Phidget Dictionary 00031 * contains a ptree of entries and a plist of persistent listeners 00032 */ 00033 struct pdict { 00034 ptree_node_t *pd_ents; 00035 plist_node_t *pd_persistent_listeners; 00036 }; 00037 00038 #endif