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