<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>dbus-string.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.15 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>dbus-string.h</h1><div class="fragment"><pre>00001 <font class="comment">/* -*- mode: C; c-file-style: "gnu" -*- */</font> 00002 <font class="comment">/* dbus-string.h String utility class (internal to D-BUS implementation)</font> 00003 <font class="comment"> * </font> 00004 <font class="comment"> * Copyright (C) 2002, 2003 Red Hat, Inc.</font> 00005 <font class="comment"> *</font> 00006 <font class="comment"> * Licensed under the Academic Free License version 2.0</font> 00007 <font class="comment"> * </font> 00008 <font class="comment"> * This program is free software; you can redistribute it and/or modify</font> 00009 <font class="comment"> * it under the terms of the GNU General Public License as published by</font> 00010 <font class="comment"> * the Free Software Foundation; either version 2 of the License, or</font> 00011 <font class="comment"> * (at your option) any later version.</font> 00012 <font class="comment"> *</font> 00013 <font class="comment"> * This program is distributed in the hope that it will be useful,</font> 00014 <font class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</font> 00015 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</font> 00016 <font class="comment"> * GNU General Public License for more details.</font> 00017 <font class="comment"> * </font> 00018 <font class="comment"> * You should have received a copy of the GNU General Public License</font> 00019 <font class="comment"> * along with this program; if not, write to the Free Software</font> 00020 <font class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</font> 00021 <font class="comment"> *</font> 00022 <font class="comment"> */</font> 00023 00024 <font class="preprocessor">#ifndef DBUS_STRING_H</font> 00025 <font class="preprocessor"></font><font class="preprocessor">#define DBUS_STRING_H</font> 00026 <font class="preprocessor"></font> 00027 <font class="preprocessor">#include <config.h></font> 00028 00029 <font class="preprocessor">#include <dbus/dbus-memory.h></font> 00030 <font class="preprocessor">#include <dbus/dbus-types.h></font> 00031 <font class="preprocessor">#include <dbus/dbus-sysdeps.h></font> 00032 00033 <font class="preprocessor">#include <stdarg.h></font> 00034 00035 DBUS_BEGIN_DECLS; 00036 <a name="l00040"></a><a class="code" href="structDBusString.html">00040</a> <font class="keyword">struct </font><a class="code" href="structDBusString.html">DBusString</a> 00041 { <a name="l00042"></a><a class="code" href="structDBusString.html#m0">00042</a> <font class="keywordtype">void</font> *<a class="code" href="structDBusString.html#m0">dummy1</a>; <a name="l00043"></a><a class="code" href="structDBusString.html#m1">00043</a> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m1">dummy2</a>; <a name="l00044"></a><a class="code" href="structDBusString.html#m2">00044</a> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m2">dummy3</a>; <a name="l00045"></a><a class="code" href="structDBusString.html#m3">00045</a> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m3">dummy4</a>; <a name="l00046"></a><a class="code" href="structDBusString.html#m4">00046</a> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m4">dummy5</a> : 1; <a name="l00047"></a><a class="code" href="structDBusString.html#m5">00047</a> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m5">dummy6</a> : 1; <a name="l00048"></a><a class="code" href="structDBusString.html#m6">00048</a> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m6">dummy7</a> : 1; <a name="l00049"></a><a class="code" href="structDBusString.html#m7">00049</a> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> <a class="code" href="structDBusString.html#m7">dummy8</a> : 3; 00050 }; 00051 00052 dbus_bool_t _dbus_string_init (<a class="code" href="structDBusString.html">DBusString</a> *str); 00053 <font class="keywordtype">void</font> _dbus_string_init_const (<a class="code" href="structDBusString.html">DBusString</a> *str, 00054 <font class="keyword">const</font> <font class="keywordtype">char</font> *value); 00055 <font class="keywordtype">void</font> _dbus_string_init_const_len (<a class="code" href="structDBusString.html">DBusString</a> *str, 00056 <font class="keyword">const</font> <font class="keywordtype">char</font> *value, 00057 <font class="keywordtype">int</font> len); 00058 dbus_bool_t _dbus_string_init_preallocated (<a class="code" href="structDBusString.html">DBusString</a> *str, 00059 <font class="keywordtype">int</font> allocate_size); 00060 <font class="keywordtype">void</font> _dbus_string_free (<a class="code" href="structDBusString.html">DBusString</a> *str); 00061 <font class="keywordtype">void</font> _dbus_string_lock (<a class="code" href="structDBusString.html">DBusString</a> *str); 00062 <font class="keywordtype">char</font>* _dbus_string_get_data (<a class="code" href="structDBusString.html">DBusString</a> *str); 00063 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_string_get_const_data (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str); 00064 <font class="keywordtype">char</font>* _dbus_string_get_data_len (<a class="code" href="structDBusString.html">DBusString</a> *str, 00065 <font class="keywordtype">int</font> start, 00066 <font class="keywordtype">int</font> len); 00067 <font class="keyword">const</font> <font class="keywordtype">char</font>* _dbus_string_get_const_data_len (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00068 <font class="keywordtype">int</font> start, 00069 <font class="keywordtype">int</font> len); 00070 <font class="keywordtype">void</font> _dbus_string_set_byte (<a class="code" href="structDBusString.html">DBusString</a> *str, 00071 <font class="keywordtype">int</font> i, 00072 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> byte); 00073 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> _dbus_string_get_byte (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00074 <font class="keywordtype">int</font> start); 00075 dbus_bool_t _dbus_string_insert_bytes (<a class="code" href="structDBusString.html">DBusString</a> *str, 00076 <font class="keywordtype">int</font> i, 00077 <font class="keywordtype">int</font> n_bytes, 00078 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> byte); 00079 dbus_bool_t _dbus_string_steal_data (<a class="code" href="structDBusString.html">DBusString</a> *str, 00080 <font class="keywordtype">char</font> **data_return); 00081 dbus_bool_t _dbus_string_steal_data_len (<a class="code" href="structDBusString.html">DBusString</a> *str, 00082 <font class="keywordtype">char</font> **data_return, 00083 <font class="keywordtype">int</font> start, 00084 <font class="keywordtype">int</font> len); 00085 dbus_bool_t _dbus_string_copy_data (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00086 <font class="keywordtype">char</font> **data_return); 00087 dbus_bool_t _dbus_string_copy_data_len (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00088 <font class="keywordtype">char</font> **data_return, 00089 <font class="keywordtype">int</font> start, 00090 <font class="keywordtype">int</font> len); 00091 <font class="keywordtype">int</font> _dbus_string_get_length (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str); 00092 dbus_bool_t _dbus_string_lengthen (<a class="code" href="structDBusString.html">DBusString</a> *str, 00093 <font class="keywordtype">int</font> additional_length); 00094 <font class="keywordtype">void</font> _dbus_string_shorten (<a class="code" href="structDBusString.html">DBusString</a> *str, 00095 <font class="keywordtype">int</font> length_to_remove); 00096 dbus_bool_t _dbus_string_set_length (<a class="code" href="structDBusString.html">DBusString</a> *str, 00097 <font class="keywordtype">int</font> length); 00098 dbus_bool_t _dbus_string_align_length (<a class="code" href="structDBusString.html">DBusString</a> *str, 00099 <font class="keywordtype">int</font> alignment); 00100 dbus_bool_t _dbus_string_append (<a class="code" href="structDBusString.html">DBusString</a> *str, 00101 <font class="keyword">const</font> <font class="keywordtype">char</font> *buffer); 00102 dbus_bool_t _dbus_string_append_len (<a class="code" href="structDBusString.html">DBusString</a> *str, 00103 <font class="keyword">const</font> <font class="keywordtype">char</font> *buffer, 00104 <font class="keywordtype">int</font> len); 00105 dbus_bool_t _dbus_string_append_int (<a class="code" href="structDBusString.html">DBusString</a> *str, 00106 <font class="keywordtype">long</font> value); 00107 dbus_bool_t _dbus_string_append_uint (<a class="code" href="structDBusString.html">DBusString</a> *str, 00108 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> value); 00109 dbus_bool_t _dbus_string_append_double (<a class="code" href="structDBusString.html">DBusString</a> *str, 00110 <font class="keywordtype">double</font> value); 00111 dbus_bool_t _dbus_string_append_byte (<a class="code" href="structDBusString.html">DBusString</a> *str, 00112 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> byte); 00113 dbus_bool_t _dbus_string_append_unichar (<a class="code" href="structDBusString.html">DBusString</a> *str, 00114 dbus_unichar_t ch); 00115 dbus_bool_t _dbus_string_append_4_aligned (<a class="code" href="structDBusString.html">DBusString</a> *str, 00116 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> octets[4]); 00117 dbus_bool_t _dbus_string_append_8_aligned (<a class="code" href="structDBusString.html">DBusString</a> *str, 00118 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> octets[8]); 00119 dbus_bool_t _dbus_string_append_printf (<a class="code" href="structDBusString.html">DBusString</a> *str, 00120 <font class="keyword">const</font> <font class="keywordtype">char</font> *format, 00121 ...) _DBUS_GNUC_PRINTF (2, 3); 00122 dbus_bool_t _dbus_string_append_printf_valist (<a class="code" href="structDBusString.html">DBusString</a> *str, 00123 <font class="keyword">const</font> <font class="keywordtype">char</font> *format, 00124 va_list args); 00125 <font class="keywordtype">void</font> _dbus_string_delete (<a class="code" href="structDBusString.html">DBusString</a> *str, 00126 <font class="keywordtype">int</font> start, 00127 <font class="keywordtype">int</font> len); 00128 dbus_bool_t _dbus_string_move (<a class="code" href="structDBusString.html">DBusString</a> *source, 00129 <font class="keywordtype">int</font> start, 00130 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00131 <font class="keywordtype">int</font> insert_at); 00132 dbus_bool_t _dbus_string_copy (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *source, 00133 <font class="keywordtype">int</font> start, 00134 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00135 <font class="keywordtype">int</font> insert_at); 00136 dbus_bool_t _dbus_string_move_len (<a class="code" href="structDBusString.html">DBusString</a> *source, 00137 <font class="keywordtype">int</font> start, 00138 <font class="keywordtype">int</font> len, 00139 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00140 <font class="keywordtype">int</font> insert_at); 00141 dbus_bool_t _dbus_string_copy_len (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *source, 00142 <font class="keywordtype">int</font> start, 00143 <font class="keywordtype">int</font> len, 00144 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00145 <font class="keywordtype">int</font> insert_at); 00146 dbus_bool_t _dbus_string_replace_len (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *source, 00147 <font class="keywordtype">int</font> start, 00148 <font class="keywordtype">int</font> len, 00149 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00150 <font class="keywordtype">int</font> replace_at, 00151 <font class="keywordtype">int</font> replace_len); 00152 <font class="keywordtype">void</font> _dbus_string_get_unichar (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00153 <font class="keywordtype">int</font> start, 00154 dbus_unichar_t *ch_return, 00155 <font class="keywordtype">int</font> *end_return); 00156 dbus_bool_t _dbus_string_parse_int (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00157 <font class="keywordtype">int</font> start, 00158 <font class="keywordtype">long</font> *value_return, 00159 <font class="keywordtype">int</font> *end_return); 00160 dbus_bool_t _dbus_string_parse_uint (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00161 <font class="keywordtype">int</font> start, 00162 <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> *value_return, 00163 <font class="keywordtype">int</font> *end_return); 00164 dbus_bool_t _dbus_string_parse_double (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00165 <font class="keywordtype">int</font> start, 00166 <font class="keywordtype">double</font> *value, 00167 <font class="keywordtype">int</font> *end_return); 00168 dbus_bool_t _dbus_string_parse_basic_type (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00169 <font class="keywordtype">char</font> type, 00170 <font class="keywordtype">int</font> start, 00171 <font class="keywordtype">void</font> *value, 00172 <font class="keywordtype">int</font> *end_return); 00173 dbus_bool_t _dbus_string_find (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00174 <font class="keywordtype">int</font> start, 00175 <font class="keyword">const</font> <font class="keywordtype">char</font> *substr, 00176 <font class="keywordtype">int</font> *found); 00177 dbus_bool_t _dbus_string_find_to (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00178 <font class="keywordtype">int</font> start, 00179 <font class="keywordtype">int</font> end, 00180 <font class="keyword">const</font> <font class="keywordtype">char</font> *substr, 00181 <font class="keywordtype">int</font> *found); 00182 dbus_bool_t _dbus_string_find_byte_backward (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00183 <font class="keywordtype">int</font> start, 00184 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> byte, 00185 <font class="keywordtype">int</font> *found); 00186 dbus_bool_t _dbus_string_find_blank (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00187 <font class="keywordtype">int</font> start, 00188 <font class="keywordtype">int</font> *found); 00189 <font class="keywordtype">void</font> _dbus_string_skip_blank (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00190 <font class="keywordtype">int</font> start, 00191 <font class="keywordtype">int</font> *end); 00192 <font class="keywordtype">void</font> _dbus_string_skip_white (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00193 <font class="keywordtype">int</font> start, 00194 <font class="keywordtype">int</font> *end); 00195 dbus_bool_t _dbus_string_equal (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *a, 00196 <font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *b); 00197 dbus_bool_t _dbus_string_equal_c_str (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *a, 00198 <font class="keyword">const</font> <font class="keywordtype">char</font> *c_str); 00199 dbus_bool_t _dbus_string_equal_len (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *a, 00200 <font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *b, 00201 <font class="keywordtype">int</font> len); 00202 dbus_bool_t _dbus_string_starts_with_c_str (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *a, 00203 <font class="keyword">const</font> <font class="keywordtype">char</font> *c_str); 00204 dbus_bool_t _dbus_string_ends_with_c_str (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *a, 00205 <font class="keyword">const</font> <font class="keywordtype">char</font> *c_str); 00206 dbus_bool_t _dbus_string_pop_line (<a class="code" href="structDBusString.html">DBusString</a> *source, 00207 <a class="code" href="structDBusString.html">DBusString</a> *dest); 00208 <font class="keywordtype">void</font> _dbus_string_delete_first_word (<a class="code" href="structDBusString.html">DBusString</a> *str); 00209 <font class="keywordtype">void</font> _dbus_string_delete_leading_blanks (<a class="code" href="structDBusString.html">DBusString</a> *str); 00210 dbus_bool_t _dbus_string_hex_encode (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *source, 00211 <font class="keywordtype">int</font> start, 00212 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00213 <font class="keywordtype">int</font> insert_at); 00214 dbus_bool_t _dbus_string_hex_decode (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *source, 00215 <font class="keywordtype">int</font> start, 00216 <font class="keywordtype">int</font> *end_return, 00217 <a class="code" href="structDBusString.html">DBusString</a> *dest, 00218 <font class="keywordtype">int</font> insert_at); 00219 dbus_bool_t _dbus_string_validate_ascii (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00220 <font class="keywordtype">int</font> start, 00221 <font class="keywordtype">int</font> len); 00222 dbus_bool_t _dbus_string_validate_utf8 (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00223 <font class="keywordtype">int</font> start, 00224 <font class="keywordtype">int</font> len); 00225 dbus_bool_t _dbus_string_validate_nul (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00226 <font class="keywordtype">int</font> start, 00227 <font class="keywordtype">int</font> len); 00228 dbus_bool_t _dbus_string_validate_path (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00229 <font class="keywordtype">int</font> start, 00230 <font class="keywordtype">int</font> len); 00231 dbus_bool_t _dbus_string_validate_interface (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00232 <font class="keywordtype">int</font> start, 00233 <font class="keywordtype">int</font> len); 00234 dbus_bool_t _dbus_string_validate_member (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00235 <font class="keywordtype">int</font> start, 00236 <font class="keywordtype">int</font> len); 00237 dbus_bool_t _dbus_string_validate_error_name (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00238 <font class="keywordtype">int</font> start, 00239 <font class="keywordtype">int</font> len); 00240 dbus_bool_t _dbus_string_validate_service (<font class="keyword">const</font> <a class="code" href="structDBusString.html">DBusString</a> *str, 00241 <font class="keywordtype">int</font> start, 00242 <font class="keywordtype">int</font> len); 00243 <font class="keywordtype">void</font> _dbus_string_zero (<a class="code" href="structDBusString.html">DBusString</a> *str); 00244 00245 00246 DBUS_END_DECLS; 00247 00248 <font class="preprocessor">#endif </font><font class="comment">/* DBUS_STRING_H */</font> </pre></div><hr><address align="right"><small>Generated on Wed Jun 9 05:01:27 2004 for D-BUS by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.15 </small></address> </body> </html>