axis2_string.h

00001 
00018 #ifndef AXIS2_STRING_H
00019 #define AXIS2_STRING_H
00020 
00021 #include <axis2_utils_defines.h>
00022 #include <axis2_error.h>
00023 #include <axis2_env.h>
00024 #include <string.h>
00025 
00026 #ifdef __cplusplus
00027 extern "C"
00028 {
00029 #endif
00030 
00037     AXIS2_EXTERN void* AXIS2_CALL
00038     axis2_strdup (const void *ptr, 
00039                   const axis2_env_t *env);
00040 
00048     AXIS2_EXTERN void* AXIS2_CALL
00049     axis2_strndup (
00050             const void *ptr, 
00051             int n, 
00052             const axis2_env_t *env );
00053 
00065     AXIS2_EXTERN void * AXIS2_CALL
00066     axis2_strmemdup(const void *ptr, 
00067             size_t n, 
00068             const axis2_env_t *env);
00069 
00070     AXIS2_EXTERN void * AXIS2_CALL
00071     axis2_memchr (
00072             const void *ptr, 
00073             int c, 
00074             size_t n);
00075 
00076     AXIS2_EXTERN int AXIS2_CALL
00077     axis2_strcmp (const axis2_char_t * s1, 
00078                   const axis2_char_t * s2);
00079 
00080     AXIS2_EXTERN int AXIS2_CALL
00081     axis2_strncmp (const axis2_char_t * s1, 
00082                   const axis2_char_t * s2,
00083                   int n);
00084 
00085     AXIS2_EXTERN axis2_ssize_t AXIS2_CALL
00086     axis2_strlen(const axis2_char_t * s);
00087 
00088     AXIS2_EXTERN int AXIS2_CALL
00089     axis2_strcasecmp(const axis2_char_t *s1, 
00090                      const axis2_char_t *s2);
00091 
00092     AXIS2_EXTERN int AXIS2_CALL
00093     axis2_strncasecmp(const axis2_char_t *s1, 
00094                       const axis2_char_t *s2, int n);
00095     
00096     /* much similar to the strcat behaviour. But the difference is
00097      * this allocates new memory to put the conatenated string rather than
00098      * modifying the first argument. The user should free the allocated
00099      * memory for the return value
00100      */
00101     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00102     axis2_stracat(const axis2_char_t *s1, 
00103                   const axis2_char_t *s2, 
00104                   const axis2_env_t *env);
00105 
00111     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00112     axis2_strcat(const axis2_env_t *env, ...);
00113         
00114     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00115     axis2_strstr (const axis2_char_t *heystack,
00116                   const axis2_char_t *needle);
00117 
00118     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00119     axis2_rindex(const axis2_char_t *s, 
00120                  axis2_char_t c);
00121     /* replaces s1 with s2 */                 
00122     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00123     axis2_replace(const axis2_env_t *env,
00124                   axis2_char_t *str,
00125                   int s1,
00126                   int s2);
00127                                    
00128    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00129    axis2_strltrim(
00130            const axis2_env_t *env,
00131            const axis2_char_t *_s,
00132            const axis2_char_t *_trim);
00133 
00134    AXIS2_EXTERN axis2_char_t* AXIS2_CALL 
00135    axis2_strrtrim(
00136            const axis2_env_t *env,
00137            const axis2_char_t *_s,
00138            const axis2_char_t *_trim);
00139 
00140    AXIS2_EXTERN axis2_char_t* AXIS2_CALL 
00141    axis2_strtrim(
00142            const axis2_env_t *env,
00143            const axis2_char_t *_s,
00144            const axis2_char_t *_trim);
00145    
00153    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00154    axis2_string_replace(
00155            axis2_char_t *str,
00156            axis2_char_t old_char,
00157            axis2_char_t new_char);
00158 
00165    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00166    axis2_string_substring_starting_at(
00167            axis2_char_t *str,
00168            int s );
00169    
00176    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00177    axis2_string_substring_ending_at(
00178            axis2_char_t *str,
00179            int e );
00180    
00186    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00187    axis2_string_tolower(
00188            axis2_char_t *str );
00189     
00195    AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00196    axis2_string_toupper(
00197            axis2_char_t *str );
00198    
00207     AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00208     axis2_strcasestr(
00209             const axis2_char_t *heystack, 
00210             const axis2_char_t *needle);
00211    
00212 
00213 #define AXIS2_STRDUP(pts, env) \
00214         axis2_strdup(pts, env)
00215 
00216 #define AXIS2_STRNDUP(pts, n, env) \
00217         axis2_strndup(pts, n, env)
00218 
00219 #define AXIS2_STRMEMDUP(pts, n, env) \
00220         axis2_strmemdup(pts, n, env)
00221 
00222 #define AXIS2_MEMCHR(pts, c, n) \
00223         axis2_memchr(pts, c, n)
00224         
00225 #define AXIS2_STRCMP(s1, s2) \
00226         axis2_strcmp(s1, s2)
00227         
00228 #define AXIS2_STRNCMP(s1, s2, n) \
00229         axis2_strncmp(s1, s2, n)
00230         
00231 #define AXIS2_STRLEN(s) \
00232         axis2_strlen(s)
00233         
00234 #define AXIS2_STRCASECMP(s1,s2) \
00235         axis2_strcasecmp(s1,s2)
00236         
00237 #define AXIS2_STRNCASECMP(s1,s2,n) \
00238         axis2_strncasecmp(s1,s2,n)
00239         
00240 #define AXIS2_STRACAT(s1, s2, env) \
00241         axis2_stracat(s1, s2, env)
00242         
00243 #define AXIS2_STRSTR(s1, s2) \
00244         axis2_strstr(s1, s2)
00245         
00246 #define AXIS2_RINDEX(s, c) \
00247         axis2_rindex(s, c)
00248         
00249 #define AXIS2_REPLACE(env, str, s1, s2) \
00250         axis2_replace(env, str, s1, s2)        
00251 
00252 #define AXIS2_STRLTRIM(env, s, trim) \
00253       axis2_strltrim(env, s, trim)
00254 
00255 #define AXIS2_STRRTRIM(env, s, trim) \
00256       axis2_strrtrim(env, s, trim)
00257 
00258 #define AXIS2_STRTRIM(env, s, trim) \
00259       axis2_strtrim(env, s, trim)
00260 
00263 #ifdef __cplusplus
00264 }
00265 #endif
00266 
00267 #endif                          /* AXIS2_STRING_H */

Generated on Wed Dec 20 20:34:50 2006 for Axis2/C by  doxygen 1.5.1