#ifndef fooAvahihfoo #define fooAvahihfoo #include #include typedef struct _AvahiServer AvahiServer; typedef struct _AvahiEntry AvahiEntry; typedef struct _AvahiEntryGroup AvahiEntryGroup; #include "address.h" #include "rr.h" typedef enum { AVAHI_ENTRY_NULL = 0, AVAHI_ENTRY_UNIQUE = 1, AVAHI_ENTRY_NOPROBE = 2, AVAHI_ENTRY_NOANNOUNCE = 4 } AvahiEntryFlags; typedef enum { AVAHI_ENTRY_GROUP_UNCOMMITED, AVAHI_ENTRY_GROUP_REGISTERING, AVAHI_ENTRY_GROUP_ESTABLISHED, AVAHI_ENTRY_GROUP_COLLISION } AvahiEntryGroupState; typedef void (*AvahiEntryGroupCallback) (AvahiServer *s, AvahiEntryGroup *g, AvahiEntryGroupState state, gpointer userdata); AvahiServer *avahi_server_new(GMainContext *c); void avahi_server_free(AvahiServer* s); const AvahiRecord *avahi_server_iterate(AvahiServer *s, AvahiEntryGroup *g, void **state); void avahi_server_dump(AvahiServer *s, FILE *f); AvahiEntryGroup *avahi_entry_group_new(AvahiServer *s, AvahiEntryGroupCallback callback, gpointer userdata); void avahi_entry_group_free(AvahiEntryGroup *g); void avahi_entry_group_commit(AvahiEntryGroup *g); AvahiEntryGroupState avahi_entry_group_get_state(AvahiEntryGroup *g); void avahi_server_add( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, AvahiEntryFlags flags, AvahiRecord *r); void avahi_server_add_ptr( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, AvahiEntryFlags flags, const gchar *name, const gchar *dest); void avahi_server_add_address( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, AvahiEntryFlags flags, const gchar *name, AvahiAddress *a); void avahi_server_add_text( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, AvahiEntryFlags flags, const gchar *name, ... /* text records, terminated by NULL */); void avahi_server_add_text_va( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, AvahiEntryFlags flags, const gchar *name, va_list va); void avahi_server_add_text_strlst( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, AvahiEntryFlags flags, const gchar *name, AvahiStringList *strlst); void avahi_server_add_service( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, const gchar *type, const gchar *name, const gchar *domain, const gchar *host, guint16 port, ... /* text records, terminated by NULL */); void avahi_server_add_service_va( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, const gchar *type, const gchar *name, const gchar *domain, const gchar *host, guint16 port, va_list va); void avahi_server_add_service_strlst( AvahiServer *s, AvahiEntryGroup *g, gint interface, guchar protocol, const gchar *type, const gchar *name, const gchar *domain, const gchar *host, guint16 port, AvahiStringList *strlst); typedef enum { AVAHI_SUBSCRIPTION_NEW, AVAHI_SUBSCRIPTION_REMOVE, AVAHI_SUBSCRIPTION_CHANGE } AvahiSubscriptionEvent; typedef struct _AvahiSubscription AvahiSubscription; typedef void (*AvahiSubscriptionCallback)(AvahiSubscription *s, AvahiRecord *record, gint interface, guchar protocol, AvahiSubscriptionEvent event, gpointer userdata); AvahiSubscription *avahi_subscription_new(AvahiServer *s, AvahiKey *key, gint interface, guchar protocol, AvahiSubscriptionCallback callback, gpointer userdata); void avahi_subscription_free(AvahiSubscription *s); #endif