From 22a61b042376903deada022e7585e0585aaa7d43 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 22 May 2005 02:00:31 +0000 Subject: * Rework some Browsing/Resolving stuff * Add AvahiDomainBrowser * fix avahi_strlist_to_string() with empty lists git-svn-id: file:///home/lennart/svn/public/avahi/trunk@83 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/core.h | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'avahi-core/core.h') diff --git a/avahi-core/core.h b/avahi-core/core.h index e800a38..4f981e0 100644 --- a/avahi-core/core.h +++ b/avahi-core/core.h @@ -105,7 +105,7 @@ void avahi_server_set_domain_name(AvahiServer *s, const gchar *domain_name); gpointer avahi_server_get_data(AvahiServer *s); void avahi_server_set_data(AvahiServer *s, gpointer userdata); -AvahiServerState avhai_server_get_state(AvahiServer *s); +AvahiServerState avahi_server_get_state(AvahiServer *s); const AvahiRecord *avahi_server_iterate(AvahiServer *s, AvahiEntryGroup *g, void **state); void avahi_server_dump(AvahiServer *s, FILE *f); @@ -207,28 +207,44 @@ void avahi_server_add_service_strlst( AvahiStringList *strlst); typedef enum { - AVAHI_BROWSER_NEW, - AVAHI_BROWSER_REMOVE, + AVAHI_BROWSER_NEW = 0, + AVAHI_BROWSER_REMOVE = -1 } AvahiBrowserEvent; -typedef struct AvahiRecordResolver AvahiRecordResolver; -typedef void (*AvahiRecordResolverCallback)(AvahiRecordResolver *r, gint interface, guchar protocol, AvahiBrowserEvent event, AvahiRecord *record, gpointer userdata); -AvahiRecordResolver *avahi_record_resolver_new(AvahiServer *server, gint interface, guchar protocol, AvahiKey *key, AvahiRecordResolverCallback callback, gpointer userdata); -void avahi_record_resolver_free(AvahiRecordResolver *r); +typedef enum { + AVAHI_RESOLVER_FOUND = 0, + AVAHI_RESOLVER_TIMEOUT = -1 +} AvahiResolverEvent; + + +typedef struct AvahiRecordBrowser AvahiRecordBrowser; +typedef void (*AvahiRecordBrowserCallback)(AvahiRecordBrowser *b, gint interface, guchar protocol, AvahiBrowserEvent event, AvahiRecord *record, gpointer userdata); +AvahiRecordBrowser *avahi_record_browser_new(AvahiServer *server, gint interface, guchar protocol, AvahiKey *key, AvahiRecordBrowserCallback callback, gpointer userdata); +void avahi_record_browser_free(AvahiRecordBrowser *b); typedef struct AvahiHostNameResolver AvahiHostNameResolver; -typedef void (*AvahiHostNameResolverCallback)(AvahiHostNameResolver *r, gint interface, guchar protocol, AvahiBrowserEvent event, const gchar *host_name, const AvahiAddress *a, gpointer userdata); -AvahiHostNameResolver *avahi_host_name_resolver_new(AvahiServer *server, gint interface, guchar protocol, const gchar *host_name, AvahiHostNameResolverCallback calback, gpointer userdata); +typedef void (*AvahiHostNameResolverCallback)(AvahiHostNameResolver *r, gint interface, guchar protocol, AvahiResolverEvent event, const gchar *host_name, const AvahiAddress *a, gpointer userdata); +AvahiHostNameResolver *avahi_host_name_resolver_new(AvahiServer *server, gint interface, guchar protocol, const gchar *host_name, guchar aprotocol, AvahiHostNameResolverCallback calback, gpointer userdata); void avahi_host_name_resolver_free(AvahiHostNameResolver *r); typedef struct AvahiAddressResolver AvahiAddressResolver; -typedef void (*AvahiAddressResolverCallback)(AvahiAddressResolver *r, gint interface, guchar protocol, AvahiBrowserEvent event, const AvahiAddress *a, const gchar *host_name, gpointer userdata); +typedef void (*AvahiAddressResolverCallback)(AvahiAddressResolver *r, gint interface, guchar protocol, AvahiResolverEvent event, const AvahiAddress *a, const gchar *host_name, gpointer userdata); AvahiAddressResolver *avahi_address_resolver_new(AvahiServer *server, gint interface, guchar protocol, const AvahiAddress *address, AvahiAddressResolverCallback calback, gpointer userdata); void avahi_address_resolver_free(AvahiAddressResolver *r); -/* not yet implemented */ +typedef enum { + AVAHI_DOMAIN_BROWSER_REGISTER, + AVAHI_DOMAIN_BROWSER_REGISTER_DEFAULT, + AVAHI_DOMAIN_BROWSER_BROWSE, + AVAHI_DOMAIN_BROWSER_BROWSE_DEFAULT +} AvahiDomainBrowserType; typedef struct AvahiDomainBrowser AvahiDomainBrowser; +typedef void (*AvahiDomainBrowserCallback)(AvahiDomainBrowser *b, gint interface, guchar protocol, AvahiBrowserEvent event, const gchar *domain, gpointer userdata); +AvahiDomainBrowser *avahi_domain_browser_new(AvahiServer *server, gint interface, guchar protocol, const gchar *domain, AvahiDomainBrowserType type, AvahiDomainBrowserCallback callback, gpointer userdata); +void avahi_domain_browser_free(AvahiDomainBrowser *b); + +/* not yet implemented */ typedef struct AvahiServiceTypeBrowser AvahiServiceTypeBrowser; typedef struct AvahiServiceBrowser AvahiServiceBrowser; typedef struct AvahiServiceResolver AvahiServiceResolver; -- cgit