|
avahi 0.6.30
|
00001 #ifndef footxtlisthfoo 00002 #define footxtlisthfoo 00003 00004 /*** 00005 This file is part of avahi. 00006 00007 avahi is free software; you can redistribute it and/or modify it 00008 under the terms of the GNU Lesser General Public License as 00009 published by the Free Software Foundation; either version 2.1 of the 00010 License, or (at your option) any later version. 00011 00012 avahi is distributed in the hope that it will be useful, but WITHOUT 00013 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 00014 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General 00015 Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public 00018 License along with avahi; if not, write to the Free Software 00019 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00020 USA. 00021 ***/ 00022 00025 #include <sys/types.h> 00026 #include <inttypes.h> 00027 #include <stdarg.h> 00028 00029 #include <avahi-common/cdecl.h> 00030 #include <avahi-common/gccmacro.h> 00031 00032 AVAHI_C_DECL_BEGIN 00033 00040 typedef struct AvahiStringList { 00041 struct AvahiStringList *next; 00042 size_t size; 00043 uint8_t text[1]; 00044 } AvahiStringList; 00045 00051 AvahiStringList *avahi_string_list_new(const char *txt, ...) AVAHI_GCC_SENTINEL; 00052 00055 AvahiStringList *avahi_string_list_new_va(va_list va); 00061 AvahiStringList *avahi_string_list_new_from_array(const char **array, int length); 00062 00064 void avahi_string_list_free(AvahiStringList *l); 00065 00073 AvahiStringList *avahi_string_list_add(AvahiStringList *l, const char *text); 00074 00076 AvahiStringList *avahi_string_list_add_printf(AvahiStringList *l, const char *format, ...) AVAHI_GCC_PRINTF_ATTR23; 00077 00080 AvahiStringList *avahi_string_list_add_vprintf(AvahiStringList *l, const char *format, va_list va); 00085 AvahiStringList *avahi_string_list_add_arbitrary(AvahiStringList *l, const uint8_t *text, size_t size); 00086 00092 AvahiStringList*avahi_string_list_add_anonymous(AvahiStringList *l, size_t size); 00093 00097 AvahiStringList *avahi_string_list_add_many(AvahiStringList *r, ...) AVAHI_GCC_SENTINEL; 00098 00102 AvahiStringList *avahi_string_list_add_many_va(AvahiStringList *r, va_list va); 00112 char* avahi_string_list_to_string(AvahiStringList *l); 00113 00117 size_t avahi_string_list_serialize(AvahiStringList *l, void * data, size_t size); 00118 00120 int avahi_string_list_parse(const void *data, size_t size, AvahiStringList **ret); 00124 int avahi_string_list_equal(const AvahiStringList *a, const AvahiStringList *b); 00125 00127 AvahiStringList *avahi_string_list_copy(const AvahiStringList *l); 00128 00130 AvahiStringList* avahi_string_list_reverse(AvahiStringList *l); 00131 00133 unsigned avahi_string_list_length(const AvahiStringList *l); 00134 00140 AvahiStringList *avahi_string_list_get_next(AvahiStringList *l); 00141 00143 uint8_t *avahi_string_list_get_text(AvahiStringList *l); 00144 00146 size_t avahi_string_list_get_size(AvahiStringList *l); 00147 00153 AvahiStringList *avahi_string_list_find(AvahiStringList *l, const char *key); 00154 00160 int avahi_string_list_get_pair(AvahiStringList *l, char **key, char **value, size_t *size); 00161 00164 AvahiStringList *avahi_string_list_add_pair(AvahiStringList *l, const char *key, const char *value); 00165 00167 AvahiStringList *avahi_string_list_add_pair_arbitrary(AvahiStringList *l, const char *key, const uint8_t *value, size_t size); 00168 00174 uint32_t avahi_string_list_get_service_cookie(AvahiStringList *l); 00177 AVAHI_C_DECL_END 00178 00179 #endif 00180