1/* 2******************************************************************************* 3* 4* Copyright (C) 1998-2014, International Business Machines 5* Corporation and others. All Rights Reserved. 6* 7******************************************************************************* 8* 9* Private implementation header for C collation 10* file name: ucol_imp.h 11* encoding: US-ASCII 12* tab size: 8 (not used) 13* indentation:4 14* 15* created on: 2000dec11 16* created by: Vladimir Weinstein 17* 18* Modification history 19* Date Name Comments 20* 02/16/2001 synwee Added UCOL_GETPREVCE for the use in ucoleitr 21* 02/27/2001 synwee Added getMaxExpansion data structure in UCollator 22* 03/02/2001 synwee Added UCOL_IMPLICIT_CE 23* 03/12/2001 synwee Added pointer start to collIterate. 24*/ 25 26#ifndef UCOL_IMP_H 27#define UCOL_IMP_H 28 29#include "unicode/utypes.h" 30 31#if !UCONFIG_NO_COLLATION 32 33#include "unicode/ucol.h" 34 35/** Check whether two collators are equal. Collators are considered equal if they 36 * will sort strings the same. This means that both the current attributes and the 37 * rules must be equivalent. 38 * @param source first collator 39 * @param target second collator 40 * @return TRUE or FALSE 41 * @internal ICU 3.0 42 */ 43U_INTERNAL UBool U_EXPORT2 44ucol_equals(const UCollator *source, const UCollator *target); 45 46/** 47 * Convenience string denoting the Collation data tree 48 */ 49#define U_ICUDATA_COLL U_ICUDATA_NAME U_TREE_SEPARATOR_STRING "coll" 50 51#ifdef __cplusplus 52 53U_NAMESPACE_BEGIN 54 55struct CollationTailoring; 56 57class Locale; 58class UnicodeString; 59 60/** Implemented in ucol_res.cpp. */ 61class CollationLoader { 62public: 63 static void appendRootRules(UnicodeString &s); 64 static UnicodeString *loadRules(const char *localeID, const char *collationType, 65 UErrorCode &errorCode); 66 static const CollationTailoring *loadTailoring(const Locale &locale, Locale &validLocale, 67 UErrorCode &errorCode); 68 69private: 70 CollationLoader(); // not implemented, all methods are static 71 static void loadRootRules(UErrorCode &errorCode); 72}; 73 74U_NAMESPACE_END 75 76#endif /* __cplusplus */ 77 78#endif /* #if !UCONFIG_NO_COLLATION */ 79 80#endif 81