diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/convdata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/convdata.h Tue Mar 16 16:12:26 2010 +0000 @@ -0,0 +1,136 @@ +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#if !defined(__CONVDATA_H__) +#define __CONVDATA_H__ + +/** +@internalComponent +*/ +struct SCnvConversionData + { +/** Specifies the default endian-ness of the current character set. Used by SetDefaultEndiannessOfForeignCharacters(). */ + enum TEndianness // the values of these *must not* change they are used hard-coded in CNVTOOL.PL + { + EUnspecified =0, + EFixedLittleEndian =1, + EFixedBigEndian =2 + }; + struct SVariableByteData + { + struct SRange + { + TUint8 iFirstInitialByteValueInRange; + TUint8 iLastInitialByteValueInRange; + TUint8 iNumberOfSubsequentBytes; + TUint8 iSpare; + }; + TInt iNumberOfRanges; + const SRange* iRangeArray; + }; + struct SOneDirectionData + { + struct SRange + { + enum TAlgorithm + { + // each of these, with the exception of EDirect, has a corresponding member of UData + EDirect, + EOffset, + EIndexedTable16, + EKeyedTable1616, + EKeyedTable16OfIndexedTables16 + }; + union UData + { + struct SIndexedTable16 + { + struct SEntry + { + TUint16 iOutputCharacterCode; + }; + const SEntry* iEntryArray; + }; + struct SKeyedTable1616 + { + struct SEntry + { + TUint16 iKey; + TUint16 iOutputCharacterCode; + }; + TInt iNumberOfEntries; + const SEntry* iEntryArray; + }; + struct SKeyedTable16OfIndexedTables16 + { + struct SKeyedEntry + { + TUint16 iFirstInputCharacterCodeInIndexedTable; + TUint16 iLastInputCharacterCodeInIndexedTable; + const TUint16* iIndexedEntryArray; + }; + TInt iNumberOfKeyedEntries; + const SKeyedEntry* iKeyedEntryArray; + }; + TInt iOffset; + SIndexedTable16 iIndexedTable16; + SKeyedTable1616 iKeyedTable1616; + SKeyedTable16OfIndexedTables16 iKeyedTable16OfIndexedTables16; + }; + TUint iFirstInputCharacterCodeInRange; + TUint iLastInputCharacterCodeInRange; + TUint8 iAlgorithm; // one of the TAlgorithm values + TUint8 iSizeOfOutputCharacterCodeInBytesIfForeign; // only used in SCnvConversionData::iUnicodeToForeignData + TUint16 iSpare; +#if defined(CONST_STATIC_UNIONS_ARE_POSSIBLE) + UData iData; +#else + struct + { + TUint iWord1; + TUint iWord2; + } iData; +#endif + }; + TInt iNumberOfRanges; + const SRange* iRangeArray; + }; + TEndianness iEndiannessOfForeignCharacters; + SVariableByteData iForeignVariableByteData; + SOneDirectionData iForeignToUnicodeData; + SOneDirectionData iUnicodeToForeignData; + TAny* iSpareForFutureUse_1; + TAny* iSpareForFutureUse_2; + }; + +/** +@internalComponent +*/ +#define UData_SIndexedTable16(a) \ + reinterpret_cast(const_cast(a)) +/** +@internalComponent +*/ +#define UData_SKeyedTable1616(a) \ + static_castARRAY_LENGTH(a), \ + reinterpret_cast(const_cast(a)) +/** +@internalComponent +*/ +#define UData_SKeyedTable16OfIndexedTables16(a) \ + static_castARRAY_LENGTH(a), \ + reinterpret_cast(const_cast(a)) + +#endif