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
28 typedef void (*flxEntryGroupCallback) (flxServer *s, flxEntryGroup *g, flxEntryGroupState state, 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 flxEntryGroupState flx_entry_group_get_state(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_text_strlst(
92 flxStringList *strlst);
94 void flx_server_add_service(
104 ... /* text records, terminated by NULL */);
106 void flx_server_add_service_va(
118 void flx_server_add_service_strlst(
128 flxStringList *strlst);
131 FLX_SUBSCRIPTION_NEW,
132 FLX_SUBSCRIPTION_REMOVE,
133 FLX_SUBSCRIPTION_CHANGE
134 } flxSubscriptionEvent;
136 typedef struct _flxSubscription flxSubscription;
138 typedef void (*flxSubscriptionCallback)(flxSubscription *s, flxRecord *record, gint interface, guchar protocol, flxSubscriptionEvent event, gpointer userdata);
140 flxSubscription *flx_subscription_new(flxServer *s, flxKey *key, gint interface, guchar protocol, flxSubscriptionCallback callback, gpointer userdata);
141 void flx_subscription_free(flxSubscription *s);