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