axis2_string.h

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

Generated on Thu Oct 26 21:00:11 2006 for Axis2/C by  doxygen 1.4.7