X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-client%2Finternal.h;h=b826175e04125d0361862019a56a74322e0a1d8d;hb=f778c2b164b2614281f2d029726eff8326986a79;hp=4feffc078c5691c997bc6bc0808ea5cf513b8c45;hpb=f8c479234af6b676027df4fb6b38ce8e22949049;p=catta diff --git a/avahi-client/internal.h b/avahi-client/internal.h index 4feffc0..b826175 100644 --- a/avahi-client/internal.h +++ b/avahi-client/internal.h @@ -23,48 +23,99 @@ ***/ #include +#include "client.h" -struct _AvahiClient -{ +struct AvahiClient { + const AvahiPoll *poll_api; DBusConnection *bus; 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; - AVAHI_LLIST_HEAD(AvahiClientEntryGroup, groups); - AVAHI_LLIST_HEAD(AvahiClientDomainBrowser, domain_browsers); - AVAHI_LLIST_HEAD(AvahiClientServiceTypeBrowser, service_type_browsers); + 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); + AVAHI_LLIST_HEAD(AvahiHostNameResolver, host_name_resolvers); + AVAHI_LLIST_HEAD(AvahiAddressResolver, address_resolvers); +}; + +struct AvahiEntryGroup { + char *path; + AvahiEntryGroupState state; + AvahiClient *client; + AvahiEntryGroupCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiEntryGroup, groups); +}; + +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 _AvahiClientEntryGroup { +struct AvahiServiceResolver { char *path; AvahiClient *client; - AvahiClientEntryGroupCallback callback; - void *user_data; - AVAHI_LLIST_FIELDS(AvahiClientEntryGroup, groups); + AvahiServiceResolverCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiServiceResolver, service_resolvers); }; -struct _AvahiClientDomainBrowser { +struct AvahiHostNameResolver { char *path; AvahiClient *client; - AvahiClientDomainBrowserCallback callback; - void *user_data; - AVAHI_LLIST_FIELDS(AvahiClientDomainBrowser, domain_browsers); + AvahiHostNameResolverCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiHostNameResolver, host_name_resolvers); }; -struct _AvahiClientServiceTypeBrowser { +struct AvahiAddressResolver { char *path; AvahiClient *client; - AvahiClientServiceTypeBrowserCallback callback; - void *user_data; - AVAHI_LLIST_FIELDS(AvahiClientServiceTypeBrowser, service_type_browsers); + AvahiAddressResolverCallback callback; + void *userdata; + AVAHI_LLIST_FIELDS(AvahiAddressResolver, address_resolvers); }; int avahi_client_set_errno (AvahiClient *client, int error); +int avahi_client_set_dbus_error(AvahiClient *client, DBusError *error); -void avahi_entry_group_state_change (AvahiClientEntryGroup *group, int state); +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); +DBusHandlerResult avahi_service_browser_event (AvahiClient *client, AvahiBrowserEvent event, DBusMessage *message); + +DBusHandlerResult avahi_service_resolver_event (AvahiClient *client, AvahiResolverEvent event, DBusMessage *message); +DBusHandlerResult avahi_host_name_resolver_event (AvahiClient *client, AvahiResolverEvent event, DBusMessage *message); +DBusHandlerResult avahi_address_resolver_event (AvahiClient *client, AvahiResolverEvent event, DBusMessage *message); + +int avahi_client_simple_method_call(AvahiClient *client, const char *path, const char *interface, const char *method); #endif