00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef OpenSOAP_String_H
00012 #define OpenSOAP_String_H
00013
00014 #include <OpenSOAP/ByteArray.h>
00015
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00030 typedef struct tagOpenSOAPString OpenSOAPString;
00031
00036 typedef OpenSOAPString *OpenSOAPStringPtr;
00037
00038
00047 int
00048 OPENSOAP_API
00049 OpenSOAPStringCreate( OpenSOAPStringPtr *str);
00050
00061 int
00062 OPENSOAP_API
00063 OpenSOAPStringCreateWithMB( const char *mb_str,
00064 OpenSOAPStringPtr *str);
00065
00076 int
00077 OPENSOAP_API
00078 OpenSOAPStringCreateWithWC( const wchar_t *wc_str,
00079 OpenSOAPStringPtr *str);
00080
00093 int
00094 OPENSOAP_API
00095 OpenSOAPStringCreateWithCharEncodingString( const char * char_enc,
00096 OpenSOAPByteArrayPtr char_enc_str,
00097 OpenSOAPStringPtr *str);
00098
00109 int
00110 OPENSOAP_API
00111 OpenSOAPStringCreateWithUTF8( const char *utf8Str,
00112 OpenSOAPStringPtr *str);
00113
00122 int
00123 OPENSOAP_API
00124 OpenSOAPStringRetain( OpenSOAPStringPtr str);
00125
00134 int
00135 OPENSOAP_API
00136 OpenSOAPStringRelease( OpenSOAPStringPtr str);
00137
00148 int
00149 OPENSOAP_API
00150 OpenSOAPStringGetLengthMB( OpenSOAPStringPtr str,
00151 size_t *len);
00152
00163 int
00164 OPENSOAP_API
00165 OpenSOAPStringGetLengthWC( OpenSOAPStringPtr str,
00166 size_t *len);
00167
00184 int
00185 OPENSOAP_API
00186 OpenSOAPStringGetStringMBWithAllocator( OpenSOAPStringPtr str,
00187 char * (*memAllocator)(size_t),
00188 size_t *len,
00189 char **mbStr);
00190
00207 int
00208 OPENSOAP_API
00209 OpenSOAPStringGetStringWCWithAllocator( OpenSOAPStringPtr str,
00210 wchar_t * (*memAllocator)(size_t),
00211 size_t *len,
00212 wchar_t **wcStr);
00213
00230 int
00231 OPENSOAP_API
00232 OpenSOAPStringGetStringUTF8WithAllocator( OpenSOAPStringPtr str,
00233 char * (*memAllocator)(size_t),
00234 size_t *len,
00235 char **utf8Str);
00236
00249 int
00250 OPENSOAP_API
00251 OpenSOAPStringGetStringMB( OpenSOAPStringPtr str,
00252 size_t *len,
00253 char * mb_str);
00254
00267 int
00268 OPENSOAP_API
00269 OpenSOAPStringGetStringWC( OpenSOAPStringPtr str,
00270 size_t *len,
00271 wchar_t *wc_str);
00272
00285 int
00286 OPENSOAP_API
00287 OpenSOAPStringGetCharEncodingString( OpenSOAPStringPtr str,
00288 const char *char_enc,
00289 OpenSOAPByteArrayPtr char_enc_str);
00290
00301 int
00302 OPENSOAP_API
00303 OpenSOAPStringSetStringMB( OpenSOAPStringPtr str,
00304 const char *mb_str);
00305
00316 int
00317 OPENSOAP_API
00318 OpenSOAPStringSetStringWC( OpenSOAPStringPtr str,
00319 const wchar_t *wc_str);
00320
00333 int
00334 OPENSOAP_API
00335 OpenSOAPStringSetCharEncodingString( OpenSOAPStringPtr str,
00336 const char *char_enc,
00337 OpenSOAPByteArrayPtr charEncStr);
00338
00349 int
00350 OPENSOAP_API
00351 OpenSOAPStringSetStringUTF8( OpenSOAPStringPtr str,
00352 const char *utf8Str);
00353
00366 int
00367 OPENSOAP_API
00368 OpenSOAPStringFormatMB( OpenSOAPStringPtr str,
00369 const char *format, ...);
00370
00383 int
00384 OPENSOAP_API
00385 OpenSOAPStringFormatWC( OpenSOAPStringPtr str,
00386 const wchar_t *format, ...);
00387
00400 int
00401 OPENSOAP_API
00402 OpenSOAPStringCompareMB( OpenSOAPStringPtr str,
00403 const char *cmp_str,
00404 int *cmp_rslt);
00405
00418 int
00419 OPENSOAP_API
00420 OpenSOAPStringCompareWC( OpenSOAPStringPtr str,
00421 const wchar_t *cmp_str,
00422 int *cmp_rslt);
00423
00436 int
00437 OPENSOAP_API
00438 OpenSOAPStringCompare( OpenSOAPStringPtr str,
00439 OpenSOAPStringPtr cmp_str,
00440 int *cmp_rslt);
00441
00454 int
00455 OPENSOAP_API
00456 OpenSOAPStringFindStringMB( OpenSOAPStringPtr str,
00457 const char *find_str,
00458 size_t *idx);
00459
00472 int
00473 OPENSOAP_API
00474 OpenSOAPStringFindStringWC( OpenSOAPStringPtr str,
00475 const wchar_t *find_str,
00476 size_t *idx);
00477
00490 int
00491 OPENSOAP_API
00492 OpenSOAPStringFindString( OpenSOAPStringPtr str,
00493 OpenSOAPStringPtr find_str,
00494 size_t *idx);
00495
00508 typedef int
00509 (*OpenSOAPStringFindIfFunc)( void *opt,
00510 wchar_t c,
00511 int *judge);
00512
00527 extern
00528 int
00529 OPENSOAP_API
00530 OpenSOAPStringFindIfStringIndex( OpenSOAPStringPtr str,
00531 OpenSOAPStringFindIfFunc find_func,
00532 void *find_func_opt,
00533 size_t *idx);
00548 int
00549 OPENSOAP_API
00550 OpenSOAPStringReplaceStringMB( OpenSOAPStringPtr str,
00551 const char *find_str,
00552 const char *rplc_str,
00553 size_t *idx);
00554
00569 int
00570 OPENSOAP_API
00571 OpenSOAPStringReplaceStringWC( OpenSOAPStringPtr str,
00572 const wchar_t *find_str,
00573 const wchar_t *rplc_str,
00574 size_t *idx);
00575
00590 int
00591 OPENSOAP_API
00592 OpenSOAPStringReplaceString( OpenSOAPStringPtr str,
00593 OpenSOAPStringPtr find_str,
00594 OpenSOAPStringPtr rplc_str,
00595 size_t *idx);
00596
00605 int
00606 OPENSOAP_API
00607 OpenSOAPStringClear( OpenSOAPStringPtr str);
00608
00621 int
00622 OPENSOAP_API
00623 OpenSOAPStringAppendMB( OpenSOAPStringPtr str,
00624 const char *mb_str,
00625 size_t mb_len);
00626
00639 int
00640 OPENSOAP_API
00641 OpenSOAPStringAppendWC( OpenSOAPStringPtr str,
00642 const wchar_t *wc_str,
00643 size_t wc_len);
00644
00655 int
00656 OPENSOAP_API
00657 OpenSOAPStringDuplicate( OpenSOAPStringPtr str,
00658 OpenSOAPStringPtr *dup_str);
00659
00674 int
00675 OPENSOAP_API
00676 OpenSOAPStringGetSubstring( OpenSOAPStringPtr str,
00677 size_t beg,
00678 size_t len,
00679 OpenSOAPStringPtr *sub_str);
00680
00695 int
00696 OPENSOAP_API
00697 OpenSOAPStringConvertCharEncoding( const char *from_enc,
00698 OpenSOAPByteArrayPtr from_str,
00699 const char *to_enc,
00700 OpenSOAPByteArrayPtr to_str);
00701
00712 int
00713 OPENSOAP_API
00714 OpenSOAPStringConvertXMLCharRefToUTF8( const unsigned char *utf8Beg,
00715 OpenSOAPByteArrayPtr utf8BAry);
00726 int
00727 OPENSOAP_API
00728 OpenSOAPStringGetStringUSASCII( OpenSOAPStringPtr str,
00729 OpenSOAPByteArrayPtr charEncStr);
00730
00747 int
00748 OPENSOAP_API
00749 OpenSOAPStringIterateProc( OpenSOAPStringPtr str,
00750 int (*iterateProc)(unsigned long c, size_t idx, size_t len, void *opt),
00751 int (*beforeProc)(size_t len, void *opt),
00752 int (*afterProc)(size_t len, void *opt),
00753 void *opt);
00754
00755 #ifdef __cplusplus
00756 }
00757 #endif
00758
00759 #endif