• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/wpa_supplicant-0.7.3/wpa_supplicant/dbus/
1/*
2 * WPA Supplicant / dbus-based control interface
3 * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * Alternatively, this software may be distributed under the terms of BSD
10 * license.
11 *
12 * See README and COPYING for more details.
13 */
14
15#ifndef DBUS_DICT_HELPERS_H
16#define DBUS_DICT_HELPERS_H
17
18/*
19 * Adding a dict to a DBusMessage
20 */
21
22dbus_bool_t wpa_dbus_dict_open_write(DBusMessageIter *iter,
23				     DBusMessageIter *iter_dict);
24
25dbus_bool_t wpa_dbus_dict_close_write(DBusMessageIter *iter,
26				      DBusMessageIter *iter_dict);
27
28const char * wpa_dbus_type_as_string(const int type);
29
30dbus_bool_t wpa_dbus_dict_append_string(DBusMessageIter *iter_dict,
31					const char *key, const char *value);
32
33dbus_bool_t wpa_dbus_dict_append_byte(DBusMessageIter *iter_dict,
34				      const char *key, const char value);
35
36dbus_bool_t wpa_dbus_dict_append_bool(DBusMessageIter *iter_dict,
37				      const char *key,
38				      const dbus_bool_t value);
39
40dbus_bool_t wpa_dbus_dict_append_int16(DBusMessageIter *iter_dict,
41				       const char *key,
42				       const dbus_int16_t value);
43
44dbus_bool_t wpa_dbus_dict_append_uint16(DBusMessageIter *iter_dict,
45					const char *key,
46					const dbus_uint16_t value);
47
48dbus_bool_t wpa_dbus_dict_append_int32(DBusMessageIter *iter_dict,
49				       const char *key,
50				       const dbus_int32_t value);
51
52dbus_bool_t wpa_dbus_dict_append_uint32(DBusMessageIter *iter_dict,
53					const char *key,
54					const dbus_uint32_t value);
55
56dbus_bool_t wpa_dbus_dict_append_int64(DBusMessageIter *iter_dict,
57				       const char *key,
58				       const dbus_int64_t value);
59
60dbus_bool_t wpa_dbus_dict_append_uint64(DBusMessageIter *iter_dict,
61					const char *key,
62					const dbus_uint64_t value);
63
64dbus_bool_t wpa_dbus_dict_append_double(DBusMessageIter *iter_dict,
65					const char *key,
66					const double value);
67
68dbus_bool_t wpa_dbus_dict_append_object_path(DBusMessageIter *iter_dict,
69					     const char *key,
70					     const char *value);
71
72dbus_bool_t wpa_dbus_dict_append_byte_array(DBusMessageIter *iter_dict,
73					    const char *key,
74					    const char *value,
75					    const dbus_uint32_t value_len);
76
77/* Manual construction and addition of string array elements */
78dbus_bool_t wpa_dbus_dict_begin_string_array(DBusMessageIter *iter_dict,
79                                             const char *key,
80                                             DBusMessageIter *iter_dict_entry,
81                                             DBusMessageIter *iter_dict_val,
82                                             DBusMessageIter *iter_array);
83
84dbus_bool_t wpa_dbus_dict_string_array_add_element(DBusMessageIter *iter_array,
85                                             const char *elem);
86
87dbus_bool_t wpa_dbus_dict_end_string_array(DBusMessageIter *iter_dict,
88                                           DBusMessageIter *iter_dict_entry,
89                                           DBusMessageIter *iter_dict_val,
90                                           DBusMessageIter *iter_array);
91
92/* Convenience function to add a whole string list */
93dbus_bool_t wpa_dbus_dict_append_string_array(DBusMessageIter *iter_dict,
94					      const char *key,
95					      const char **items,
96					      const dbus_uint32_t num_items);
97
98/*
99 * Reading a dict from a DBusMessage
100 */
101
102struct wpa_dbus_dict_entry {
103	int type;         /** the dbus type of the dict entry's value */
104	int array_type;   /** the dbus type of the array elements if the dict
105			      entry value contains an array */
106	const char *key;  /** key of the dict entry */
107
108	/** Possible values of the property */
109	union {
110		char *str_value;
111		char byte_value;
112		dbus_bool_t bool_value;
113		dbus_int16_t int16_value;
114		dbus_uint16_t uint16_value;
115		dbus_int32_t int32_value;
116		dbus_uint32_t uint32_value;
117		dbus_int64_t int64_value;
118		dbus_uint64_t uint64_value;
119		double double_value;
120		char *bytearray_value;
121		char **strarray_value;
122	};
123	dbus_uint32_t array_len; /** length of the array if the dict entry's
124				     value contains an array */
125};
126
127dbus_bool_t wpa_dbus_dict_open_read(DBusMessageIter *iter,
128				    DBusMessageIter *iter_dict);
129
130dbus_bool_t wpa_dbus_dict_get_entry(DBusMessageIter *iter_dict,
131				    struct wpa_dbus_dict_entry *entry);
132
133dbus_bool_t wpa_dbus_dict_has_dict_entry(DBusMessageIter *iter_dict);
134
135void wpa_dbus_dict_entry_clear(struct wpa_dbus_dict_entry *entry);
136
137#endif  /* DBUS_DICT_HELPERS_H */
138