--- /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_