Deleted Added
full compact
dbus_dict_helpers.h (214501) dbus_dict_helpers.h (252190)
1/*
2 * WPA Supplicant / dbus-based control interface
3 * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc.
4 *
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.
5 * This software may be distributed under the terms of the BSD license.
6 * See README for more details.
13 */
14
15#ifndef DBUS_DICT_HELPERS_H
16#define DBUS_DICT_HELPERS_H
17
7 */
8
9#ifndef DBUS_DICT_HELPERS_H
10#define DBUS_DICT_HELPERS_H
11
12#include "wpabuf.h"
13
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,

--- 43 unchanged lines hidden (view full) ---

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
14/*
15 * Adding a dict to a DBusMessage
16 */
17
18dbus_bool_t wpa_dbus_dict_open_write(DBusMessageIter *iter,
19 DBusMessageIter *iter_dict);
20
21dbus_bool_t wpa_dbus_dict_close_write(DBusMessageIter *iter,

--- 43 unchanged lines hidden (view full) ---

65 const char *key,
66 const char *value);
67
68dbus_bool_t wpa_dbus_dict_append_byte_array(DBusMessageIter *iter_dict,
69 const char *key,
70 const char *value,
71 const dbus_uint32_t value_len);
72
77/* Manual construction and addition of string array elements */
73/* Manual construction and addition of array elements */
74dbus_bool_t wpa_dbus_dict_begin_array(DBusMessageIter *iter_dict,
75 const char *key, const char *type,
76 DBusMessageIter *iter_dict_entry,
77 DBusMessageIter *iter_dict_val,
78 DBusMessageIter *iter_array);
79
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
80dbus_bool_t wpa_dbus_dict_begin_string_array(DBusMessageIter *iter_dict,
81 const char *key,
82 DBusMessageIter *iter_dict_entry,
83 DBusMessageIter *iter_dict_val,
84 DBusMessageIter *iter_array);
85
86dbus_bool_t wpa_dbus_dict_string_array_add_element(DBusMessageIter *iter_array,
87 const char *elem);
88
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);
89dbus_bool_t wpa_dbus_dict_bin_array_add_element(DBusMessageIter *iter_array,
90 const u8 *value,
91 size_t value_len);
91
92
93dbus_bool_t wpa_dbus_dict_end_array(DBusMessageIter *iter_dict,
94 DBusMessageIter *iter_dict_entry,
95 DBusMessageIter *iter_dict_val,
96 DBusMessageIter *iter_array);
97
98static inline dbus_bool_t
99wpa_dbus_dict_end_string_array(DBusMessageIter *iter_dict,
100 DBusMessageIter *iter_dict_entry,
101 DBusMessageIter *iter_dict_val,
102 DBusMessageIter *iter_array)
103{
104 return wpa_dbus_dict_end_array(iter_dict, iter_dict_entry,
105 iter_dict_val, iter_array);
106}
107
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
108/* Convenience function to add a whole string list */
109dbus_bool_t wpa_dbus_dict_append_string_array(DBusMessageIter *iter_dict,
110 const char *key,
111 const char **items,
112 const dbus_uint32_t num_items);
113
114dbus_bool_t wpa_dbus_dict_append_wpabuf_array(DBusMessageIter *iter_dict,
115 const char *key,
116 const struct wpabuf **items,
117 const dbus_uint32_t num_items);
118
98/*
99 * Reading a dict from a DBusMessage
100 */
101
119/*
120 * Reading a dict from a DBusMessage
121 */
122
123#define WPAS_DBUS_TYPE_BINARRAY (DBUS_NUMBER_OF_TYPES + 100)
124
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
125struct wpa_dbus_dict_entry {
126 int type; /** the dbus type of the dict entry's value */
127 int array_type; /** the dbus type of the array elements if the dict
105 entry value contains an array */
128 entry value contains an array, or the special
129 WPAS_DBUS_TYPE_BINARRAY */
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;
130 const char *key; /** key of the dict entry */
131
132 /** Possible values of the property */
133 union {
134 char *str_value;
135 char byte_value;
136 dbus_bool_t bool_value;
137 dbus_int16_t int16_value;
138 dbus_uint16_t uint16_value;
139 dbus_int32_t int32_value;
140 dbus_uint32_t uint32_value;
141 dbus_int64_t int64_value;
142 dbus_uint64_t uint64_value;
143 double double_value;
144 char *bytearray_value;
145 char **strarray_value;
146 struct wpabuf **binarray_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,
147 };
148 dbus_uint32_t array_len; /** length of the array if the dict entry's
149 value contains an array */
150};
151
152dbus_bool_t wpa_dbus_dict_open_read(DBusMessageIter *iter,
128 DBusMessageIter *iter_dict);
153 DBusMessageIter *iter_dict,
154 DBusError *error);
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 */
155
156dbus_bool_t wpa_dbus_dict_get_entry(DBusMessageIter *iter_dict,
157 struct wpa_dbus_dict_entry *entry);
158
159dbus_bool_t wpa_dbus_dict_has_dict_entry(DBusMessageIter *iter_dict);
160
161void wpa_dbus_dict_entry_clear(struct wpa_dbus_dict_entry *entry);
162
163#endif /* DBUS_DICT_HELPERS_H */