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 
00211     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00212     axutil_rindex(const axis2_char_t *s,
00213         axis2_char_t c);
00214 
00215     /* replaces s1 with s2 */
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                          /* AXIS2_STRING_H */

Generated on Thu May 3 12:31:01 2007 for Axis2/C by  doxygen 1.4.6