dbus-string.h revision a9ff341aa66588c12275529ee2d16843b493cb4f
1/* -*- mode: C; c-file-style: "gnu" -*- */ 2/* dbus-string.h String utility class (internal to D-BUS implementation) 3 * 4 * Copyright (C) 2002, 2003 Red Hat, Inc. 5 * 6 * Licensed under the Academic Free License version 2.1 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * 22 */ 23 24#ifndef DBUS_STRING_H 25#define DBUS_STRING_H 26 27#include <config.h> 28 29#include <dbus/dbus-memory.h> 30#include <dbus/dbus-types.h> 31#include <dbus/dbus-sysdeps.h> 32 33#include <stdarg.h> 34 35DBUS_BEGIN_DECLS 36 37/** 38 * DBusString object 39 */ 40struct DBusString 41{ 42 void *dummy1; /**< placeholder */ 43 int dummy2; /**< placeholder */ 44 int dummy3; /**< placeholder */ 45 int dummy4; /**< placeholder */ 46 unsigned int dummy5 : 1; /**< placeholder */ 47 unsigned int dummy6 : 1; /**< placeholder */ 48 unsigned int dummy7 : 1; /**< placeholder */ 49 unsigned int dummy8 : 3; /**< placeholder */ 50}; 51 52dbus_bool_t _dbus_string_init (DBusString *str); 53void _dbus_string_init_const (DBusString *str, 54 const char *value); 55void _dbus_string_init_const_len (DBusString *str, 56 const char *value, 57 int len); 58dbus_bool_t _dbus_string_init_preallocated (DBusString *str, 59 int allocate_size); 60void _dbus_string_free (DBusString *str); 61void _dbus_string_lock (DBusString *str); 62char* _dbus_string_get_data (DBusString *str); 63const char* _dbus_string_get_const_data (const DBusString *str); 64char* _dbus_string_get_data_len (DBusString *str, 65 int start, 66 int len); 67const char* _dbus_string_get_const_data_len (const DBusString *str, 68 int start, 69 int len); 70void _dbus_string_set_byte (DBusString *str, 71 int i, 72 unsigned char byte); 73unsigned char _dbus_string_get_byte (const DBusString *str, 74 int start); 75dbus_bool_t _dbus_string_insert_bytes (DBusString *str, 76 int i, 77 int n_bytes, 78 unsigned char byte); 79dbus_bool_t _dbus_string_steal_data (DBusString *str, 80 char **data_return); 81dbus_bool_t _dbus_string_steal_data_len (DBusString *str, 82 char **data_return, 83 int start, 84 int len); 85dbus_bool_t _dbus_string_copy_data (const DBusString *str, 86 char **data_return); 87dbus_bool_t _dbus_string_copy_data_len (const DBusString *str, 88 char **data_return, 89 int start, 90 int len); 91int _dbus_string_get_length (const DBusString *str); 92dbus_bool_t _dbus_string_lengthen (DBusString *str, 93 int additional_length); 94void _dbus_string_shorten (DBusString *str, 95 int length_to_remove); 96dbus_bool_t _dbus_string_set_length (DBusString *str, 97 int length); 98dbus_bool_t _dbus_string_align_length (DBusString *str, 99 int alignment); 100dbus_bool_t _dbus_string_append (DBusString *str, 101 const char *buffer); 102dbus_bool_t _dbus_string_append_len (DBusString *str, 103 const char *buffer, 104 int len); 105dbus_bool_t _dbus_string_append_int (DBusString *str, 106 long value); 107dbus_bool_t _dbus_string_append_uint (DBusString *str, 108 unsigned long value); 109dbus_bool_t _dbus_string_append_double (DBusString *str, 110 double value); 111dbus_bool_t _dbus_string_append_byte (DBusString *str, 112 unsigned char byte); 113dbus_bool_t _dbus_string_append_unichar (DBusString *str, 114 dbus_unichar_t ch); 115dbus_bool_t _dbus_string_append_4_aligned (DBusString *str, 116 const unsigned char octets[4]); 117dbus_bool_t _dbus_string_append_8_aligned (DBusString *str, 118 const unsigned char octets[8]); 119dbus_bool_t _dbus_string_append_printf (DBusString *str, 120 const char *format, 121 ...) _DBUS_GNUC_PRINTF (2, 3); 122dbus_bool_t _dbus_string_append_printf_valist (DBusString *str, 123 const char *format, 124 va_list args); 125void _dbus_string_delete (DBusString *str, 126 int start, 127 int len); 128dbus_bool_t _dbus_string_move (DBusString *source, 129 int start, 130 DBusString *dest, 131 int insert_at); 132dbus_bool_t _dbus_string_copy (const DBusString *source, 133 int start, 134 DBusString *dest, 135 int insert_at); 136dbus_bool_t _dbus_string_move_len (DBusString *source, 137 int start, 138 int len, 139 DBusString *dest, 140 int insert_at); 141dbus_bool_t _dbus_string_copy_len (const DBusString *source, 142 int start, 143 int len, 144 DBusString *dest, 145 int insert_at); 146dbus_bool_t _dbus_string_replace_len (const DBusString *source, 147 int start, 148 int len, 149 DBusString *dest, 150 int replace_at, 151 int replace_len); 152void _dbus_string_get_unichar (const DBusString *str, 153 int start, 154 dbus_unichar_t *ch_return, 155 int *end_return); 156dbus_bool_t _dbus_string_parse_int (const DBusString *str, 157 int start, 158 long *value_return, 159 int *end_return); 160dbus_bool_t _dbus_string_parse_uint (const DBusString *str, 161 int start, 162 unsigned long *value_return, 163 int *end_return); 164dbus_bool_t _dbus_string_parse_double (const DBusString *str, 165 int start, 166 double *value, 167 int *end_return); 168dbus_bool_t _dbus_string_parse_basic_type (const DBusString *str, 169 char type, 170 int start, 171 void *value, 172 int *end_return); 173dbus_bool_t _dbus_string_find (const DBusString *str, 174 int start, 175 const char *substr, 176 int *found); 177dbus_bool_t _dbus_string_find_to (const DBusString *str, 178 int start, 179 int end, 180 const char *substr, 181 int *found); 182dbus_bool_t _dbus_string_find_byte_backward (const DBusString *str, 183 int start, 184 unsigned char byte, 185 int *found); 186dbus_bool_t _dbus_string_find_blank (const DBusString *str, 187 int start, 188 int *found); 189void _dbus_string_skip_blank (const DBusString *str, 190 int start, 191 int *end); 192void _dbus_string_skip_white (const DBusString *str, 193 int start, 194 int *end); 195dbus_bool_t _dbus_string_equal (const DBusString *a, 196 const DBusString *b); 197dbus_bool_t _dbus_string_equal_c_str (const DBusString *a, 198 const char *c_str); 199dbus_bool_t _dbus_string_equal_len (const DBusString *a, 200 const DBusString *b, 201 int len); 202dbus_bool_t _dbus_string_starts_with_c_str (const DBusString *a, 203 const char *c_str); 204dbus_bool_t _dbus_string_ends_with_c_str (const DBusString *a, 205 const char *c_str); 206dbus_bool_t _dbus_string_pop_line (DBusString *source, 207 DBusString *dest); 208void _dbus_string_delete_first_word (DBusString *str); 209void _dbus_string_delete_leading_blanks (DBusString *str); 210dbus_bool_t _dbus_string_hex_encode (const DBusString *source, 211 int start, 212 DBusString *dest, 213 int insert_at); 214dbus_bool_t _dbus_string_hex_decode (const DBusString *source, 215 int start, 216 int *end_return, 217 DBusString *dest, 218 int insert_at); 219dbus_bool_t _dbus_string_validate_ascii (const DBusString *str, 220 int start, 221 int len); 222dbus_bool_t _dbus_string_validate_utf8 (const DBusString *str, 223 int start, 224 int len); 225dbus_bool_t _dbus_string_validate_nul (const DBusString *str, 226 int start, 227 int len); 228dbus_bool_t _dbus_string_validate_path (const DBusString *str, 229 int start, 230 int len); 231dbus_bool_t _dbus_string_validate_interface (const DBusString *str, 232 int start, 233 int len); 234dbus_bool_t _dbus_string_validate_member (const DBusString *str, 235 int start, 236 int len); 237dbus_bool_t _dbus_string_validate_error_name (const DBusString *str, 238 int start, 239 int len); 240dbus_bool_t _dbus_string_validate_service (const DBusString *str, 241 int start, 242 int len); 243void _dbus_string_zero (DBusString *str); 244 245 246DBUS_END_DECLS 247 248#endif /* DBUS_STRING_H */ 249