#include <glib.h>
-typedef struct _flxAnnouncement flxAnnouncement;
+typedef struct _AvahiAnnouncement AvahiAnnouncement;
#include "llist.h"
#include "iface.h"
#include "server.h"
#include "timeeventq.h"
-struct _flxAnnouncement {
- flxServer *server;
- flxInterface *interface;
- flxServerEntry *entry;
-
- flxTimeEvent *time_event;
- guint n_announced;
+typedef enum {
+ AVAHI_PROBING,
+ AVAHI_WAITING, /* wait for other records in group */
+ AVAHI_ANNOUNCING,
+ AVAHI_ESTABLISHED
+} AvahiAnnouncementState;
- FLX_LLIST_FIELDS(flxAnnouncement, by_interface);
- FLX_LLIST_FIELDS(flxAnnouncement, by_entry);
+struct _AvahiAnnouncement {
+ AvahiServer *server;
+ AvahiInterface *interface;
+ AvahiEntry *entry;
+
+ AvahiTimeEvent *time_event;
+
+ AvahiAnnouncementState state;
+ guint n_iteration;
+ guint sec_delay;
+
+ AVAHI_LLIST_FIELDS(AvahiAnnouncement, by_interface);
+ AVAHI_LLIST_FIELDS(AvahiAnnouncement, by_entry);
};
-void flx_announce_interface(flxServer *s, flxInterface *i);
-void flx_announce_entry(flxServer *s, flxServerEntry *e);
+void avahi_announce_interface(AvahiServer *s, AvahiInterface *i);
+void avahi_announce_entry(AvahiServer *s, AvahiEntry *e);
+void avahi_announce_group(AvahiServer *s, AvahiEntryGroup *g);
+
+void avahi_entry_group_check_probed(AvahiEntryGroup *g, gboolean immediately);
+
+gboolean avahi_entry_registered(AvahiServer *s, AvahiEntry *e, AvahiInterface *i);
+gboolean avahi_entry_registering(AvahiServer *s, AvahiEntry *e, AvahiInterface *i);
+
+void avahi_goodbye_interface(AvahiServer *s, AvahiInterface *i, gboolean send);
+void avahi_goodbye_entry(AvahiServer *s, AvahiEntry *e, gboolean send);
-void flx_goodbye_interface(flxServer *s, flxInterface *i, gboolean send);
-void flx_goodbye_entry(flxServer *s, flxServerEntry *e, gboolean send);
+void avahi_goodbye_all(AvahiServer *s, gboolean send);
-void flx_goodbye_all(flxServer *s, gboolean send);
+AvahiAnnouncement *avahi_get_announcement(AvahiServer *s, AvahiEntry *e, AvahiInterface *i);
#endif