00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _RTL_URI_H_
00021 #define _RTL_URI_H_
00022
00023 #include "sal/config.h"
00024
00025 #include "rtl/textenc.h"
00026 #include "rtl/ustring.h"
00027 #include "sal/saldllapi.h"
00028 #include "sal/types.h"
00029
00030 #if defined __cplusplus
00031 extern "C" {
00032 #endif
00033
00047 typedef enum
00048 {
00054 rtl_UriCharClassNone,
00055
00062 rtl_UriCharClassUric,
00063
00069 rtl_UriCharClassUricNoSlash,
00070
00076 rtl_UriCharClassRelSegment,
00077
00083 rtl_UriCharClassRegName,
00084
00090 rtl_UriCharClassUserinfo,
00091
00097 rtl_UriCharClassPchar,
00098
00104 rtl_UriCharClassUnoParamValue,
00105
00106 rtl_UriCharClass_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00107 }
00108 rtl_UriCharClass;
00109
00113 typedef enum
00114 {
00123 rtl_UriEncodeIgnoreEscapes,
00124
00135 rtl_UriEncodeKeepEscapes,
00136
00147 rtl_UriEncodeCheckEscapes,
00148
00154 rtl_UriEncodeStrict,
00155
00161 rtl_UriEncodeStrictKeepEscapes,
00162
00163 rtl_UriEncode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00164 }
00165 rtl_UriEncodeMechanism;
00166
00170 typedef enum
00171 {
00174 rtl_UriDecodeNone,
00175
00184 rtl_UriDecodeToIuri,
00185
00192 rtl_UriDecodeWithCharset,
00193
00199 rtl_UriDecodeStrict,
00200
00201 rtl_UriDecode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00202 }
00203 rtl_UriDecodeMechanism;
00204
00217 SAL_DLLPUBLIC sal_Bool const * SAL_CALL rtl_getUriCharClass(rtl_UriCharClass eCharClass)
00218 SAL_THROW_EXTERN_C();
00219
00254 SAL_DLLPUBLIC void SAL_CALL rtl_uriEncode(
00255 rtl_uString * pText,
00256 sal_Bool const * pCharClass,
00257 rtl_UriEncodeMechanism eMechanism,
00258 rtl_TextEncoding eCharset,
00259 rtl_uString ** pResult)
00260 SAL_THROW_EXTERN_C();
00261
00292 SAL_DLLPUBLIC void SAL_CALL rtl_uriDecode(
00293 rtl_uString * pText,
00294 rtl_UriDecodeMechanism eMechanism,
00295 rtl_TextEncoding eCharset,
00296 rtl_uString ** pResult)
00297 SAL_THROW_EXTERN_C();
00298
00341 SAL_DLLPUBLIC sal_Bool SAL_CALL rtl_uriConvertRelToAbs(
00342 rtl_uString * pBaseUriRef,
00343 rtl_uString * pRelUriRef,
00344 rtl_uString ** pResult,
00345 rtl_uString ** pException)
00346 SAL_THROW_EXTERN_C();
00347
00348 #if defined __cplusplus
00349 }
00350 #endif
00351
00352 #endif
00353
00354