Lines Matching full:list
2 /* expirelist.c List of items that expire
46 BusExpireList *list;
48 list = dbus_new0 (BusExpireList, 1);
49 if (list == NULL)
52 list->expire_func = expire_func;
53 list->data = data;
54 list->loop = loop;
55 list->expire_after = expire_after;
57 list->timeout = _dbus_timeout_new (100, /* irrelevant */
59 list, NULL);
60 if (list->timeout == NULL)
63 _dbus_timeout_set_enabled (list->timeout, FALSE);
65 if (!_dbus_loop_add_timeout (list->loop,
66 list->timeout,
70 return list;
73 if (list->timeout)
74 _dbus_timeout_unref (list->timeout);
76 dbus_free (list);
82 bus_expire_list_free (BusExpireList *list)
84 _dbus_assert (list->items == NULL);
86 _dbus_loop_remove_timeout (list->loop, list->timeout,
89 _dbus_timeout_unref (list->timeout);
91 dbus_free (list);
118 do_expiration_with_current_time (BusExpireList *list,
127 link = _dbus_list_get_first_link (&list->items);
130 DBusList *next = _dbus_list_get_next_link (&list->items, link);
140 if (elapsed >= (double) list->expire_after)
145 * this item next time we walk through the list. This would
150 if (!(* list->expire_func) (list, link, list->data))
159 next_interval = ((double)list->expire_after) - elapsed;
173 bus_expirelist_expire (BusExpireList *list)
179 if (list->items != NULL)
185 next_interval = do_expiration_with_current_time (list, tv_sec, tv_usec);
188 bus_expire_timeout_set_interval (list->timeout, next_interval);
194 BusExpireList *list = data;
199 bus_expirelist_expire (list);
213 test_expire_func (BusExpireList *list,
244 BusExpireList *list;
259 list = bus_expire_list_new (loop, EXPIRE_AFTER,
261 _dbus_assert (list != NULL);
286 if (!_dbus_list_append (&list->items, item))
290 do_expiration_with_current_time (list, tv_sec_not_expired,
297 do_expiration_with_current_time (list, tv_sec_expired,
304 do_expiration_with_current_time (list, tv_sec_past,
310 _dbus_list_clear (&list->items);
313 bus_expire_list_free (list);