secureswitools/swisistools/source/sisxlibrary/siswrite.h
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/sisxlibrary/siswrite.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,278 @@
+/*
+* 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.
+* Acts as layer between old MakeSIS and new SISX file format.
+* Handles creation of a SISX file
+*
+*/
+
+
+/**
+ @file 
+ @internalComponent
+ @released
+*/
+
+#ifndef __SISWRITE_H_
+#define __SISWRITE_H_
+
+#include "siscontents.h"
+#include <iostream>
+
+
+
+class CSISXWriter
+	{
+public:
+	CSISXWriter ();
+	void WriteSIS (const std::wstring aTargetFileName);
+	void Dump (std::ostream& aStream);
+   	void SetVersionInfo (	const CSISUid::TUid aUID, const TVersion& aVersion,
+							const TUint32 aType, const TUint32 aFlags);
+	TUint32 GetNoLanguages () const;
+	bool AreLanguagesSpecified () const;
+	void AddLanguage (const CSISLanguage::TDialect aLan);
+	void AddProperty (const CSISProperty::TKey aKey, const CSISProperty::TValue aValue);
+	CSISUid::TUid UID1 () const;
+	void AddName (const std::wstring& aLan);
+	void AddVendorName (const std::wstring& aLan);
+	void SetVendorUniqueName (const std::wstring& aVendorUniqueName);
+	void AddDependencyName (const std::wstring& aName);
+	void AddTargetName (const std::wstring& aName);
+	void AddOptionName (const std::wstring& aName);
+	void AddOption ();
+	CSISFileDescription::TSISInstOption InterpretOption (const std::wstring& aOption);
+	CSISInfo::TSISInstallationType InterpretType (const std::wstring& aOption);
+	void SetMimeType (const std::wstring& aMimeType);
+	void AddIf ();
+	const CSISIf& If () const;
+	CSISIf& If ();
+	const CSISInstallBlock& InstallBlock () const;
+	CSISInstallBlock& InstallBlock ();
+	void SetLogo (const std::wstring& aFile, const std::wstring& aMime, const std::wstring& aTarget);
+	void AddDependency (const CSISUid::TUid aUID, const TVersion& aFrom, const TVersion& aTo);
+	void AddTarget (const CSISUid::TUid aUID, const TVersion& aFrom, const TVersion& aTo);
+	void EmbedFile (const std::wstring& aFile, const CSISUid::TUid& aUid, CSISInstallBlock& aInstall);
+	void EmbedPackage (CSISInstallBlock& aInstallBlock, const std::wstring& aFile, const CSISUid::TUid& aUid);
+	void SetDefaultContent ();
+	TUint32 LoadFile (const std::wstring& aFile, TUint64* aSize = NULL);
+	TUint64 CompressedSize () const;
+	TUint64 UncompressedSize () const;
+	const CSISDataUnit& DataUnit () const;
+	const CSISDataUnit& DataUnit (const TUint32 aUnit) const;
+	CSISLanguage::TLanguage Language (const TUint32 aIndex) const;
+	void AddInstallFlag(const TUint8 aFlag);
+	const CSISContents& SISContent() const;
+
+private:
+	CSISContents		iContent;
+	};
+
+inline CSISXWriter::CSISXWriter ()
+	{
+	}
+
+inline const CSISContents& CSISXWriter::SISContent() const	
+	{
+	return iContent;
+	}
+
+inline void CSISXWriter::Dump (std::ostream& aStream)
+	{
+	aStream <<  std::endl << iContent.Name () << std::endl << "  ";
+	iContent.Dump (aStream, 2);
+	aStream << std::endl;
+	}
+
+inline void CSISXWriter::SetVersionInfo (	const CSISUid::TUid aUID, const TVersion& aVersion,
+											const TUint32 aType, const TUint32 aFlags)
+	{
+ 	iContent.SetVersionInfo (aUID, aVersion, aType, aFlags);
+	}
+
+inline TUint32 CSISXWriter::GetNoLanguages () const
+	{
+	TUint32 count (iContent.LanguageCount ());
+	return (count == 0) ? 1 : count; 
+	}
+
+inline bool CSISXWriter::AreLanguagesSpecified () const
+	{
+	return iContent.AreLanguagesSpecified ();
+	}
+
+inline void CSISXWriter::AddLanguage (const CSISLanguage::TDialect aLan)
+	{
+	iContent.AddLanguage (aLan);
+	}
+
+inline void CSISXWriter::AddProperty (const CSISProperty::TKey aKey, const CSISProperty::TValue aValue)
+	{
+	iContent.AddProperty (aKey, aValue);
+	}
+
+inline CSISUid::TUid CSISXWriter::UID1 () const
+	{
+	return iContent.UID1 (); 
+	}
+
+inline void CSISXWriter::AddName (const std::wstring& aLan)
+	{
+	iContent.AddName (aLan); 
+	}
+
+inline void CSISXWriter::AddVendorName (const std::wstring& aLan)
+	{
+	iContent.AddVendorName (aLan);
+	}
+
+inline void CSISXWriter::AddDependencyName (const std::wstring& aName)
+	{
+	iContent.AddDependencyName (aName);
+	}
+
+inline void CSISXWriter::AddTargetName (const std::wstring& aName)
+	{
+	iContent.AddTargetName (aName); 
+	}
+
+inline void CSISXWriter::AddOptionName (const std::wstring& aName)
+	{
+	iContent.AddOptionName (aName); 
+	}
+
+inline void CSISXWriter::AddOption ()
+	{
+	iContent.AddOption ();
+	}
+
+inline CSISFileDescription::TSISInstOption CSISXWriter::InterpretOption (const std::wstring& aOption)
+	{
+	return iContent.InterpretOption (aOption); 
+	}
+
+inline CSISInfo::TSISInstallationType CSISXWriter::InterpretType (const std::wstring& aOption)
+	{
+	return iContent.InterpretType (aOption); 
+	}
+
+inline void CSISXWriter::SetMimeType (const std::wstring& aMimeType)
+	{
+	iContent.SetMimeType (aMimeType); 
+	}
+
+inline void CSISXWriter::AddIf ()
+	{
+	iContent.AddIf ();
+	}
+
+inline const CSISIf& CSISXWriter::If () const
+	{
+	return iContent.If (); 
+	}
+
+inline CSISIf& CSISXWriter::If ()
+	{
+	return iContent.If (); 
+	}
+
+inline const CSISInstallBlock& CSISXWriter::InstallBlock () const
+	{
+	return iContent.InstallBlock (); 
+	}
+
+inline CSISInstallBlock& CSISXWriter::InstallBlock ()
+	{
+	return iContent.InstallBlock ();
+	}
+
+inline void CSISXWriter::SetLogo (const std::wstring& aFile, const std::wstring& aMime, const std::wstring& aTarget)
+	{
+	iContent.SetLogo (aMime, aTarget, aFile, DataUnit()); 
+	}
+
+inline void CSISXWriter::AddDependency (const CSISUid::TUid aUID, const TVersion& aFrom, const TVersion& aTo)
+	{
+	iContent.AddDependency (aUID, aFrom, aTo);
+	}
+
+inline void CSISXWriter::AddTarget (const CSISUid::TUid aUID, const TVersion& aFrom, const TVersion& aTo)
+	{
+	iContent.AddTarget (aUID, aFrom, aTo);
+	}
+
+inline void CSISXWriter::SetDefaultContent ()
+	{
+	iContent.SetDefaultContent ();
+	}
+
+inline TUint32 CSISXWriter::LoadFile (const std::wstring& aFile, TUint64* aSize)
+	{
+	return iContent.LoadFile (aFile, aSize);
+	}
+
+inline TUint64 CSISXWriter::CompressedSize () const
+	{
+	return iContent.CompressedSize ();
+	}
+
+inline TUint64 CSISXWriter::UncompressedSize () const
+	{
+	return iContent.UncompressedSize ();
+	}
+
+inline const CSISDataUnit& CSISXWriter::DataUnit () const
+	{
+	return iContent.DataUnit ();
+	}
+
+inline const CSISDataUnit& CSISXWriter::DataUnit (const TUint32 aUnit) const
+	{
+	return iContent.DataUnit (aUnit);
+	}
+
+inline void CSISXWriter::SetVendorUniqueName (const std::wstring& aVendorUniqueName)
+	{
+	iContent.SetVendorUniqueName (aVendorUniqueName);
+	}
+
+inline CSISLanguage::TLanguage CSISXWriter::Language (const TUint32 aIndex) const
+	{
+	return iContent.Language (aIndex);
+	}
+
+inline void CSISXWriter::EmbedFile (const std::wstring& aFile, const CSISUid::TUid& aUid, CSISInstallBlock& aInstall)
+	{
+	iContent.EmbedFile (aFile, aUid, aInstall);
+	}
+
+inline void CSISXWriter::EmbedPackage (CSISInstallBlock& aInstallBlock, const std::wstring& aFile, const CSISUid::TUid& aUid)
+	{
+	iContent.EmbedPackage (aInstallBlock, aFile, aUid);
+	}
+
+inline void CSISXWriter::WriteSIS (const std::wstring aTargetFileName)
+	{
+	iContent.WriteSIS (aTargetFileName);
+	}
+
+inline void CSISXWriter::AddInstallFlag(const TUint8 aFlag)
+	{
+	iContent.AddInstallFlag(aFlag);
+	}
+
+#endif // __SISWRITE_H_