00001 #ifndef fooclientpublishhfoo
00002 #define fooclientpublishhfoo
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <inttypes.h>
00026
00027 #include <avahi-common/cdecl.h>
00028 #include <avahi-common/address.h>
00029 #include <avahi-common/strlst.h>
00030 #include <avahi-common/defs.h>
00031 #include <avahi-common/watch.h>
00032 #include <avahi-common/gccmacro.h>
00033
00034 #include <avahi-client/client.h>
00035
00042 AVAHI_C_DECL_BEGIN
00043
00045 typedef struct AvahiEntryGroup AvahiEntryGroup;
00046
00048 typedef void (*AvahiEntryGroupCallback) (
00049 AvahiEntryGroup *g,
00050 AvahiEntryGroupState state ,
00051 void* userdata );
00052
00056 AvahiEntryGroup* avahi_entry_group_new(
00057 AvahiClient* c,
00058 AvahiEntryGroupCallback callback ,
00059 void *userdata );
00060
00062 int avahi_entry_group_free (AvahiEntryGroup *);
00063
00069 int avahi_entry_group_commit (AvahiEntryGroup*);
00070
00072 int avahi_entry_group_reset (AvahiEntryGroup*);
00073
00075 int avahi_entry_group_get_state (AvahiEntryGroup*);
00076
00078 int avahi_entry_group_is_empty (AvahiEntryGroup*);
00079
00081 AvahiClient* avahi_entry_group_get_client (AvahiEntryGroup*);
00082
00088 int avahi_entry_group_add_service(
00089 AvahiEntryGroup *group,
00090 AvahiIfIndex interface ,
00091 AvahiProtocol protocol ,
00092 AvahiPublishFlags flags ,
00093 const char *name ,
00094 const char *type ,
00095 const char *domain ,
00096 const char *host ,
00097 uint16_t port ,
00098 ...) AVAHI_GCC_SENTINEL;
00099
00101 int avahi_entry_group_add_service_strlst(
00102 AvahiEntryGroup *group,
00103 AvahiIfIndex interface,
00104 AvahiProtocol protocol,
00105 AvahiPublishFlags flags,
00106 const char *name,
00107 const char *type,
00108 const char *domain,
00109 const char *host,
00110 uint16_t port,
00111 AvahiStringList *txt );
00112
00114 int avahi_entry_group_add_service_subtype(
00115 AvahiEntryGroup *group,
00116 AvahiIfIndex interface ,
00117 AvahiProtocol protocol ,
00118 AvahiPublishFlags flags ,
00119 const char *name ,
00120 const char *type ,
00121 const char *domain ,
00122 const char *subtype );
00123
00125 int avahi_entry_group_update_service_txt(
00126 AvahiEntryGroup *g,
00127 AvahiIfIndex interface ,
00128 AvahiProtocol protocol ,
00129 AvahiPublishFlags flags ,
00130 const char *name ,
00131 const char *type ,
00132 const char *domain ,
00133 ...) AVAHI_GCC_SENTINEL;
00134
00136 int avahi_entry_group_update_service_txt_strlst(
00137 AvahiEntryGroup *g,
00138 AvahiIfIndex interface,
00139 AvahiProtocol protocol,
00140 AvahiPublishFlags flags,
00141 const char *name,
00142 const char *type,
00143 const char *domain,
00144 AvahiStringList *strlst);
00145
00148 int avahi_entry_group_add_address(
00149 AvahiEntryGroup *group,
00150 AvahiIfIndex interface,
00151 AvahiProtocol protocol,
00152 AvahiPublishFlags flags,
00153 const char *name ,
00154 const AvahiAddress *a );
00158 int avahi_entry_group_add_record(
00159 AvahiEntryGroup *group,
00160 AvahiIfIndex interface,
00161 AvahiProtocol protocol,
00162 AvahiPublishFlags flags,
00163 const char *name,
00164 uint16_t clazz,
00165 uint16_t type,
00166 uint32_t ttl,
00167 const void *rdata,
00168 size_t size);
00169
00172 AVAHI_C_DECL_END
00173
00174 #endif