UDK 3.2.7 C/C++ API Reference
rtl/uri.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 /*************************************************************************
00003  *
00004  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
00005  *
00006  * Copyright 2000, 2010 Oracle and/or its affiliates.
00007  *
00008  * OpenOffice.org - a multi-platform office productivity suite
00009  *
00010  * This file is part of OpenOffice.org.
00011  *
00012  * OpenOffice.org is free software: you can redistribute it and/or modify
00013  * it under the terms of the GNU Lesser General Public License version 3
00014  * only, as published by the Free Software Foundation.
00015  *
00016  * OpenOffice.org is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU Lesser General Public License version 3 for more details
00020  * (a copy is included in the LICENSE file that accompanied this code).
00021  *
00022  * You should have received a copy of the GNU Lesser General Public License
00023  * version 3 along with OpenOffice.org.  If not, see
00024  * <http://www.openoffice.org/license.html>
00025  * for a copy of the LGPLv3 License.
00026  *
00027  ************************************************************************/
00028 
00029 #ifndef _RTL_URI_H_
00030 #define _RTL_URI_H_
00031 
00032 #include "rtl/textenc.h"
00033 #include "rtl/ustring.h"
00034 #include "sal/types.h"
00035 
00036 #if defined __cplusplus
00037 extern "C" {
00038 #endif /* __cplusplus */
00039 
00053 typedef enum
00054 {
00060     rtl_UriCharClassNone,
00061 
00068     rtl_UriCharClassUric,
00069 
00075     rtl_UriCharClassUricNoSlash,
00076 
00082     rtl_UriCharClassRelSegment,
00083 
00089     rtl_UriCharClassRegName,
00090 
00096     rtl_UriCharClassUserinfo,
00097 
00103     rtl_UriCharClassPchar,
00104 
00110     rtl_UriCharClassUnoParamValue,
00111 
00112     rtl_UriCharClass_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00113 }
00114 rtl_UriCharClass;
00115 
00119 typedef enum
00120 {
00129     rtl_UriEncodeIgnoreEscapes,
00130 
00141     rtl_UriEncodeKeepEscapes,
00142 
00153     rtl_UriEncodeCheckEscapes,
00154 
00160     rtl_UriEncodeStrict,
00161 
00167     rtl_UriEncodeStrictKeepEscapes,
00168 
00169     rtl_UriEncode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00170 }
00171 rtl_UriEncodeMechanism;
00172 
00176 typedef enum
00177 {
00180     rtl_UriDecodeNone,
00181 
00190     rtl_UriDecodeToIuri,
00191 
00198     rtl_UriDecodeWithCharset,
00199 
00205     rtl_UriDecodeStrict,
00206 
00207     rtl_UriDecode_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
00208 }
00209 rtl_UriDecodeMechanism;
00210 
00223 SAL_DLLPUBLIC sal_Bool const * SAL_CALL rtl_getUriCharClass(rtl_UriCharClass eCharClass)
00224     SAL_THROW_EXTERN_C();
00225 
00260 SAL_DLLPUBLIC void SAL_CALL rtl_uriEncode(
00261                             rtl_uString * pText,
00262                             sal_Bool const * pCharClass,
00263                             rtl_UriEncodeMechanism eMechanism,
00264                             rtl_TextEncoding eCharset,
00265                             rtl_uString ** pResult)
00266     SAL_THROW_EXTERN_C();
00267 
00298 SAL_DLLPUBLIC void SAL_CALL rtl_uriDecode(
00299                             rtl_uString * pText,
00300                             rtl_UriDecodeMechanism eMechanism,
00301                             rtl_TextEncoding eCharset,
00302                             rtl_uString ** pResult)
00303     SAL_THROW_EXTERN_C();
00304 
00347 SAL_DLLPUBLIC sal_Bool SAL_CALL rtl_uriConvertRelToAbs(
00348                                          rtl_uString * pBaseUriRef,
00349                                          rtl_uString * pRelUriRef,
00350                                          rtl_uString ** pResult,
00351                                          rtl_uString ** pException)
00352     SAL_THROW_EXTERN_C();
00353 
00354 #if defined __cplusplus
00355 }
00356 #endif /* __cplusplus */
00357 
00358 #endif /* _RTL_URI_H_ */
00359 
00360 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines