7 typedef struct _AvahiCache AvahiCache;
12 #include "timeeventq.h"
20 } AvahiCacheEntryState;
22 typedef struct AvahiCacheEntry AvahiCacheEntry;
24 struct AvahiCacheEntry {
32 AvahiCacheEntryState state;
33 AvahiTimeEvent *time_event;
35 AVAHI_LLIST_FIELDS(AvahiCacheEntry, by_key);
36 AVAHI_LLIST_FIELDS(AvahiCacheEntry, entry);
42 AvahiInterface *interface;
44 GHashTable *hash_table;
46 AVAHI_LLIST_HEAD(AvahiCacheEntry, entries);
49 AvahiCache *avahi_cache_new(AvahiServer *server, AvahiInterface *interface);
50 void avahi_cache_free(AvahiCache *c);
52 AvahiCacheEntry *avahi_cache_lookup_key(AvahiCache *c, AvahiKey *k);
53 AvahiCacheEntry *avahi_cache_lookup_record(AvahiCache *c, AvahiRecord *r);
55 void avahi_cache_update(AvahiCache *c, AvahiRecord *r, gboolean unique, const AvahiAddress *a);
57 void avahi_cache_drop_record(AvahiCache *c, AvahiRecord *r);
59 void avahi_cache_dump(AvahiCache *c, FILE *f);
61 typedef gpointer AvahiCacheWalkCallback(AvahiCache *c, AvahiKey *pattern, AvahiCacheEntry *e, gpointer userdata);
62 gpointer avahi_cache_walk(AvahiCache *c, AvahiKey *pattern, AvahiCacheWalkCallback cb, gpointer userdata);
64 gboolean avahi_cache_entry_half_ttl(AvahiCache *c, AvahiCacheEntry *e);