00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __USPREP_H__
00020 #define __USPREP_H__
00021
00027 #include "unicode/utypes.h"
00028 #include "unicode/localpointer.h"
00029
00062 #if !UCONFIG_NO_IDNA
00063
00064 #include "unicode/parseerr.h"
00065
00070 typedef struct UStringPrepProfile UStringPrepProfile;
00071
00072
00079 #define USPREP_DEFAULT 0x0000
00080
00087 #define USPREP_ALLOW_UNASSIGNED 0x0001
00088
00095 typedef enum UStringPrepProfileType {
00100 USPREP_RFC3491_NAMEPREP,
00105 USPREP_RFC3530_NFS4_CS_PREP,
00110 USPREP_RFC3530_NFS4_CS_PREP_CI,
00115 USPREP_RFC3530_NFS4_CIS_PREP,
00120 USPREP_RFC3530_NFS4_MIXED_PREP_PREFIX,
00125 USPREP_RFC3530_NFS4_MIXED_PREP_SUFFIX,
00130 USPREP_RFC3722_ISCSI,
00135 USPREP_RFC3920_NODEPREP,
00140 USPREP_RFC3920_RESOURCEPREP,
00145 USPREP_RFC4011_MIB,
00150 USPREP_RFC4013_SASLPREP,
00155 USPREP_RFC4505_TRACE,
00160 USPREP_RFC4518_LDAP,
00166 USPREP_RFC4518_LDAP_CI
00167 } UStringPrepProfileType;
00168
00184 U_STABLE UStringPrepProfile* U_EXPORT2
00185 usprep_open(const char* path,
00186 const char* fileName,
00187 UErrorCode* status);
00188
00200 U_STABLE UStringPrepProfile* U_EXPORT2
00201 usprep_openByType(UStringPrepProfileType type,
00202 UErrorCode* status);
00203
00209 U_STABLE void U_EXPORT2
00210 usprep_close(UStringPrepProfile* profile);
00211
00212 #if U_SHOW_CPLUSPLUS_API
00213
00214 U_NAMESPACE_BEGIN
00215
00225 U_DEFINE_LOCAL_OPEN_POINTER(LocalUStringPrepProfilePointer, UStringPrepProfile, usprep_close);
00226
00227 U_NAMESPACE_END
00228
00229 #endif
00230
00260 U_STABLE int32_t U_EXPORT2
00261 usprep_prepare( const UStringPrepProfile* prep,
00262 const UChar* src, int32_t srcLength,
00263 UChar* dest, int32_t destCapacity,
00264 int32_t options,
00265 UParseError* parseError,
00266 UErrorCode* status );
00267
00268
00269 #endif
00270
00271 #endif