xref: /aosp_15_r20/external/icu/icu4c/source/test/cintltst/nfsprep.h (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
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