1*0e209d39SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others. 2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html 3*0e209d39SAndroid Build Coastguard Worker /* 4*0e209d39SAndroid Build Coastguard Worker ******************************************************************************* 5*0e209d39SAndroid Build Coastguard Worker * 6*0e209d39SAndroid Build Coastguard Worker * Copyright (C) 2003, International Business Machines 7*0e209d39SAndroid Build Coastguard Worker * Corporation and others. All Rights Reserved. 8*0e209d39SAndroid Build Coastguard Worker * 9*0e209d39SAndroid Build Coastguard Worker ******************************************************************************* 10*0e209d39SAndroid Build Coastguard Worker * file name: nfsprep.h 11*0e209d39SAndroid Build Coastguard Worker * encoding: UTF-8 12*0e209d39SAndroid Build Coastguard Worker * tab size: 8 (not used) 13*0e209d39SAndroid Build Coastguard Worker * indentation:4 14*0e209d39SAndroid Build Coastguard Worker * 15*0e209d39SAndroid Build Coastguard Worker * created on: 2003jul11 16*0e209d39SAndroid Build Coastguard Worker * created by: Ram Viswanadha 17*0e209d39SAndroid Build Coastguard Worker */ 18*0e209d39SAndroid Build Coastguard Worker #ifndef _NFSPREP_H 19*0e209d39SAndroid Build Coastguard Worker #define _NFSPREP_H 20*0e209d39SAndroid Build Coastguard Worker 21*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h" 22*0e209d39SAndroid Build Coastguard Worker 23*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_IDNA 24*0e209d39SAndroid Build Coastguard Worker 25*0e209d39SAndroid Build Coastguard Worker #include "unicode/ustring.h" 26*0e209d39SAndroid Build Coastguard Worker #include "unicode/usprep.h" 27*0e209d39SAndroid Build Coastguard Worker #include <stdlib.h> 28*0e209d39SAndroid Build Coastguard Worker #include <string.h> 29*0e209d39SAndroid Build Coastguard Worker 30*0e209d39SAndroid Build Coastguard Worker 31*0e209d39SAndroid Build Coastguard Worker /* this enum must be kept in syn with NFS4DataFileNames array in nfsprep.c */ 32*0e209d39SAndroid Build Coastguard Worker enum NFS4ProfileState{ 33*0e209d39SAndroid Build Coastguard Worker NFS4_CS_PREP_CS, 34*0e209d39SAndroid Build Coastguard Worker NFS4_CS_PREP_CI, 35*0e209d39SAndroid Build Coastguard Worker NFS4_CIS_PREP, 36*0e209d39SAndroid Build Coastguard Worker NFS4_MIXED_PREP_PREFIX, 37*0e209d39SAndroid Build Coastguard Worker NFS4_MIXED_PREP_SUFFIX 38*0e209d39SAndroid Build Coastguard Worker }; 39*0e209d39SAndroid Build Coastguard Worker 40*0e209d39SAndroid Build Coastguard Worker typedef enum NFS4ProfileState NFS4ProfileState; 41*0e209d39SAndroid Build Coastguard Worker 42*0e209d39SAndroid Build Coastguard Worker /** 43*0e209d39SAndroid Build Coastguard Worker * Prepares the source UTF-8 string for use in file names and 44*0e209d39SAndroid Build Coastguard Worker * returns UTF-8 string on output. 45*0e209d39SAndroid Build Coastguard Worker * @param src 46*0e209d39SAndroid Build Coastguard Worker * @param srcLen 47*0e209d39SAndroid Build Coastguard Worker * @param dest 48*0e209d39SAndroid Build Coastguard Worker * @param destCapacity 49*0e209d39SAndroid Build Coastguard Worker * @param state 50*0e209d39SAndroid Build Coastguard Worker * @param parseError 51*0e209d39SAndroid Build Coastguard Worker * @param status 52*0e209d39SAndroid Build Coastguard Worker */ 53*0e209d39SAndroid Build Coastguard Worker int32_t 54*0e209d39SAndroid Build Coastguard Worker nfs4_prepare(const char* src, int32_t srcLength, 55*0e209d39SAndroid Build Coastguard Worker char* dest, int32_t destCapacity, 56*0e209d39SAndroid Build Coastguard Worker NFS4ProfileState state, 57*0e209d39SAndroid Build Coastguard Worker UParseError* parseError, 58*0e209d39SAndroid Build Coastguard Worker UErrorCode* status); 59*0e209d39SAndroid Build Coastguard Worker 60*0e209d39SAndroid Build Coastguard Worker /** 61*0e209d39SAndroid Build Coastguard Worker * @param dest 62*0e209d39SAndroid Build Coastguard Worker * @param destCapacity 63*0e209d39SAndroid Build Coastguard Worker * @param src 64*0e209d39SAndroid Build Coastguard Worker * @param srcLen 65*0e209d39SAndroid Build Coastguard Worker * @param state 66*0e209d39SAndroid Build Coastguard Worker * @param parseError 67*0e209d39SAndroid Build Coastguard Worker * @param status 68*0e209d39SAndroid Build Coastguard Worker */ 69*0e209d39SAndroid Build Coastguard Worker int32_t 70*0e209d39SAndroid Build Coastguard Worker nfs4_mixed_prepare( const char* src, int32_t srcLength, 71*0e209d39SAndroid Build Coastguard Worker char* dest, int32_t destCapacity, 72*0e209d39SAndroid Build Coastguard Worker UParseError* parseError, 73*0e209d39SAndroid Build Coastguard Worker UErrorCode* status); 74*0e209d39SAndroid Build Coastguard Worker 75*0e209d39SAndroid Build Coastguard Worker /** 76*0e209d39SAndroid Build Coastguard Worker * @param dest 77*0e209d39SAndroid Build Coastguard Worker * @param destCapacity 78*0e209d39SAndroid Build Coastguard Worker * @param src 79*0e209d39SAndroid Build Coastguard Worker * @param srcLen 80*0e209d39SAndroid Build Coastguard Worker * @param state 81*0e209d39SAndroid Build Coastguard Worker * @param parseError 82*0e209d39SAndroid Build Coastguard Worker * @param status 83*0e209d39SAndroid Build Coastguard Worker */ 84*0e209d39SAndroid Build Coastguard Worker int32_t 85*0e209d39SAndroid Build Coastguard Worker nfs4_cis_prepare( const char* src, int32_t srcLength, 86*0e209d39SAndroid Build Coastguard Worker char* dest, int32_t destCapacity, 87*0e209d39SAndroid Build Coastguard Worker UParseError* parseError, 88*0e209d39SAndroid Build Coastguard Worker UErrorCode* status); 89*0e209d39SAndroid Build Coastguard Worker 90*0e209d39SAndroid Build Coastguard Worker /** 91*0e209d39SAndroid Build Coastguard Worker * @param dest 92*0e209d39SAndroid Build Coastguard Worker * @param destCapacity 93*0e209d39SAndroid Build Coastguard Worker * @param src 94*0e209d39SAndroid Build Coastguard Worker * @param srcLen 95*0e209d39SAndroid Build Coastguard Worker * @param state 96*0e209d39SAndroid Build Coastguard Worker * @param parseError 97*0e209d39SAndroid Build Coastguard Worker * @param status 98*0e209d39SAndroid Build Coastguard Worker */ 99*0e209d39SAndroid Build Coastguard Worker int32_t 100*0e209d39SAndroid Build Coastguard Worker nfs4_cs_prepare( const char* src, int32_t srcLength, 101*0e209d39SAndroid Build Coastguard Worker char* dest, int32_t destCapacity, 102*0e209d39SAndroid Build Coastguard Worker UBool isCaseSensitive, 103*0e209d39SAndroid Build Coastguard Worker UParseError* parseError, 104*0e209d39SAndroid Build Coastguard Worker UErrorCode* status); 105*0e209d39SAndroid Build Coastguard Worker #endif 106*0e209d39SAndroid Build Coastguard Worker 107*0e209d39SAndroid Build Coastguard Worker #endif 108*0e209d39SAndroid Build Coastguard Worker /* 109*0e209d39SAndroid Build Coastguard Worker * Hey, Emacs, please set the following: 110*0e209d39SAndroid Build Coastguard Worker * 111*0e209d39SAndroid Build Coastguard Worker * Local Variables: 112*0e209d39SAndroid Build Coastguard Worker * indent-tabs-mode: nil 113*0e209d39SAndroid Build Coastguard Worker * End: 114*0e209d39SAndroid Build Coastguard Worker * 115*0e209d39SAndroid Build Coastguard Worker */ 116