X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-client%2Finternal.h;h=17881220d7c2f3eaed6fbe18ef305793831e9aac;hb=af548e38c2c282132ddac2a75a76218ff3be3175;hp=6fea0b0ce4d8955e2168d389b30a640949f2b774;hpb=7231641e5c53a9d1c255e06a7a134fa60a919f88;p=catta diff --git a/avahi-client/internal.h b/avahi-client/internal.h index 6fea0b0..1788122 100644 --- a/avahi-client/internal.h +++ b/avahi-client/internal.h @@ -22,29 +22,78 @@ USA. ***/ -#ifdef HAVE_CONFIG_H -#include -#endif +#include +#include "client.h" -struct _AvahiClient -{ +struct AvahiClient { + const AvahiPoll *poll_api; DBusConnection *bus; - int errno; + int error; + AvahiClientState state; + + /* Cache for some seldom changing server data */ + char *version_string, *host_name, *host_name_fqdn, *domain_name; + AvahiClientCallback callback; - void *user_data; + void *userdata; + AVAHI_LLIST_HEAD(AvahiEntryGroup, groups); + AVAHI_LLIST_HEAD(AvahiDomainBrowser, domain_browsers); + AVAHI_LLIST_HEAD(AvahiServiceBrowser, service_browsers); + AVAHI_LLIST_HEAD(AvahiServiceTypeBrowser, service_type_browsers); + AVAHI_LLIST_HEAD(AvahiServiceResolver, service_resolvers); }; -struct _AvahiEntryGroup { +struct AvahiEntryGroup { char *path; + AvahiEntryGroupState state; AvahiClient *client; AvahiEntryGroupCallback callback; - void *user_data; + void *userdata; AVAHI_LLIST_FIELDS(AvahiEntryGroup, groups); }; -int avahi_client_set_errno (AvahiClient *client, int errno); +struct AvahiDomainBrowser { + char *path; + AvahiClient *client; + AvahiDomainBrowserCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiDomainBrowser, domain_browsers); +}; + +struct AvahiServiceBrowser { + char *path; + AvahiClient *client; + AvahiServiceBrowserCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiServiceBrowser, service_browsers); +}; + +struct AvahiServiceTypeBrowser { + char *path; + AvahiClient *client; + AvahiServiceTypeBrowserCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiServiceTypeBrowser, service_type_browsers); +}; + +struct AvahiServiceResolver { + DBusPendingCall *call; + AvahiClient *client; + AvahiServiceResolverCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiServiceResolver, service_resolvers); +}; + +int avahi_client_set_errno (AvahiClient *client, int error); +int avahi_client_set_dbus_error(AvahiClient *client, DBusError *error); + +void avahi_entry_group_set_state(AvahiEntryGroup *group, AvahiEntryGroupState state); + +DBusHandlerResult avahi_domain_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message); + +DBusHandlerResult avahi_service_type_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message); -void avahi_entry_group_state_change (AvahiEntryGroup *group, int state); +DBusHandlerResult avahi_service_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message); #endif