2017-01-20 00:20:31 +00:00
|
|
|
// © 2016 and later: Unicode, Inc. and others.
|
2016-06-15 18:58:17 +00:00
|
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
2014-02-25 21:21:49 +00:00
|
|
|
/*
|
|
|
|
*******************************************************************************
|
2016-05-31 21:45:07 +00:00
|
|
|
* Copyright (C) 2013-2014, International Business Machines
|
|
|
|
* Corporation and others. All Rights Reserved.
|
2014-02-25 21:21:49 +00:00
|
|
|
*******************************************************************************
|
|
|
|
* collationdatawriter.h
|
|
|
|
*
|
|
|
|
* created on: 2013aug06
|
|
|
|
* created by: Markus W. Scherer
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __COLLATIONDATAWRITER_H__
|
|
|
|
#define __COLLATIONDATAWRITER_H__
|
|
|
|
|
|
|
|
#include "unicode/utypes.h"
|
|
|
|
|
|
|
|
#if !UCONFIG_NO_COLLATION
|
|
|
|
|
|
|
|
U_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
struct CollationData;
|
|
|
|
struct CollationSettings;
|
|
|
|
struct CollationTailoring;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Collation-related code for tools & demos.
|
|
|
|
*/
|
|
|
|
class U_I18N_API CollationDataWriter /* all static */ {
|
|
|
|
public:
|
|
|
|
static int32_t writeBase(const CollationData &data, const CollationSettings &settings,
|
|
|
|
const void *rootElements, int32_t rootElementsLength,
|
|
|
|
int32_t indexes[], uint8_t *dest, int32_t capacity,
|
|
|
|
UErrorCode &errorCode);
|
|
|
|
|
|
|
|
static int32_t writeTailoring(const CollationTailoring &t, const CollationSettings &settings,
|
|
|
|
int32_t indexes[], uint8_t *dest, int32_t capacity,
|
|
|
|
UErrorCode &errorCode);
|
|
|
|
|
|
|
|
private:
|
2022-09-08 21:15:13 +00:00
|
|
|
CollationDataWriter() = delete; // no constructor
|
2014-02-25 21:21:49 +00:00
|
|
|
|
|
|
|
static int32_t write(UBool isBase, const UVersionInfo dataVersion,
|
|
|
|
const CollationData &data, const CollationSettings &settings,
|
|
|
|
const void *rootElements, int32_t rootElementsLength,
|
|
|
|
int32_t indexes[], uint8_t *dest, int32_t capacity,
|
|
|
|
UErrorCode &errorCode);
|
|
|
|
|
|
|
|
static void copyData(const int32_t indexes[], int32_t startIndex,
|
|
|
|
const void *src, uint8_t *dest);
|
|
|
|
};
|
|
|
|
|
|
|
|
U_NAMESPACE_END
|
|
|
|
|
|
|
|
#endif // !UCONFIG_NO_COLLATION
|
|
|
|
#endif // __COLLATIONDATAWRITER_H__
|