1 /* 2 ******************************************************************************* 3 * Copyright (C) 2013-2014, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ******************************************************************************* 6 * collationdatawriter.h 7 * 8 * created on: 2013aug06 9 * created by: Markus W. Scherer 10 */ 11 12 #ifndef __COLLATIONDATAWRITER_H__ 13 #define __COLLATIONDATAWRITER_H__ 14 15 #include "unicode/utypes.h" 16 17 #if !UCONFIG_NO_COLLATION 18 19 U_NAMESPACE_BEGIN 20 21 struct CollationData; 22 struct CollationSettings; 23 struct CollationTailoring; 24 25 /** 26 * Collation-related code for tools & demos. 27 */ 28 class U_I18N_API CollationDataWriter /* all static */ { 29 public: 30 static int32_t writeBase(const CollationData &data, const CollationSettings &settings, 31 const void *rootElements, int32_t rootElementsLength, 32 int32_t indexes[], uint8_t *dest, int32_t capacity, 33 UErrorCode &errorCode); 34 35 static int32_t writeTailoring(const CollationTailoring &t, const CollationSettings &settings, 36 int32_t indexes[], uint8_t *dest, int32_t capacity, 37 UErrorCode &errorCode); 38 39 private: 40 CollationDataWriter(); // no constructor 41 42 static int32_t write(UBool isBase, const UVersionInfo dataVersion, 43 const CollationData &data, const CollationSettings &settings, 44 const void *rootElements, int32_t rootElementsLength, 45 int32_t indexes[], uint8_t *dest, int32_t capacity, 46 UErrorCode &errorCode); 47 48 static void copyData(const int32_t indexes[], int32_t startIndex, 49 const void *src, uint8_t *dest); 50 }; 51 52 U_NAMESPACE_END 53 54 #endif // !UCONFIG_NO_COLLATION 55 #endif // __COLLATIONDATAWRITER_H__ 56