00001
00018 #ifndef AXUTIL_STRING_H
00019 #define AXUTIL_STRING_H
00020
00021 #include <axutil_utils_defines.h>
00022 #include <axutil_error.h>
00023 #include <axutil_env.h>
00024 #include <string.h>
00025
00026 #ifdef __cplusplus
00027 extern "C"
00028 {
00029 #endif
00030
00037 typedef struct axutil_string axutil_string_t;
00038
00046 AXIS2_EXTERN axutil_string_t * AXIS2_CALL
00047 axutil_string_create(const axutil_env_t *env,
00048 const axis2_char_t *str);
00049
00057 AXIS2_EXTERN axutil_string_t * AXIS2_CALL
00058 axutil_string_create_assume_ownership(const axutil_env_t *env,
00059 axis2_char_t **str);
00060
00068 AXIS2_EXTERN axutil_string_t* AXIS2_CALL
00069 axutil_string_create_const(const axutil_env_t *env,
00070 axis2_char_t **str);
00071
00078 AXIS2_EXTERN void AXIS2_CALL
00079 axutil_string_free(struct axutil_string *string,
00080 const axutil_env_t *env);
00081
00090 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00091 axutil_string_equals(const struct axutil_string *string,
00092 const axutil_env_t *env,
00093 const struct axutil_string *string1);
00094
00103 AXIS2_EXTERN struct axutil_string *AXIS2_CALL
00104 axutil_string_clone(struct axutil_string *string,
00105 const axutil_env_t *env);
00106
00113 AXIS2_EXTERN const axis2_char_t* AXIS2_CALL
00114 axutil_string_get_buffer(const struct axutil_string *string,
00115 const axutil_env_t *env);
00116
00119 AXIS2_EXTERN unsigned int AXIS2_CALL
00120 axutil_string_get_length(const struct axutil_string *string,
00121 const axutil_env_t *env);
00122
00131 AXIS2_EXTERN void* AXIS2_CALL
00132 axutil_strdup(const axutil_env_t *env,
00133 const void *ptr);
00134
00142 AXIS2_EXTERN void* AXIS2_CALL
00143 axutil_strndup(const axutil_env_t *env,
00144 const void *ptr,
00145 int n);
00146
00158 AXIS2_EXTERN void * AXIS2_CALL
00159 axutil_strmemdup(const void *ptr,
00160 size_t n,
00161 const axutil_env_t *env);
00162
00163 AXIS2_EXTERN void * AXIS2_CALL
00164 axutil_memchr(const void *ptr,
00165 int c,
00166 size_t n);
00167
00168 AXIS2_EXTERN int AXIS2_CALL
00169 axutil_strcmp(const axis2_char_t * s1,
00170 const axis2_char_t * s2);
00171
00172 AXIS2_EXTERN int AXIS2_CALL
00173 axutil_strncmp(const axis2_char_t * s1,
00174 const axis2_char_t * s2,
00175 int n);
00176
00177 AXIS2_EXTERN axis2_ssize_t AXIS2_CALL
00178 axutil_strlen(const axis2_char_t * s);
00179
00180 AXIS2_EXTERN int AXIS2_CALL
00181 axutil_strcasecmp(const axis2_char_t *s1,
00182 const axis2_char_t *s2);
00183
00184 AXIS2_EXTERN int AXIS2_CALL
00185 axutil_strncasecmp(const axis2_char_t *s1,
00186 const axis2_char_t *s2,
00187 const int n);
00188
00189
00190
00191
00192
00193
00194 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00195 axutil_stracat(const axutil_env_t *env,
00196 const axis2_char_t *s1,
00197 const axis2_char_t *s2);
00198
00204 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00205 axutil_strcat(const axutil_env_t *env, ...);
00206
00207 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00208 axutil_strstr(const axis2_char_t *heystack,
00209 const axis2_char_t *needle);
00210
00211 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00212 axutil_rindex(const axis2_char_t *s,
00213 axis2_char_t c);
00214
00215
00216 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00217 axutil_replace(const axutil_env_t *env,
00218 axis2_char_t *str,
00219 int s1,
00220 int s2);
00221
00222 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00223 axutil_strltrim(const axutil_env_t *env,
00224 const axis2_char_t *_s,
00225 const axis2_char_t *_trim);
00226
00227 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00228 axutil_strrtrim(const axutil_env_t *env,
00229 const axis2_char_t *_s,
00230 const axis2_char_t *_trim);
00231
00232 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00233 axutil_strtrim(const axutil_env_t *env,
00234 const axis2_char_t *_s,
00235 const axis2_char_t *_trim);
00236
00244 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00245 axutil_string_replace(axis2_char_t *str,
00246 axis2_char_t old_char,
00247 axis2_char_t new_char);
00248
00255 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00256 axutil_string_substring_starting_at(axis2_char_t *str,
00257 int s);
00258
00265 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00266 axutil_string_substring_ending_at(axis2_char_t *str,
00267 int e);
00268
00274 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00275 axutil_string_tolower(axis2_char_t *str);
00276
00282 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00283 axutil_string_toupper(axis2_char_t *str);
00284
00293 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00294 axutil_strcasestr(const axis2_char_t *heystack,
00295 const axis2_char_t *needle);
00296
00299 #ifdef __cplusplus
00300 }
00301 #endif
00302
00303 #endif