00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef DBUS_STRING_H
00025 #define DBUS_STRING_H
00026
00027 #include <config.h>
00028
00029 #include <dbus/dbus-memory.h>
00030 #include <dbus/dbus-types.h>
00031 #include <dbus/dbus-sysdeps.h>
00032
00033 #include <stdarg.h>
00034
00035 DBUS_BEGIN_DECLS;
00036
00040 struct DBusString
00041 {
00042 void *dummy1;
00043 int dummy2;
00044 int dummy3;
00045 int dummy4;
00046 unsigned int dummy5 : 1;
00047 unsigned int dummy6 : 1;
00048 unsigned int dummy7 : 1;
00049 unsigned int dummy8 : 3;
00050 };
00051
00052 dbus_bool_t _dbus_string_init (DBusString *str);
00053 void _dbus_string_init_const (DBusString *str,
00054 const char *value);
00055 void _dbus_string_init_const_len (DBusString *str,
00056 const char *value,
00057 int len);
00058 dbus_bool_t _dbus_string_init_preallocated (DBusString *str,
00059 int allocate_size);
00060 void _dbus_string_free (DBusString *str);
00061 void _dbus_string_lock (DBusString *str);
00062 char* _dbus_string_get_data (DBusString *str);
00063 const char* _dbus_string_get_const_data (const DBusString *str);
00064 char* _dbus_string_get_data_len (DBusString *str,
00065 int start,
00066 int len);
00067 const char* _dbus_string_get_const_data_len (const DBusString *str,
00068 int start,
00069 int len);
00070 void _dbus_string_set_byte (DBusString *str,
00071 int i,
00072 unsigned char byte);
00073 unsigned char _dbus_string_get_byte (const DBusString *str,
00074 int start);
00075 dbus_bool_t _dbus_string_insert_bytes (DBusString *str,
00076 int i,
00077 int n_bytes,
00078 unsigned char byte);
00079 dbus_bool_t _dbus_string_steal_data (DBusString *str,
00080 char **data_return);
00081 dbus_bool_t _dbus_string_steal_data_len (DBusString *str,
00082 char **data_return,
00083 int start,
00084 int len);
00085 dbus_bool_t _dbus_string_copy_data (const DBusString *str,
00086 char **data_return);
00087 dbus_bool_t _dbus_string_copy_data_len (const DBusString *str,
00088 char **data_return,
00089 int start,
00090 int len);
00091 int _dbus_string_get_length (const DBusString *str);
00092 dbus_bool_t _dbus_string_lengthen (DBusString *str,
00093 int additional_length);
00094 void _dbus_string_shorten (DBusString *str,
00095 int length_to_remove);
00096 dbus_bool_t _dbus_string_set_length (DBusString *str,
00097 int length);
00098 dbus_bool_t _dbus_string_align_length (DBusString *str,
00099 int alignment);
00100 dbus_bool_t _dbus_string_append (DBusString *str,
00101 const char *buffer);
00102 dbus_bool_t _dbus_string_append_len (DBusString *str,
00103 const char *buffer,
00104 int len);
00105 dbus_bool_t _dbus_string_append_int (DBusString *str,
00106 long value);
00107 dbus_bool_t _dbus_string_append_uint (DBusString *str,
00108 unsigned long value);
00109 dbus_bool_t _dbus_string_append_double (DBusString *str,
00110 double value);
00111 dbus_bool_t _dbus_string_append_byte (DBusString *str,
00112 unsigned char byte);
00113 dbus_bool_t _dbus_string_append_unichar (DBusString *str,
00114 dbus_unichar_t ch);
00115 dbus_bool_t _dbus_string_append_4_aligned (DBusString *str,
00116 const unsigned char octets[4]);
00117 dbus_bool_t _dbus_string_append_8_aligned (DBusString *str,
00118 const unsigned char octets[8]);
00119 dbus_bool_t _dbus_string_append_printf (DBusString *str,
00120 const char *format,
00121 ...) _DBUS_GNUC_PRINTF (2, 3);
00122 dbus_bool_t _dbus_string_append_printf_valist (DBusString *str,
00123 const char *format,
00124 va_list args);
00125 void _dbus_string_delete (DBusString *str,
00126 int start,
00127 int len);
00128 dbus_bool_t _dbus_string_move (DBusString *source,
00129 int start,
00130 DBusString *dest,
00131 int insert_at);
00132 dbus_bool_t _dbus_string_copy (const DBusString *source,
00133 int start,
00134 DBusString *dest,
00135 int insert_at);
00136 dbus_bool_t _dbus_string_move_len (DBusString *source,
00137 int start,
00138 int len,
00139 DBusString *dest,
00140 int insert_at);
00141 dbus_bool_t _dbus_string_copy_len (const DBusString *source,
00142 int start,
00143 int len,
00144 DBusString *dest,
00145 int insert_at);
00146 dbus_bool_t _dbus_string_replace_len (const DBusString *source,
00147 int start,
00148 int len,
00149 DBusString *dest,
00150 int replace_at,
00151 int replace_len);
00152 void _dbus_string_get_unichar (const DBusString *str,
00153 int start,
00154 dbus_unichar_t *ch_return,
00155 int *end_return);
00156 dbus_bool_t _dbus_string_parse_int (const DBusString *str,
00157 int start,
00158 long *value_return,
00159 int *end_return);
00160 dbus_bool_t _dbus_string_parse_uint (const DBusString *str,
00161 int start,
00162 unsigned long *value_return,
00163 int *end_return);
00164 dbus_bool_t _dbus_string_parse_double (const DBusString *str,
00165 int start,
00166 double *value,
00167 int *end_return);
00168 dbus_bool_t _dbus_string_find (const DBusString *str,
00169 int start,
00170 const char *substr,
00171 int *found);
00172 dbus_bool_t _dbus_string_find_to (const DBusString *str,
00173 int start,
00174 int end,
00175 const char *substr,
00176 int *found);
00177 dbus_bool_t _dbus_string_find_byte_backward (const DBusString *str,
00178 int start,
00179 unsigned char byte,
00180 int *found);
00181 dbus_bool_t _dbus_string_find_blank (const DBusString *str,
00182 int start,
00183 int *found);
00184 void _dbus_string_skip_blank (const DBusString *str,
00185 int start,
00186 int *end);
00187 void _dbus_string_skip_white (const DBusString *str,
00188 int start,
00189 int *end);
00190 dbus_bool_t _dbus_string_equal (const DBusString *a,
00191 const DBusString *b);
00192 dbus_bool_t _dbus_string_equal_c_str (const DBusString *a,
00193 const char *c_str);
00194 dbus_bool_t _dbus_string_equal_len (const DBusString *a,
00195 const DBusString *b,
00196 int len);
00197 dbus_bool_t _dbus_string_starts_with_c_str (const DBusString *a,
00198 const char *c_str);
00199 dbus_bool_t _dbus_string_ends_with_c_str (const DBusString *a,
00200 const char *c_str);
00201 dbus_bool_t _dbus_string_pop_line (DBusString *source,
00202 DBusString *dest);
00203 void _dbus_string_delete_first_word (DBusString *str);
00204 void _dbus_string_delete_leading_blanks (DBusString *str);
00205 dbus_bool_t _dbus_string_base64_encode (const DBusString *source,
00206 int start,
00207 DBusString *dest,
00208 int insert_at);
00209 dbus_bool_t _dbus_string_base64_decode (const DBusString *source,
00210 int start,
00211 DBusString *dest,
00212 int insert_at);
00213 dbus_bool_t _dbus_string_hex_encode (const DBusString *source,
00214 int start,
00215 DBusString *dest,
00216 int insert_at);
00217 dbus_bool_t _dbus_string_hex_decode (const DBusString *source,
00218 int start,
00219 DBusString *dest,
00220 int insert_at);
00221 dbus_bool_t _dbus_string_validate_ascii (const DBusString *str,
00222 int start,
00223 int len);
00224 dbus_bool_t _dbus_string_validate_utf8 (const DBusString *str,
00225 int start,
00226 int len);
00227 dbus_bool_t _dbus_string_validate_nul (const DBusString *str,
00228 int start,
00229 int len);
00230 dbus_bool_t _dbus_string_validate_path (const DBusString *str,
00231 int start,
00232 int len);
00233 dbus_bool_t _dbus_string_validate_interface (const DBusString *str,
00234 int start,
00235 int len);
00236 dbus_bool_t _dbus_string_validate_member (const DBusString *str,
00237 int start,
00238 int len);
00239 dbus_bool_t _dbus_string_validate_error_name (const DBusString *str,
00240 int start,
00241 int len);
00242 dbus_bool_t _dbus_string_validate_service (const DBusString *str,
00243 int start,
00244 int len);
00245 void _dbus_string_zero (DBusString *str);
00246
00247
00248 DBUS_END_DECLS;
00249
00250 #endif