7 typedef struct _flxServer flxServer;
8 typedef struct _flxEntry flxEntry;
9 typedef struct _flxEntryGroup flxEntryGroup;
17 FLX_ENTRY_NOPROBE = 2,
18 FLX_ENTRY_NOANNOUNCE = 4
22 FLX_ENTRY_GROUP_UNCOMMITED,
23 FLX_ENTRY_GROUP_REGISTERING,
24 FLX_ENTRY_GROUP_ESTABLISHED,
25 FLX_ENTRY_GROUP_COLLISION
26 } flxEntryGroupStatus;
28 typedef void (*flxEntryGroupCallback) (flxServer *s, flxEntryGroup *g, flxEntryGroupStatus status, gpointer userdata);
30 flxServer *flx_server_new(GMainContext *c);
31 void flx_server_free(flxServer* s);
33 const flxRecord *flx_server_iterate(flxServer *s, flxEntryGroup *g, void **state);
34 void flx_server_dump(flxServer *s, FILE *f);
36 flxEntryGroup *flx_entry_group_new(flxServer *s, flxEntryGroupCallback callback, gpointer userdata);
37 void flx_entry_group_free(flxEntryGroup *g);
38 void flx_entry_group_commit(flxEntryGroup *g);
39 flxEntryGroupStatus flx_entry_group_get_status(flxEntryGroup *g);
49 void flx_server_add_ptr(
58 void flx_server_add_address(
67 void flx_server_add_text(
74 ... /* text records, terminated by NULL */);
76 void flx_server_add_text_va(
85 void flx_server_add_service(
95 ... /* text records, terminated by NULL */);
97 void flx_server_add_service_va(
110 FLX_SUBSCRIPTION_NEW,
111 FLX_SUBSCRIPTION_REMOVE,
112 FLX_SUBSCRIPTION_CHANGE
113 } flxSubscriptionEvent;
115 typedef struct _flxSubscription flxSubscription;
117 typedef void (*flxSubscriptionCallback)(flxSubscription *s, flxRecord *record, gint interface, guchar protocol, flxSubscriptionEvent event, gpointer userdata);
119 flxSubscription *flx_subscription_new(flxServer *s, flxKey *key, gint interface, guchar protocol, flxSubscriptionCallback callback, gpointer userdata);
120 void flx_subscription_free(flxSubscription *s);