98 lines
2.2 KiB
C
98 lines
2.2 KiB
C
|
/*
|
||
|
*******************************************************************************
|
||
|
*
|
||
|
* Copyright (C) 2002, International Business Machines
|
||
|
* Corporation and others. All Rights Reserved.
|
||
|
*
|
||
|
*******************************************************************************
|
||
|
* file name: nameprep.h
|
||
|
* encoding: US-ASCII
|
||
|
* tab size: 8 (not used)
|
||
|
* indentation:4
|
||
|
*
|
||
|
* created on: 2003feb1
|
||
|
* created by: Ram Viswanadha
|
||
|
*/
|
||
|
|
||
|
#ifndef NAMEPREP_H
|
||
|
#define NAMEPREP_H
|
||
|
|
||
|
#include "unicode/utypes.h"
|
||
|
#include "strprep.h"
|
||
|
#include "unicode/uniset.h"
|
||
|
|
||
|
|
||
|
U_NAMESPACE_BEGIN
|
||
|
/*
|
||
|
A profile of stringprep MUST include all of the following:
|
||
|
|
||
|
- The intended applicability of the profile
|
||
|
|
||
|
- The character repertoire that is the input and output to stringprep
|
||
|
(which is Unicode 3.2 for this version of stringprep)
|
||
|
|
||
|
- The mapping tables from this document used (as described in section
|
||
|
3)
|
||
|
|
||
|
- Any additional mapping tables specific to the profile
|
||
|
|
||
|
- The Unicode normalization used, if any (as described in section 4)
|
||
|
|
||
|
- The tables from this document of characters that are prohibited as
|
||
|
output (as described in section 5)
|
||
|
|
||
|
- The bidirectional string testing used, if any (as described in
|
||
|
section 6)
|
||
|
|
||
|
- Any additional characters that are prohibited as output specific to
|
||
|
the profile
|
||
|
*/
|
||
|
|
||
|
|
||
|
class NamePrep: public StringPrep {
|
||
|
public :
|
||
|
NamePrep(UErrorCode& status);
|
||
|
|
||
|
virtual inline ~NamePrep(){};
|
||
|
|
||
|
virtual inline UBool isNotProhibited(UChar32 ch);
|
||
|
|
||
|
/**
|
||
|
* ICU "poor man's RTTI", returns a UClassID for the actual class.
|
||
|
*
|
||
|
* @draft ICU 2.6
|
||
|
*/
|
||
|
virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
|
||
|
|
||
|
/**
|
||
|
* ICU "poor man's RTTI", returns a UClassID for this class.
|
||
|
*
|
||
|
* @draft ICU 2.6
|
||
|
*/
|
||
|
static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
|
||
|
|
||
|
private:
|
||
|
/**
|
||
|
* The address of this static class variable serves as this class's ID
|
||
|
* for ICU "poor man's RTTI".
|
||
|
*/
|
||
|
static const char fgClassID;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
U_NAMESPACE_END
|
||
|
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* Hey, Emacs, please set the following:
|
||
|
*
|
||
|
* Local Variables:
|
||
|
* indent-tabs-mode: nil
|
||
|
* End:
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|