secureswitools/swianalysistoolkit/source/dumpswiregistrytool/registrytoken.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 14 Sep 2010 21:31:28 +0300
branchRCL_3
changeset 70 e8965914fac7
parent 0 ba25891c3a9e
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2005-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: 
*
*/


#include "registrytoken.h"

RegistryToken::RegistryToken()
	:iSISControllerInfo(0),
	iDrives (0),
	iCompletelyPresent (0),
	iSidCount (0),
	iSISControllerCount (0),
	iMajor (0),
	iMinor (0),
	iBuild (0),
	iLanguage (0),
	iSelectedDrive (0),
	iUnused1 (0),
	iUnused2 (0)
	{
	iLanguages[0]="Test";
	iLanguages[1]="English";
	iLanguages[2]="French";
	iLanguages[3]="German";
	iLanguages[4]="Spanish";
	iLanguages[5]="Italian";
	iLanguages[6]="Swedish";
	iLanguages[7]="Danish";
	iLanguages[8]="Norwegian";
	iLanguages[9]="Finnish";
	iLanguages[10]="American";
	iLanguages[11]="SwissFrench";
	iLanguages[12]="SwissGerman";
	iLanguages[13]="Portuguese";
	iLanguages[14]="Turkish";
	iLanguages[15]="Icelandic";
	iLanguages[16]="Russian";
	iLanguages[17]="Hungarian";
	iLanguages[18]="Dutch";
	iLanguages[19]="BelgianFlemish";
	iLanguages[20]="Australian";
	iLanguages[21]="BelgianFrench";
	iLanguages[22]="Austrian";
	iLanguages[23]="NewZealand";
	iLanguages[24]="InternationalFrench";
	iLanguages[25]="Czech";
	iLanguages[26]="Slovak";
	iLanguages[27]="Polish";
	iLanguages[28]="Slovenian";
	iLanguages[29]="TaiwanChinese";
	iLanguages[30]="HongKongChinese";
	iLanguages[31]="PrcChinese";
	iLanguages[32]="Japanese";
	iLanguages[33]="Thai";
	iLanguages[34]="Afrikaans";
	iLanguages[35]="Albanian";
	iLanguages[36]="Amharic";
	iLanguages[37]="Arabic";
	iLanguages[38]="Armenian";
	iLanguages[39]="Tagalog";
	iLanguages[40]="Belarussian";
	iLanguages[41]="Bengali";
	iLanguages[42]="Bulgarian";
	iLanguages[43]="Burmese";
	iLanguages[44]="Catalan";
	iLanguages[45]="Croatian";
	iLanguages[46]="CanadianEnglish";
	iLanguages[47]="InternationalEnglish";
	iLanguages[48]="SouthAfricanEnglish";
	iLanguages[49]="Estonian";
	iLanguages[50]="Farsi";
	iLanguages[51]="CanadianFrench";
	iLanguages[52]="ScotsGaelic";
	iLanguages[53]="Georgian";
	iLanguages[54]="Greek";
	iLanguages[55]="CyprusGreek";
	iLanguages[56]="Gujarati";
	iLanguages[57]="Hebrew";
	iLanguages[58]="Hindi";
	iLanguages[59]="Indonesian";
	iLanguages[60]="Irish";
	iLanguages[61]="SwissItalian";
	iLanguages[62]="Kannada";
	iLanguages[63]="Kazakh";
	iLanguages[64]="Khmer";
	iLanguages[65]="Korean";
	iLanguages[66]="Lao";
	iLanguages[67]="Latvian";
	iLanguages[68]="Lithuanian";
	iLanguages[69]="Macedonian";
	iLanguages[70]="Malay";
	iLanguages[71]="Malayalam";
	iLanguages[72]="Marathi";
	iLanguages[73]="Moldavian";
	iLanguages[74]="Mongolian";
	iLanguages[75]="NorwegianNynorsk";
	iLanguages[76]="BrazilianPortuguese";
	iLanguages[77]="Punjabi";
	iLanguages[78]="Romanian";
	iLanguages[79]="Serbian";
	iLanguages[80]="Sinhalese";
	iLanguages[81]="Somali";
	iLanguages[82]="InternationalSpanish";
	iLanguages[83]="LatinAmericanSpanish";
	iLanguages[84]="Swahili";
	iLanguages[85]="FinlandSwedish";
	iLanguages[86]="Reserved1";
	iLanguages[87]="Tamil";
	iLanguages[88]="Telugu";
	iLanguages[89]="Tibetan";
	iLanguages[90]="Tigrinya";
	iLanguages[91]="CyprusTurkish";
	iLanguages[92]="Turkmen";
	iLanguages[93]="Ukrainian";
	iLanguages[94]="Urdu";
	iLanguages[95]="Reserved2";
	iLanguages[96]="Vietnamese";
	iLanguages[97]="Welsh";
	iLanguages[98]="Zulu";
	iLanguages[99]="Other";
	}

void RegistryToken::ExtractRegistryToken(StreamReader& aReader , RegistryPackage& aPackage)
	{
	aPackage.ExtractPackage(aReader);
	iDrives = aReader.ReadInt32(); 
	iCompletelyPresent = aReader.ReadInt32();
	iSidCount = aReader.ReadInt32();
	for (int i=0 ; i < iSidCount ; i++)
		{
		int sid = aReader.ReadInt32();
		}

	iSISControllerCount = aReader.ReadInt32();
	iSISControllerInfo = new SISControllerInfo[iSISControllerCount];
	
	for(int j=0;j<iSISControllerCount;j++)
		{
		iSISControllerInfo[j].ExtractControllerInfo(aReader);
		}

	iMajor = aReader.ReadInt32();
	iMinor = aReader.ReadInt32();
	iBuild = aReader.ReadInt32();
	iLanguage = aReader.ReadInt32();
	iSelectedDrive = aReader.ReadInt32();
	iUnused1 = aReader.ReadInt32();
	iUnused2 = aReader.ReadInt32();
	}

void RegistryToken::DisplayRegistryToken()
	{
	cout << "Drives :" << iDrives << endl;
	cout << "No of executables :" << iSidCount << endl;
	cout << "Package Version :" << iMajor << "." << iMinor << "." << iBuild << endl;
	if(iLanguages.find(iLanguage) != iLanguages.end())
		{
		cout << "Languages :" <<iLanguages[iLanguage] << endl;
		}
	else
		{
		cout << "Languages :" << "Unknown" << endl;
		}

	if(iSelectedDrive >= 65 && iSelectedDrive <= 90)
		{
		cout << "Selected Drive :" <<(char)iSelectedDrive << endl;
		}
	else
		{
		cout << "Selected Drive :" << "No Drive Selected" << endl;
		}

	}

RegistryToken::~RegistryToken()
	{
	delete[] iSISControllerInfo;
	}