• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2012-2014, International Business Machines
6 * Corporation and others.  All Rights Reserved.
7 *******************************************************************************
8 * collationroot.h
9 *
10 * created on: 2012dec17
11 * created by: Markus W. Scherer
12 */
13 
14 #ifndef __COLLATIONROOT_H__
15 #define __COLLATIONROOT_H__
16 
17 #include "unicode/utypes.h"
18 #include "unicode/udata.h"
19 
20 #if !UCONFIG_NO_COLLATION
21 
22 U_NAMESPACE_BEGIN
23 
24 struct CollationCacheEntry;
25 struct CollationData;
26 struct CollationSettings;
27 struct CollationTailoring;
28 
29 /**
30  * Collation root provider.
31  */
32 class U_I18N_API CollationRoot {  // purely static
33 public:
34     static const CollationCacheEntry *getRootCacheEntry(UErrorCode &errorCode);
35     static const CollationTailoring *getRoot(UErrorCode &errorCode);
36     static const CollationData *getData(UErrorCode &errorCode);
37     static const CollationSettings *getSettings(UErrorCode &errorCode);
38     static void U_EXPORT2 forceLoadFromFile(const char* ucadataPath, UErrorCode &errorCode);
39 
40 private:
41     static void U_CALLCONV load(const char* ucadataPath, UErrorCode &errorCode);
42     static UDataMemory* loadFromFile(const char* ucadataPath, UErrorCode &errorCode);
43 };
44 
45 U_NAMESPACE_END
46 
47 #endif  // !UCONFIG_NO_COLLATION
48 #endif  // __COLLATIONROOT_H__
49