axutil_string.h

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     /* much similar to the strcat behaviour. But the difference is
00190      * this allocates new memory to put the conatenated string rather than
00191      * modifying the first argument. The user should free the allocated
00192      * memory for the return value
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     
00218     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00219     axutil_strchr(const axis2_char_t *s,
00220             axis2_char_t ch);
00221 
00222     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00223     axutil_rindex(const axis2_char_t *s,
00224         axis2_char_t c);
00225 
00226     /* replaces s1 with s2 */
00227     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00228     axutil_replace(const axutil_env_t *env,
00229         axis2_char_t *str,
00230         int s1,
00231         int s2);
00232 
00233     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00234     axutil_strltrim(const axutil_env_t *env,
00235         const axis2_char_t *_s,
00236         const axis2_char_t *_trim);
00237 
00238     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00239     axutil_strrtrim(const axutil_env_t *env,
00240         const axis2_char_t *_s,
00241         const axis2_char_t *_trim);
00242 
00243     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00244     axutil_strtrim(const axutil_env_t *env,
00245         const axis2_char_t *_s,
00246         const axis2_char_t *_trim);
00247 
00255     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00256     axutil_string_replace(axis2_char_t *str,
00257         axis2_char_t old_char,
00258         axis2_char_t new_char);
00259 
00266     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00267     axutil_string_substring_starting_at(axis2_char_t *str,
00268         int s);
00269 
00276     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00277     axutil_string_substring_ending_at(axis2_char_t *str,
00278         int e);
00279 
00285     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00286     axutil_string_tolower(axis2_char_t *str);
00287 
00293     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00294     axutil_string_toupper(axis2_char_t *str);
00295 
00304     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00305     axutil_strcasestr(const axis2_char_t *heystack,
00306         const axis2_char_t *needle);
00307 
00310 #ifdef __cplusplus
00311 }
00312 #endif
00313 
00314 #endif                          /* AXIS2_STRING_H */

Generated on Wed Sep 26 09:49:21 2007 for Axis2/C by  doxygen 1.4.6