dbus-string.h revision 95717a938b237d12211935f6a7467ef610288fe5
1/* -*- mode: C; c-file-style: "gnu" -*- */ 2/* dbus-string.h String utility class (internal to D-BUS implementation) 3 * 4 * Copyright (C) 2002 Red Hat, Inc. 5 * 6 * Licensed under the Academic Free License version 1.2 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 37struct DBusString 38{ 39 void *dummy1; /**< placeholder */ 40 int dummy2; /**< placeholder */ 41 int dummy3; /**< placeholder */ 42 int dummy4; /**< placeholder */ 43 unsigned int dummy5 : 1; /**< placeholder */ 44 unsigned int dummy6 : 1; /**< placeholder */ 45 unsigned int dummy7 : 1; /**< placeholder */ 46 unsigned int dummy8 : 3; /**< placeholder */ 47}; 48 49dbus_bool_t _dbus_string_init (DBusString *str); 50void _dbus_string_init_const (DBusString *str, 51 const char *value); 52void _dbus_string_init_const_len (DBusString *str, 53 const char *value, 54 int len); 55dbus_bool_t _dbus_string_init_preallocated (DBusString *str, 56 int allocate_size); 57void _dbus_string_free (DBusString *str); 58void _dbus_string_lock (DBusString *str); 59char* _dbus_string_get_data (DBusString *str); 60const char* _dbus_string_get_const_data (const DBusString *str); 61char* _dbus_string_get_data_len (DBusString *str, 62 int start, 63 int len); 64const char* _dbus_string_get_const_data_len (const DBusString *str, 65 int start, 66 int len); 67void _dbus_string_set_byte (DBusString *str, 68 int i, 69 unsigned char byte); 70unsigned char _dbus_string_get_byte (const DBusString *str, 71 int start); 72dbus_bool_t _dbus_string_insert_byte (DBusString *str, 73 int i, 74 unsigned char byte); 75dbus_bool_t _dbus_string_steal_data (DBusString *str, 76 char **data_return); 77dbus_bool_t _dbus_string_steal_data_len (DBusString *str, 78 char **data_return, 79 int start, 80 int len); 81dbus_bool_t _dbus_string_copy_data (const DBusString *str, 82 char **data_return); 83dbus_bool_t _dbus_string_copy_data_len (const DBusString *str, 84 char **data_return, 85 int start, 86 int len); 87int _dbus_string_get_length (const DBusString *str); 88dbus_bool_t _dbus_string_lengthen (DBusString *str, 89 int additional_length); 90void _dbus_string_shorten (DBusString *str, 91 int length_to_remove); 92dbus_bool_t _dbus_string_set_length (DBusString *str, 93 int length); 94dbus_bool_t _dbus_string_align_length (DBusString *str, 95 int alignment); 96dbus_bool_t _dbus_string_append (DBusString *str, 97 const char *buffer); 98dbus_bool_t _dbus_string_append_len (DBusString *str, 99 const char *buffer, 100 int len); 101dbus_bool_t _dbus_string_append_int (DBusString *str, 102 long value); 103dbus_bool_t _dbus_string_append_uint (DBusString *str, 104 unsigned long value); 105dbus_bool_t _dbus_string_append_double (DBusString *str, 106 double value); 107dbus_bool_t _dbus_string_append_byte (DBusString *str, 108 unsigned char byte); 109dbus_bool_t _dbus_string_append_unichar (DBusString *str, 110 dbus_unichar_t ch); 111dbus_bool_t _dbus_string_append_4_aligned (DBusString *str, 112 const unsigned char octets[4]); 113dbus_bool_t _dbus_string_append_8_aligned (DBusString *str, 114 const unsigned char octets[8]); 115dbus_bool_t _dbus_string_append_printf (DBusString *str, 116 const char *format, 117 ...) _DBUS_GNUC_PRINTF (2, 3); 118dbus_bool_t _dbus_string_append_printf_valist (DBusString *str, 119 const char *format, 120 va_list args); 121void _dbus_string_delete (DBusString *str, 122 int start, 123 int len); 124dbus_bool_t _dbus_string_move (DBusString *source, 125 int start, 126 DBusString *dest, 127 int insert_at); 128dbus_bool_t _dbus_string_copy (const DBusString *source, 129 int start, 130 DBusString *dest, 131 int insert_at); 132dbus_bool_t _dbus_string_move_len (DBusString *source, 133 int start, 134 int len, 135 DBusString *dest, 136 int insert_at); 137dbus_bool_t _dbus_string_copy_len (const DBusString *source, 138 int start, 139 int len, 140 DBusString *dest, 141 int insert_at); 142dbus_bool_t _dbus_string_replace_len (const DBusString *source, 143 int start, 144 int len, 145 DBusString *dest, 146 int replace_at, 147 int replace_len); 148void _dbus_string_get_unichar (const DBusString *str, 149 int start, 150 dbus_unichar_t *ch_return, 151 int *end_return); 152dbus_bool_t _dbus_string_parse_int (const DBusString *str, 153 int start, 154 long *value_return, 155 int *end_return); 156dbus_bool_t _dbus_string_parse_uint (const DBusString *str, 157 int start, 158 unsigned long *value_return, 159 int *end_return); 160dbus_bool_t _dbus_string_parse_double (const DBusString *str, 161 int start, 162 double *value, 163 int *end_return); 164dbus_bool_t _dbus_string_find (const DBusString *str, 165 int start, 166 const char *substr, 167 int *found); 168dbus_bool_t _dbus_string_find_to (const DBusString *str, 169 int start, 170 int end, 171 const char *substr, 172 int *found); 173dbus_bool_t _dbus_string_find_byte_backward (const DBusString *str, 174 int start, 175 unsigned char byte, 176 int *found); 177dbus_bool_t _dbus_string_find_blank (const DBusString *str, 178 int start, 179 int *found); 180void _dbus_string_skip_blank (const DBusString *str, 181 int start, 182 int *end); 183void _dbus_string_skip_white (const DBusString *str, 184 int start, 185 int *end); 186dbus_bool_t _dbus_string_equal (const DBusString *a, 187 const DBusString *b); 188dbus_bool_t _dbus_string_equal_c_str (const DBusString *a, 189 const char *c_str); 190dbus_bool_t _dbus_string_equal_len (const DBusString *a, 191 const DBusString *b, 192 int len); 193dbus_bool_t _dbus_string_starts_with_c_str (const DBusString *a, 194 const char *c_str); 195dbus_bool_t _dbus_string_ends_with_c_str (const DBusString *a, 196 const char *c_str); 197dbus_bool_t _dbus_string_pop_line (DBusString *source, 198 DBusString *dest); 199void _dbus_string_delete_first_word (DBusString *str); 200void _dbus_string_delete_leading_blanks (DBusString *str); 201dbus_bool_t _dbus_string_base64_encode (const DBusString *source, 202 int start, 203 DBusString *dest, 204 int insert_at); 205dbus_bool_t _dbus_string_base64_decode (const DBusString *source, 206 int start, 207 DBusString *dest, 208 int insert_at); 209dbus_bool_t _dbus_string_hex_encode (const DBusString *source, 210 int start, 211 DBusString *dest, 212 int insert_at); 213dbus_bool_t _dbus_string_hex_decode (const DBusString *source, 214 int start, 215 DBusString *dest, 216 int insert_at); 217dbus_bool_t _dbus_string_validate_ascii (const DBusString *str, 218 int start, 219 int len); 220dbus_bool_t _dbus_string_validate_utf8 (const DBusString *str, 221 int start, 222 int len); 223dbus_bool_t _dbus_string_validate_nul (const DBusString *str, 224 int start, 225 int len); 226dbus_bool_t _dbus_string_validate_interface (const DBusString *str, 227 int start, 228 int len); 229dbus_bool_t _dbus_string_validate_member (const DBusString *str, 230 int start, 231 int len); 232dbus_bool_t _dbus_string_validate_error_name (const DBusString *str, 233 int start, 234 int len); 235dbus_bool_t _dbus_string_validate_service (const DBusString *str, 236 int start, 237 int len); 238void _dbus_string_zero (DBusString *str); 239 240 241DBUS_END_DECLS; 242 243#endif /* DBUS_STRING_H */ 244