aboutsummaryrefslogtreecommitdiffstats
path: root/dict/pdict-impl.h
blob: 2d1d92b86afab8913e6b510acca9e33ae12b3cb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef _PDICT_IMPL_H_
#define _PDICT_IMPL_H_

#include "pdict.h"

struct pdict_listener;

/*
 * Represents a dictionary entry.
 * key and value strings, with a plist of listeners
 */
struct pdict_ent {
	const char *pde_key;
	const char *pde_val;
	plist_node_t *pde_listeners;
};

typedef struct pdict_listener {
	pdl_notify_func_t pdl_notify;
	void *pdl_arg;
} pdict_listener_t;

typedef struct pdict_persistent_listener {
	pdict_listener_t pdpl_l;
	regex_t pdpl_regex;
	int pdpl_new;
} pdict_persistent_listener_t;

/*
 * A Phidget Dictionary
 * contains a ptree of entries and a plist of persistent listeners
 */
struct pdict {
	ptree_node_t *pd_ents;
	plist_node_t *pd_persistent_listeners;
};

#endif