initial commit, 4.5 stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
This commit is contained in:
117
thirdparty/icu4c/common/ucmndata.h
vendored
Normal file
117
thirdparty/icu4c/common/ucmndata.h
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
// © 2016 and later: Unicode, Inc. and others.
|
||||
// License & terms of use: http://www.unicode.org/copyright.html
|
||||
/*
|
||||
******************************************************************************
|
||||
*
|
||||
* Copyright (C) 1999-2011, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------------
|
||||
*
|
||||
* UCommonData An abstract interface for dealing with ICU Common Data Files.
|
||||
* ICU Common Data Files are a grouping of a number of individual
|
||||
* data items (resources, converters, tables, anything) into a
|
||||
* single file or dll. The combined format includes a table of
|
||||
* contents for locating the individual items by name.
|
||||
*
|
||||
* Two formats for the table of contents are supported, which is
|
||||
* why there is an abstract interface involved.
|
||||
*
|
||||
* These functions are part of the ICU internal implementation, and
|
||||
* are not intended to be used directly by applications.
|
||||
*/
|
||||
|
||||
#ifndef __UCMNDATA_H__
|
||||
#define __UCMNDATA_H__
|
||||
|
||||
#include "unicode/udata.h"
|
||||
#include "umapfile.h"
|
||||
|
||||
|
||||
#define COMMON_DATA_NAME U_ICUDATA_NAME
|
||||
|
||||
typedef struct {
|
||||
uint16_t headerSize;
|
||||
uint8_t magic1;
|
||||
uint8_t magic2;
|
||||
} MappedData;
|
||||
|
||||
|
||||
typedef struct {
|
||||
MappedData dataHeader;
|
||||
UDataInfo info;
|
||||
} DataHeader;
|
||||
|
||||
typedef struct {
|
||||
uint32_t nameOffset;
|
||||
uint32_t dataOffset;
|
||||
} UDataOffsetTOCEntry;
|
||||
|
||||
typedef struct {
|
||||
uint32_t count;
|
||||
/**
|
||||
* Variable-length array declared with length 1 to disable bounds checkers.
|
||||
* The actual array length is in the count field.
|
||||
*/
|
||||
UDataOffsetTOCEntry entry[1];
|
||||
} UDataOffsetTOC;
|
||||
|
||||
/**
|
||||
* Get the header size from a const DataHeader *udh.
|
||||
* Handles opposite-endian data.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
U_CFUNC uint16_t
|
||||
udata_getHeaderSize(const DataHeader *udh);
|
||||
|
||||
/**
|
||||
* Get the UDataInfo.size from a const UDataInfo *info.
|
||||
* Handles opposite-endian data.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
U_CFUNC uint16_t
|
||||
udata_getInfoSize(const UDataInfo *info);
|
||||
|
||||
U_CDECL_BEGIN
|
||||
/*
|
||||
* "Virtual" functions for data lookup.
|
||||
* To call one, given a UDataMemory *p, the code looks like this:
|
||||
* p->vFuncs.Lookup(p, tocEntryName, pErrorCode);
|
||||
* (I sure do wish this was written in C++, not C)
|
||||
*/
|
||||
|
||||
typedef const DataHeader *
|
||||
(U_CALLCONV * LookupFn)(const UDataMemory *pData,
|
||||
const char *tocEntryName,
|
||||
int32_t *pLength,
|
||||
UErrorCode *pErrorCode);
|
||||
|
||||
typedef uint32_t
|
||||
(U_CALLCONV * NumEntriesFn)(const UDataMemory *pData);
|
||||
|
||||
U_CDECL_END
|
||||
|
||||
typedef struct {
|
||||
LookupFn Lookup;
|
||||
NumEntriesFn NumEntries;
|
||||
} commonDataFuncs;
|
||||
|
||||
|
||||
/*
|
||||
* Functions to check whether a UDataMemory refers to memory containing
|
||||
* a recognizable header and table of contents a Common Data Format
|
||||
*
|
||||
* If a valid header and TOC are found,
|
||||
* set the CommonDataFuncs function dispatch vector in the UDataMemory
|
||||
* to point to the right functions for the TOC type.
|
||||
* otherwise
|
||||
* set an errorcode.
|
||||
*/
|
||||
U_CFUNC void udata_checkCommonData(UDataMemory *pData, UErrorCode *pErrorCode);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user