Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: icu46/source/test/intltest/nptrans.h

Issue 5516007: Check in the pristine copy of ICU 4.6... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « icu46/source/test/intltest/normconf.cpp ('k') | icu46/source/test/intltest/nptrans.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: icu46/source/test/intltest/nptrans.h
===================================================================
--- icu46/source/test/intltest/nptrans.h (revision 0)
+++ icu46/source/test/intltest/nptrans.h (revision 0)
@@ -0,0 +1,164 @@
+/*
+ *******************************************************************************
+ *
+ * Copyright (C) 2003-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ *******************************************************************************
+ * file name: nptrans.h
+ * encoding: US-ASCII
+ * tab size: 8 (not used)
+ * indentation:4
+ *
+ * created on: 2003feb1
+ * created by: Ram Viswanadha
+ */
+
+#ifndef NPTRANS_H
+#define NPTRANS_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_IDNA
+#if !UCONFIG_NO_TRANSLITERATION
+
+#include "unicode/uniset.h"
+#include "unicode/ures.h"
+#include "unicode/translit.h"
+
+#include "intltest.h"
+
+
+#define ASCII_SPACE 0x0020
+
+class NamePrepTransform {
+
+private :
+ Transliterator *mapping;
+ UnicodeSet unassigned;
+ UnicodeSet prohibited;
+ UnicodeSet labelSeparatorSet;
+ UResourceBundle *bundle;
+ NamePrepTransform(UParseError& parseError, UErrorCode& status);
+
+
+public :
+
+ static NamePrepTransform* createInstance(UParseError& parseError, UErrorCode& status);
+
+ virtual ~NamePrepTransform();
+
+
+ inline UBool isProhibited(UChar32 ch);
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @draft ICU 2.6
+ */
+ 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; }
+
+ /**
+ * Map every character in input stream with mapping character
+ * in the mapping table and populate the output stream.
+ * For any individual character the mapping table may specify
+ * that that a character be mapped to nothing, mapped to one
+ * other character or to a string of other characters.
+ *
+ * @param src Pointer to UChar buffer containing a single label
+ * @param srcLength Number of characters in the source label
+ * @param dest Pointer to the destination buffer to receive the output
+ * @param destCapacity The capacity of destination array
+ * @param allowUnassigned Unassigned values can be converted to ASCII for query operations
+ * If TRUE unassigned values are treated as normal Unicode code point.
+ * If FALSE the operation fails with U_UNASSIGNED_CODE_POINT_FOUND error code.
+ * @param status ICU error code in/out parameter.
+ * Must fulfill U_SUCCESS before the function call.
+ * @return The number of UChars in the destination buffer
+ *
+ */
+ int32_t map(const UChar* src, int32_t srcLength,
+ UChar* dest, int32_t destCapacity,
+ UBool allowUnassigned,
+ UParseError* parseError,
+ UErrorCode& status );
+
+ /**
+ * Prepare the input stream with for use. This operation maps, normalizes(NFKC),
+ * checks for prohited and BiDi characters in the order defined by RFC 3454
+ *
+ * @param src Pointer to UChar buffer containing a single label
+ * @param srcLength Number of characters in the source label
+ * @param dest Pointer to the destination buffer to receive the output
+ * @param destCapacity The capacity of destination array
+ * @param allowUnassigned Unassigned values can be converted to ASCII for query operations
+ * If TRUE unassigned values are treated as normal Unicode code point.
+ * If FALSE the operation fails with U_UNASSIGNED_CODE_POINT error code.
+ * @param status ICU error code in/out parameter.
+ * Must fulfill U_SUCCESS before the function call.
+ * @return The number of UChars in the destination buffer
+ */
+ int32_t process(const UChar* src, int32_t srcLength,
+ UChar* dest, int32_t destCapacity,
+ UBool allowUnassigned,
+ UParseError* parseError,
+ UErrorCode& status );
+
+ /**
+ * Ascertain if the given code point is a label separator as specified by IDNA
+ *
+ * @return TRUE is the code point is a label separator
+ *
+ *
+ */
+ UBool isLabelSeparator(UChar32 ch, UErrorCode& status);
+
+
+ inline UBool isLDHChar(UChar32 ch);
+private:
+ /**
+ * The address of this static class variable serves as this class's ID
+ * for ICU "poor man's RTTI".
+ */
+ static const char fgClassID;
+};
+
+inline UBool NamePrepTransform::isLDHChar(UChar32 ch){
+ // high runner case
+ if(ch>0x007A){
+ return FALSE;
+ }
+ //[\\u002D \\u0030-\\u0039 \\u0041-\\u005A \\u0061-\\u007A]
+ if( (ch==0x002D) ||
+ (0x0030 <= ch && ch <= 0x0039) ||
+ (0x0041 <= ch && ch <= 0x005A) ||
+ (0x0061 <= ch && ch <= 0x007A)
+ ){
+ return TRUE;
+ }
+ return FALSE;
+}
+
+#endif /* #if !UCONFIG_NO_TRANSLITERATION */
+#else
+class NamePrepTransform {
+};
+#endif /* #if !UCONFIG_NO_IDNA */
+
+#endif
+
+/*
+ * Hey, Emacs, please set the following:
+ *
+ * Local Variables:
+ * indent-tabs-mode: nil
+ * End:
+ *
+ */
Property changes on: icu46/source/test/intltest/nptrans.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « icu46/source/test/intltest/normconf.cpp ('k') | icu46/source/test/intltest/nptrans.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698