secureswitools/swisistools/source/sisxlibrary/sislanguage.h
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/sisxlibrary/sislanguage.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,766 @@
+/*
+* Copyright (c) 2004-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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Note: This file may contain code to generate corrupt files for test purposes.
+* Such code is excluded from production builds by use of compiler defines;
+* it is recommended that such code should be removed if this code is ever published publicly.
+* As specified in SGL.GT0188.251
+*
+*/
+
+
+/**
+ @file 
+ @internalComponent
+ @released
+*/
+
+#ifndef __SISLANGUAGE_H__
+#define __SISLANGUAGE_H__
+
+
+#include "structure.h"
+#include "numeric.h"
+
+class CSISLanguage : public CStructure <CSISFieldRoot::ESISLanguage>
+
+	{
+public:
+
+	typedef enum 
+		{
+		//This list is lifted directly from E32std.h
+		/**
+			Enumerated value used for testing - does not represent a language.
+		*/
+		ELangTest = 0,
+
+		/** UK English. */
+		ELangEnglish = 1,
+
+		/** French. */
+		ELangFrench = 2,
+
+		/** German. */
+		ELangGerman = 3,
+
+		/** Spanish. */
+		ELangSpanish = 4,
+
+		/** Italian. */
+		ELangItalian = 5,
+
+		/** Swedish. */
+		ELangSwedish = 6,
+
+		/** Danish. */
+		ELangDanish = 7,
+
+		/** Norwegian. */
+		ELangNorwegian = 8,
+
+		/** Finnish. */
+		ELangFinnish = 9,
+
+		/** American. */
+		ELangAmerican = 10,
+
+		/** Swiss French. */
+		ELangSwissFrench = 11,
+
+		/** Swiss German. */
+		ELangSwissGerman = 12,
+
+		/** Portuguese. */
+		ELangPortuguese = 13,
+
+		/** Turkish. */
+		ELangTurkish = 14,
+
+		/** Icelandic. */
+		ELangIcelandic = 15,
+
+		/** Russian. */
+		ELangRussian = 16,
+
+		/** Hungarian. */
+		ELangHungarian = 17,
+
+		/** Dutch. */
+		ELangDutch = 18,
+
+		/** Belgian Flemish. */
+		ELangBelgianFlemish = 19,
+
+		/** Australian English. */
+		ELangAustralian = 20,
+
+		/** Belgian French. */
+		ELangBelgianFrench = 21,
+
+		/** Austrian German. */
+		ELangAustrian = 22,
+
+		/** New Zealand English. */
+		ELangNewZealand = 23,
+
+		/** International French. */
+		ELangInternationalFrench = 24,
+
+		/** Czech. */
+		ELangCzech = 25,
+
+		/** Slovak. */
+		ELangSlovak = 26,
+
+		/** Polish. */
+		ELangPolish = 27,
+
+		/** Slovenian. */
+		ELangSlovenian = 28,
+
+		/** Taiwanese Chinese. */
+		ELangTaiwanChinese = 29,
+
+		/** Hong Kong Chinese. */
+		ELangHongKongChinese = 30,
+
+		/** Peoples Republic of China's Chinese. */
+		ELangPrcChinese = 31,
+
+		/** Japanese. */
+		ELangJapanese = 32,
+
+		/** Thai. */
+		ELangThai = 33,
+
+		/** Afrikaans. */
+		ELangAfrikaans = 34,
+
+		/** Albanian. */
+		ELangAlbanian = 35,
+
+		/** Amharic. */
+		ELangAmharic = 36,
+
+		/** Arabic. */
+		ELangArabic = 37,
+
+		/** Armenian. */
+		ELangArmenian = 38,
+
+		/** Tagalog. */
+		ELangTagalog = 39,
+
+		/** Belarussian. */
+		ELangBelarussian = 40,
+
+		/** Bengali. */
+		ELangBengali = 41,
+
+		/** Bulgarian. */
+		ELangBulgarian = 42,
+
+		/** Burmese. */
+		ELangBurmese = 43,
+
+		/** Catalan. */
+		ELangCatalan = 44,
+
+		/** Croatian. */
+		ELangCroatian = 45,
+
+		/** Canadian English. */
+		ELangCanadianEnglish = 46,
+
+		/** International English. */
+		ELangInternationalEnglish = 47,
+
+		/** South African English. */
+		ELangSouthAfricanEnglish = 48,
+
+		/** Estonian. */
+		ELangEstonian = 49,
+
+		/** Farsi. */
+		ELangFarsi = 50,
+
+		/** Canadian French. */
+		ELangCanadianFrench = 51,
+
+		/** Gaelic. */
+		ELangScotsGaelic = 52,
+
+		/** Georgian. */
+		ELangGeorgian = 53,
+
+		/** Greek. */
+		ELangGreek = 54,
+
+		/** Cyprus Greek. */
+		ELangCyprusGreek = 55,
+
+		/** Gujarati. */
+		ELangGujarati = 56,
+
+		/** Hebrew. */
+		ELangHebrew = 57,
+
+		/** Hindi. */
+		ELangHindi = 58,
+
+		/** Indonesian. */
+		ELangIndonesian = 59,
+
+		/** Irish. */
+		ELangIrish = 60,
+
+		/** Swiss Italian. */
+		ELangSwissItalian = 61,
+
+		/** Kannada. */
+		ELangKannada = 62,
+
+		/** Kazakh. */
+		ELangKazakh = 63,
+
+		/** Khmer. */
+		ELangKhmer = 64,
+
+		/** Korean. */
+		ELangKorean = 65,
+
+		/** Lao. */
+		ELangLao = 66,
+
+		/** Latvian. */
+		ELangLatvian = 67,
+
+		/** Lithuanian. */
+		ELangLithuanian = 68,
+
+		/** Macedonian. */
+		ELangMacedonian = 69,
+
+		/** Malay. */
+		ELangMalay = 70,
+
+		/** Malayalam. */
+		ELangMalayalam = 71,
+
+		/** Marathi. */
+		ELangMarathi = 72,
+
+		/** Moldavian. */
+		ELangMoldavian = 73,
+
+		/** Mongolian. */
+		ELangMongolian = 74,
+
+		/** Norwegian Nynorsk. */
+		ELangNorwegianNynorsk = 75,
+
+		/** Brazilian Portuguese. */
+		ELangBrazilianPortuguese = 76,
+
+		/** Punjabi. */
+		ELangPunjabi = 77,
+
+		/** Romanian. */
+		ELangRomanian = 78,
+
+		/** Serbian. */
+		ELangSerbian = 79,
+
+		/** Sinhalese. */
+		ELangSinhalese = 80,
+
+		/** Somali. */
+		ELangSomali = 81,
+
+		/** International Spanish. */
+		ELangInternationalSpanish = 82,
+
+		/** American Spanish. */
+		ELangLatinAmericanSpanish = 83,
+
+		/** Swahili. */
+		ELangSwahili = 84,
+
+		/** Finland Swedish. */
+		ELangFinlandSwedish = 85,
+
+		/** Reserved, not in use. */
+		ELangReserved1 = 86,		// This enum should not be used for new languages, see INC110543
+
+		/** Tamil. */
+		ELangTamil = 87,
+
+		/** Telugu. */
+		ELangTelugu = 88,
+
+		/** Tibetan. */
+		ELangTibetan = 89,
+
+		/** Tigrinya. */
+		ELangTigrinya = 90,
+
+		/** Cyprus Turkish. */
+		ELangCyprusTurkish = 91,
+
+		/** Turkmen. */
+		ELangTurkmen = 92,
+
+		/** Ukrainian. */
+		ELangUkrainian = 93,
+
+		/** Urdu. */
+		ELangUrdu = 94,
+
+		/** Reserved, not in use. */
+		ELangReserved2 = 95,		// This enum should not be used for new languages, see INC110543
+
+		/** Vietnamese. */
+		ELangVietnamese = 96,
+
+		/** Welsh. */
+		ELangWelsh = 97,
+
+		/** Zulu. */
+		ELangZulu = 98,
+
+		/**
+		  @deprecated
+
+		  Use of this value is deprecated.
+		  */
+		ELangOther = 99,
+
+		/** English with terms as used by the device manufacturer, if this needs to
+		  be distinct from the English used by the UI vendor. */
+		ELangManufacturerEnglish = 100,
+
+		/** South Sotho.
+
+		  A language of Lesotho also called Sesotho. SIL code sot. */
+		ELangSouthSotho = 101,
+
+		/** Basque. */
+		ELangBasque = 102,
+
+		/** Galician. */
+		ELangGalician = 103,
+
+		/** Javanese. */
+		ELangJavanese = 104,
+
+		/** Maithili. */
+		ELangMaithili = 105,
+
+		/** Azerbaijani(Latin alphabet). */
+		ELangAzerbaijani_Latin = 106,
+
+		/** Azerbaijani(Cyrillic alphabet). */
+		ELangAzerbaijani_Cyrillic = 107,
+
+		/** Oriya. */
+		ELangOriya = 108,
+
+		/** Bhojpuri. */
+		ELangBhojpuri = 109,
+
+		/** Sundanese. */
+		ELangSundanese = 110,
+
+		/** Kurdish(Latin alphabet). */
+		ELangKurdish_Latin = 111,
+
+		/** Kurdish(Arabic alphabet). */
+		ELangKurdish_Arabic = 112,
+
+		/** Pashto. */
+		ELangPashto = 113,
+
+		/** Hausa. */
+		ELangHausa = 114,
+
+		/** Oromo. */
+		ELangOromo = 115,
+
+		/** Uzbek(Latin alphabet). */
+		ELangUzbek_Latin = 116,
+
+		/** Uzbek(Cyrillic alphabet). */
+		ELangUzbek_Cyrillic = 117,
+
+		/** Sindhi(Arabic alphabet). */
+		ELangSindhi_Arabic = 118,
+
+		/** Sindhi(using Devanagari script). */
+		ELangSindhi_Devanagari = 119,
+
+		/** Yoruba. */
+		ELangYoruba = 120,
+
+		/** Cebuano. */
+		ELangCebuano = 121,
+
+		/** Igbo. */
+		ELangIgbo = 122,
+
+		/** Malagasy. */
+		ELangMalagasy = 123,
+
+		/** Nepali. */ 
+		ELangNepali = 124,
+
+		/** Assamese. */
+		ELangAssamese = 125,
+
+		/** Shona. */
+		ELangShona = 126,
+
+		/** Zhuang. */
+		ELangZhuang = 127,
+
+		/** Madurese. */
+		ELangMadurese = 128,
+
+		/** English as appropriate for use in Asia-Pacific regions. */
+		ELangEnglish_Apac=129,
+
+		/** English as appropriate for use in Taiwan. */
+		ELangEnglish_Taiwan=157,
+
+		/** English as appropriate for use in Hong Kong. */
+		ELangEnglish_HongKong=158,
+
+		/** English as appropriate for use in the Peoples Republic of China. */
+		ELangEnglish_Prc=159,
+
+		/** English as appropriate for use in Japan. */
+		ELangEnglish_Japan=160,
+
+		/** English as appropriate for use in Thailand. */
+		ELangEnglish_Thailand=161,
+
+		/** Fulfulde, also known as Fula */
+		ELangFulfulde = 162,
+
+		/** Tamazight. */
+		ELangTamazight = 163,
+
+		/** Bolivian Quechua. */
+		ELangBolivianQuechua = 164,
+
+		/** Peru Quechua. */
+		ELangPeruQuechua = 165,
+
+		/** Ecuador Quechua. */
+		ELangEcuadorQuechua = 166,
+
+		/** Tajik(Cyrillic alphabet). */
+		ELangTajik_Cyrillic = 167,
+
+		/** Tajik(using Perso-Arabic script). */
+		ELangTajik_PersoArabic = 168,
+
+		/** Nyanja, also known as Chichewa or Chewa. */
+		ELangNyanja = 169,
+
+		/** Haitian Creole. */
+		ELangHaitianCreole = 170,
+
+		/** Lombard. */
+		ELangLombard = 171,
+
+		/** Koongo, also known as Kongo or KiKongo. */
+		ELangKoongo = 172, 
+
+		/** Akan. */
+		ELangAkan = 173,
+
+		/** Hmong. */
+		ELangHmong = 174,
+
+		/** Yi. */
+		ELangYi = 175,
+
+		/** Tshiluba, also known as Luba-Kasai */
+		ELangTshiluba = 176,
+
+		/** Ilocano, also know as Ilokano or Iloko. */
+		ELangIlocano = 177,
+
+		/** Uyghur. */
+		ELangUyghur = 178,
+
+		/** Neapolitan. */
+		ELangNeapolitan = 179,
+
+		/** Rwanda, also known as Kinyarwanda */
+		ELangRwanda = 180,
+
+		/** Xhosa. */
+		ELangXhosa = 181,
+
+		/** Balochi, also known as Baluchi */
+		ELangBalochi = 182,
+
+		/** Hiligaynon. */
+		ElangHiligaynon = 183,
+
+		/** Minangkabau. */
+		ELangMinangkabau = 184,
+
+		/** Makhuwa. */
+		ELangMakhuwa = 185,
+
+		/** Santali. */
+		ELangSantali = 186,
+
+		/** Gikuyu, sometimes written Kikuyu. */
+		ELangGikuyu = 187,
+
+		/** Mòoré, also known as Mossi or More. */
+		ELangMoore = 188,
+
+		/** Guaraní. */
+		ELangGuarani = 189, 
+
+		/** Rundi, also known as Kirundi. */
+		ELangRundi = 190,
+
+		/** Romani(Latin alphabet). */
+		ELangRomani_Latin = 191,
+
+		/** Romani(Cyrillic alphabet). */
+		ELangRomani_Cyrillic = 192,
+
+		/** Tswana. */
+		ELangTswana = 193,
+
+		/** Kanuri. */
+		ELangKanuri = 194,
+
+		/** Kashmiri(using Devanagari script). */
+		ELangKashmiri_Devanagari = 195,
+
+		/** Kashmiri(using Perso-Arabic script). */
+		ELangKashmiri_PersoArabic = 196,
+
+		/** Umbundu. */
+		ELangUmbundu = 197,
+
+		/** Konkani. */
+		ELangKonkani = 198,
+
+		/** Balinese, a language used in Indonesia (Java and Bali). */
+		ELangBalinese = 199,
+
+		/** Northern Sotho. */
+		ELangNorthernSotho = 200,
+
+		/** Wolof. */
+		ELangWolof = 201,
+
+		/** Bemba. */
+		ELangBemba = 202,
+
+		/** Tsonga. */
+		ELangTsonga = 203,
+
+		/** Yiddish. */
+		ELangYiddish = 204,
+
+		/** Kirghiz, also known as Kyrgyz. */
+		ELangKirghiz = 205,
+
+		/** Ganda, also known as Luganda. */
+		ELangGanda = 206,
+
+		/** Soga, also known as Lusoga. */
+		ELangSoga = 207,
+
+		/** Mbundu, also known as Kimbundu. */
+		ELangMbundu = 208,
+
+		/** Bambara. */
+		ELangBambara = 209,
+
+		/** Central Aymara. */
+		ELangCentralAymara = 210,
+
+		/** Zarma. */
+		ELangZarma = 211,
+
+		/** Lingala. */
+		ELangLingala = 212,
+
+		/** Bashkir. */
+		ELangBashkir = 213,
+
+		/** Chuvash. */
+		ELangChuvash = 214,
+
+		/** Swati. */
+		ELangSwati = 215,
+
+		/** Tatar. */
+		ELangTatar = 216,
+
+		/** Southern Ndebele. */
+		ELangSouthernNdebele = 217,
+
+		/** Sardinian. */
+		ELangSardinian = 218,
+
+		/** Scots. */
+		ELangScots = 219,
+
+		/** Meitei, also known as Meithei or Manipuri */
+		ELangMeitei = 220,
+
+		/** Walloon. */
+		ELangWalloon = 221,
+
+		/** Kabardian. */
+		ELangKabardian = 222,
+
+		/** Mazanderani, also know as Mazandarani or Tabri. */
+		ELangMazanderani = 223,
+
+		/** Gilaki. */
+		ELangGilaki = 224,
+
+		/** Shan. */
+		ELangShan = 225,
+
+		/** Luyia. */
+		ELangLuyia = 226,
+
+		/** Luo, also known as Dholuo, a language of Kenya. */
+		ELanguageLuo = 227,
+
+		/** Sukuma, also known as Kisukuma. */
+		ELangSukuma = 228,
+
+		/** Aceh, also known as Achinese. */
+		ELangAceh = 229,
+
+		/** English used in India. */
+		ELangEnglish_India = 230,
+
+		/** Malay as appropriate for use in Asia-Pacific regions. */
+		ELangMalay_Apac=326,
+
+		/** Indonesian as appropriate for use in Asia-Pacific regions. */
+		ELangIndonesian_Apac=327,
+		
+		ELangNone = 0xFFFF,
+		ELangMaximum = ELangNone // This must always be equal to the last (largest) TLanguage enum.
+		}
+	TLanguage;
+
+	typedef CSISUInt32 TDialect;
+
+public:
+	CSISLanguage ();
+	CSISLanguage (const TDialect aLan);
+	CSISLanguage (const CSISLanguage& aInitialiser);
+
+	virtual std::string Name () const;
+#ifdef GENERATE_ERRORS
+	virtual void CreateDefects ();
+#endif // GENERATE_ERRORS
+
+	operator TUint32 () const;
+	CSISLanguage& operator = (const TUint32 aLanguage);
+	TLanguage Value () const;
+
+	static TDialect IdentifyLanguage (const std::wstring& aIdentifier);
+	void AddPackageEntry(std::wostream& aStream, bool aVerbose) const;
+	
+private:
+	const wchar_t* GetLanguageCode(TDialect& aDialect) const;
+
+private:
+	TDialect iLanguage;
+
+	};
+
+
+
+
+inline CSISLanguage::CSISLanguage ()
+	{
+	InsertMember (iLanguage);
+	}
+
+
+inline CSISLanguage::CSISLanguage (const TDialect aLan) :
+		iLanguage (aLan)
+	{
+	InsertMember (iLanguage);
+	}
+
+
+inline CSISLanguage::CSISLanguage (const CSISLanguage& aInitialiser) :
+		CStructure <CSISFieldRoot::ESISLanguage> (aInitialiser),
+		iLanguage (aInitialiser.iLanguage)
+	{
+	InsertMember (iLanguage);
+	}
+
+
+inline CSISLanguage::operator TUint32 () const
+	{
+	return static_cast <TUint32> (iLanguage);
+	}
+
+
+inline CSISLanguage& CSISLanguage::operator = (const TUint32 aLanguage)
+	{
+	iLanguage = static_cast <TLanguage> (aLanguage);
+	return *this;
+	}
+
+
+inline CSISLanguage::TDialect operator + (const CSISLanguage::TDialect aLHS, const CSISLanguage::TDialect aRHS)
+	{
+		return static_cast <CSISLanguage::TDialect> (static_cast <TUint32> (aLHS) + static_cast <TUint32> (aRHS));
+	}
+
+inline bool operator == (const CSISLanguage::TDialect dialect, const CSISLanguage::TLanguage language)
+	{
+	return dialect.Value () == static_cast <TUint32> (language);
+	}
+
+#ifdef GENERATE_ERRORS
+inline void CSISLanguage::CreateDefects ()
+	{
+	if (CSISFieldRoot::IsBugToBeCreated (CSISFieldRoot::EBugInvalidValues))
+		{
+		iLanguage = static_cast <TLanguage> (rand ());
+		}
+	}
+#endif // GENERATE_ERRORS
+
+inline CSISLanguage::TLanguage CSISLanguage::Value () const
+	{
+	return static_cast <CSISLanguage::TLanguage> (iLanguage.Value ());
+	}
+
+#endif // __SISLANGUAGE_H__
+