secureswitools/swisistools/source/interpretsislib/installablefile.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 15 Sep 2010 12:20:42 +0300
branchRCL_3
changeset 73 79647526f98c
parent 0 ba25891c3a9e
child 81 42552535c1ac
permissions -rw-r--r--
Revision: 201035 Kit: 201036

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


/**
 @file INSTALLABLEFILE.H
 @internalComponent
 @released
*/
#ifndef	INSTALLABLE_FILE_H
#define	INSTALLABLE_FILE_H

#include <vector> 
#include <string>

#include "symbiantypes.h"


class CSISFileData;
class CSISFileDescription;


struct InstallableFile
{

public:
	// constructor for non stub files
	InstallableFile(const CSISFileDescription&, const CSISFileData*, const std::wstring aDrivePath,
						int aInstallingDrive, const int aSystemdrive, const bool aGenerateRomStub);
	
	// constructor for stub files
	InstallableFile(const CSISFileDescription&, const std::wstring aDrivePath, int aInstallingDrive, 
						const int aSystemdrive, const bool aGenerateRomStub);
	~InstallableFile();

public:
	bool IsExecutable() const { return isExecutable;};
	bool IsExe() const { return isExe;};
	TUint32 Sid() const{ return iSid;};
	bool IsStub() const{ return isStub;};
	const CSISFileDescription* FileDescription() const{ return iFileDescription;};
	const CSISFileData* FileData() const{ return iFileData;};
	const std::wstring& GetTarget() const { return iTargetFile; };
	void SetTarget(const std::wstring& aTargetFile);
	const std::wstring& GetLocalTarget() const { return iLocalTargetFile; };

private:
	void ChangeTargetDrive(const std::wstring aDrivePath, int aInstallingDrive, 
									const int aSystemdrive, const bool aGenerateRomStub);

private:
	bool isExecutable;
	bool isExe;
	TUint32 iSid;
	bool isStub;
	const CSISFileDescription* iFileDescription;	
	// this  can be NULL in case of stub
	const CSISFileData* iFileData;
	// Full file name to the device location
	std::wstring iTargetFile;
	// Full file name to the PC location
	std::wstring iLocalTargetFile;
};

typedef std::vector< InstallableFile* > InstallableFiles;

void GetSidsFromInstallable(const InstallableFiles& aFiles, 
							std::vector<TUint32>& aSids);

void FreeInstallableFiles(InstallableFiles& aFiles);
#endif	/* INSTALLABLE_FILE_H */