| /* |
| ******************************************************************************* |
| * |
| * Copyright (C) 2000, International Business Machines |
| * Corporation and others. All Rights Reserved. |
| * |
| ******************************************************************************* |
| * |
| * File reslist.h |
| * |
| * Modification History: |
| * |
| * Date Name Description |
| * 02/21/00 weiv Creation. |
| ******************************************************************************* |
| */ |
| |
| #ifndef RESLIST_H |
| #define RESLIST_H |
| |
| #define KEY_SPACE_SIZE 65532 |
| #define RESLIST_MAX_INT_VECTOR 2048 |
| |
| #include "unicode/utypes.h" |
| #include "unicode/ures.h" |
| #include "unicode/ustring.h" |
| #include "uresdata.h" |
| #include "cmemory.h" |
| #include "cstring.h" |
| #include "unewdata.h" |
| |
| U_CDECL_BEGIN |
| |
| /* Resource bundle root table */ |
| struct SRBRoot { |
| char *fLocale; |
| uint16_t fKeyPoint; |
| char *fKeys; |
| int32_t fCount; |
| struct SResource *fRoot; |
| }; |
| |
| struct SRBRoot *bundle_open(UErrorCode *status); |
| /*void bundle_write(struct SRBRoot *bundle, const char *outputDir, const char *filename, UErrorCode *status);*/ |
| void bundle_write(struct SRBRoot *bundle, const char *outputDir, UErrorCode *status); |
| void bundle_close(struct SRBRoot *bundle, UErrorCode *status); |
| void bundle_setlocale(struct SRBRoot *bundle, UChar *locale, UErrorCode *status); |
| uint16_t bundle_addtag(struct SRBRoot *bundle, const char *tag, UErrorCode *status); |
| |
| /* Various resource types */ |
| |
| struct SResTable { |
| uint16_t fCount; |
| uint32_t fChildrenSize; |
| struct SResource *fFirst; |
| struct SRBRoot *fRoot; |
| }; |
| |
| struct SResource* table_open(struct SRBRoot *bundle, char *tag, UErrorCode *status); |
| void table_close(struct SResource *table, UErrorCode *status); |
| void table_add(struct SResource *table, struct SResource *res, int linenumber, UErrorCode *status); |
| |
| struct SResArray { |
| uint32_t fCount; |
| uint32_t fChildrenSize; |
| struct SResource *fFirst; |
| struct SResource *fLast; |
| }; |
| |
| struct SResource* array_open(struct SRBRoot *bundle, char *tag, UErrorCode *status); |
| void array_close(struct SResource *array, UErrorCode *status); |
| void array_add(struct SResource *array, struct SResource *res, UErrorCode *status); |
| |
| struct SResString { |
| uint32_t fLength; |
| UChar *fChars; |
| }; |
| |
| struct SResource *string_open(struct SRBRoot *bundle, char *tag, UChar *value, int32_t len, UErrorCode *status); |
| void string_close(struct SResource *string, UErrorCode *status); |
| |
| struct SResIntVector { |
| uint32_t fCount; |
| uint32_t *fArray; |
| }; |
| |
| struct SResource* intvector_open(struct SRBRoot *bundle, char *tag, UErrorCode *status); |
| void intvector_close(struct SResource *intvector, UErrorCode *status); |
| void intvector_add(struct SResource *intvector, int32_t value, UErrorCode *status); |
| |
| struct SResInt { |
| uint32_t fValue; |
| }; |
| |
| struct SResource *int_open(struct SRBRoot *bundle, char *tag, int32_t value, UErrorCode *status); |
| void int_close(struct SResource *intres, UErrorCode *status); |
| |
| struct SResBinary { |
| uint32_t fLength; |
| uint8_t *fData; |
| }; |
| |
| struct SResource *bin_open(struct SRBRoot *bundle, const char *tag, uint32_t length, uint8_t *data, UErrorCode *status); |
| void bin_close(struct SResource *binres, UErrorCode *status); |
| |
| /* Resource place holder */ |
| |
| struct SResource { |
| UResType fType; |
| uint16_t fKey; |
| uint32_t fSize; /* Size in bytes outside the header part */ |
| int line; /* used internally to report duplicate keys in tables */ |
| struct SResource *fNext; /*This is for internal chaining while building*/ |
| union { |
| struct SResTable fTable; |
| struct SResArray fArray; |
| struct SResString fString; |
| struct SResIntVector fIntVector; |
| struct SResInt fIntValue; |
| struct SResBinary fBinaryValue; |
| } u; |
| }; |
| |
| void res_close(struct SResource *res, UErrorCode *status); |
| void setIncludeCopyright(UBool val); |
| |
| U_CDECL_END |
| #endif /* #ifndef RESLIST_H */ |