Lines Matching full:data
68 struct name_data *data = current->data;
70 if (connection != data->connection)
73 if (name == NULL || g_str_equal(name, data->name))
74 return data;
85 struct name_callback *cb = current->data;
93 static void name_data_call_and_free(struct name_data *data)
97 for (l = data->callbacks; l != NULL; l = l->next) {
98 struct name_callback *cb = l->data;
100 cb->disc_func(data->connection, cb->user_data);
104 g_slist_free(data->callbacks);
105 g_free(data->name);
106 g_free(data);
109 static void name_data_free(struct name_data *data)
113 for (l = data->callbacks; l != NULL; l = l->next)
114 g_free(l->data);
116 g_slist_free(data->callbacks);
117 g_free(data->name);
118 g_free(data);
127 struct name_data *data = NULL;
137 data = name_data_find(connection, name);
138 if (data) {
143 data = g_new0(struct name_data, 1);
145 data->connection = connection;
146 data->name = g_strdup(name);
148 name_listeners = g_slist_append(name_listeners, data);
151 if (data->lock)
152 data->processed = g_slist_append(data->processed, cb);
154 data->callbacks = g_slist_append(data->callbacks, cb);
162 struct name_data *data;
165 data = name_data_find(connection, name);
166 if (!data)
169 cb = name_callback_find(data->callbacks, id);
171 data->callbacks = g_slist_remove(data->callbacks, cb);
175 if (data->callbacks)
178 name_listeners = g_slist_remove(name_listeners, data);
179 name_data_free(data);
182 data = name_data_find(connection, NULL);
183 if (!data)
238 struct name_data *data;
255 data = name_data_find(connection, name);
256 if (!data) {
261 data->lock = TRUE;
263 while (data->callbacks) {
264 cb = data->callbacks->data;
276 if (!g_slist_find(data->callbacks, cb))
279 data->callbacks = g_slist_remove(data->callbacks, cb);
286 data->processed = g_slist_append(data->processed, cb);
289 data->callbacks = data->processed;
290 data->processed = NULL;
291 data->lock = FALSE;
293 if (data->callbacks)
296 name_listeners = g_slist_remove(name_listeners, data);
297 name_data_free(data);
300 data = name_data_find(connection, NULL);
301 if (!data)
362 struct name_data *data;
370 data = ldata->data;
371 for (lcb = data->callbacks; lcb; lcb = lcb->next) {
372 cb = lcb->data;
376 for (lcb = data->processed; lcb; lcb = lcb->next) {
377 cb = lcb->data;
386 data->callbacks = g_slist_remove(data->callbacks, cb);
387 data->processed = g_slist_remove(data->processed, cb);
390 /* Don't remove the filter if other callbacks exist or data is lock
392 if (data->callbacks || data->lock)
395 if (data->name) {
396 if (!remove_match(data->connection, data->name))
400 name_listeners = g_slist_remove(name_listeners, data);
401 name_data_free(data);
404 data = name_data_find(connection, NULL);
405 if (!data)
414 struct name_data *data;
416 while ((data = name_data_find(connection, NULL))) {
417 name_listeners = g_slist_remove(name_listeners, data);
418 name_data_call_and_free(data);