Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: icu46/source/common/ucmndata.h

Issue 5516007: Check in the pristine copy of ICU 4.6... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « icu46/source/common/ucln_imp.h ('k') | icu46/source/common/ucmndata.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 1999-2010, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 ******************************************************************************/
8
9
10 /*------------------------------------------------------------------------------ ----
11 *
12 * UCommonData An abstract interface for dealing with ICU Common Data Files.
13 * ICU Common Data Files are a grouping of a number of individua l
14 * data items (resources, converters, tables, anything) into a
15 * single file or dll. The combined format includes a table of
16 * contents for locating the individual items by name.
17 *
18 * Two formats for the table of contents are supported, which is
19 * why there is an abstract inteface involved.
20 *
21 * These functions are part of the ICU internal implementation, and
22 * are not inteded to be used directly by applications.
23 */
24
25 #ifndef __UCMNDATA_H__
26 #define __UCMNDATA_H__
27
28 #include "unicode/udata.h"
29 #include "umapfile.h"
30
31
32 #define COMMON_DATA_NAME U_ICUDATA_NAME
33
34 typedef struct {
35 uint16_t headerSize;
36 uint8_t magic1;
37 uint8_t magic2;
38 } MappedData;
39
40
41 typedef struct {
42 MappedData dataHeader;
43 UDataInfo info;
44 } DataHeader;
45
46 typedef struct {
47 uint32_t nameOffset;
48 uint32_t dataOffset;
49 } UDataOffsetTOCEntry;
50
51 typedef struct {
52 uint32_t count;
53 UDataOffsetTOCEntry entry[2]; /* Actual size of array is from count. */
54 } UDataOffsetTOC;
55
56 /**
57 * Get the header size from a const DataHeader *udh.
58 * Handles opposite-endian data.
59 *
60 * @internal
61 */
62 U_CFUNC uint16_t
63 udata_getHeaderSize(const DataHeader *udh);
64
65 /**
66 * Get the UDataInfo.size from a const UDataInfo *info.
67 * Handles opposite-endian data.
68 *
69 * @internal
70 */
71 U_CFUNC uint16_t
72 udata_getInfoSize(const UDataInfo *info);
73
74 /*
75 * "Virtual" functions for data lookup.
76 * To call one, given a UDataMemory *p, the code looks like this:
77 * p->vFuncs.Lookup(p, tocEntryName, pErrorCode);
78 * (I sure do wish this was written in C++, not C)
79 */
80
81 typedef const DataHeader *
82 (* LookupFn)(const UDataMemory *pData,
83 const char *tocEntryName,
84 int32_t *pLength,
85 UErrorCode *pErrorCode);
86
87 typedef uint32_t
88 (* NumEntriesFn)(const UDataMemory *pData);
89
90 typedef struct {
91 LookupFn Lookup;
92 NumEntriesFn NumEntries;
93 } commonDataFuncs;
94
95
96 /*
97 * Functions to check whether a UDataMemory refers to memory containing
98 * a recognizable header and table of contents a Common Data Format
99 *
100 * If a valid header and TOC are found,
101 * set the CommonDataFuncs function dispatch vector in the UDataMemory
102 * to point to the right functions for the TOC type.
103 * otherwise
104 * set an errorcode.
105 */
106 U_CFUNC void udata_checkCommonData(UDataMemory *pData, UErrorCode *pErrorCode);
107
108 #endif
OLDNEW
« no previous file with comments | « icu46/source/common/ucln_imp.h ('k') | icu46/source/common/ucmndata.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698