diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/sisxlibrary/siscapabilities.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/sisxlibrary/siscapabilities.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,141 @@ +/* +* 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: +* +*/ + + +/** + @file + @publishedPartner +*/ + +#ifndef __SISCAPABILITIES_H__ +#define __SISCAPABILITIES_H__ + +#include "structure.h" +#include "numeric.h" +#include "sisfiledata.h" + +#include + +static const wchar_t* KCapabilityNames[] = + { + L"TCB", + L"CommDD", + L"PowerMgmt", + L"MultimediaDD", + L"ReadDeviceData", + L"WriteDeviceData", + L"DRM", + L"TrustedUI", + L"ProtServ", + L"DiskAdmin", + L"NetworkControl", + L"AllFiles", + L"SwEvent", + L"NetworkServices", + L"LocalServices", + L"ReadUserData", + L"WriteUserData", + L"Location", + L"SurroundingsDD", + L"UserEnvironment" + }; + +#define NUMOFCAPABILITIES (sizeof(KCapabilityNames) / sizeof(KCapabilityNames[0])) + +class CSISCapabilities : public CStructure + { +public: + /** + * Default constructor + */ + explicit CSISCapabilities(const bool aRequired = false); + /** + * Copy constructor. + */ + CSISCapabilities(const CSISCapabilities& aInitialiser); + + /** + * This function will verify the class content. Throws + * an exception if found invalid. + * @param aLanguages Number of languages present in the sis file. + */ + virtual void Verify (const TUint32 aLanguages) const; + /** + * Class Name + */ + virtual std::string Name () const; + /** + * Function checks if this class should be used or not. + * Mainly used in externalization. + * @return if true, don't bother writing this record to disc + * if false, when reading, it'd better be there + */ + virtual bool WasteOfSpace() const; + + /** + * Function will extract capabilities of the file passed + * and store it in the class. + * @param aFileName filename of the file whose capability needs to be extracted. + */ + void ExtractCapabilities(const std::wstring& aFileName); + /** + * Adds the write the package details into the stream. + * @param aStream - Stream in which the package entries need to be written. + * @param aVerbose - If this option is set then detail description of pkg + * will be written into the stream. + */ + void AddPackageEntry(std::wostream& aStream, bool aVerbose) const; + /** + * Get the stored capability list in human readable format. + * @param aCapList will be filled by this function. + */ + void GetCapabilityList(std::vector& aCapList) const; + /** + * Returns the stored capability. + */ + inline TUint32 Capabilities() const; + +private: + void InsertMembers (); + +private: + CSISUInt32 iCapabilities; + int iCapabilitySetSize; + + }; + + +inline void CSISCapabilities::InsertMembers() + { + InsertMember(iCapabilities); + } + +inline CSISCapabilities::CSISCapabilities(const bool aRequired) + : CStructure (aRequired), + iCapabilities(0), + iCapabilitySetSize(0) + { + InsertMembers(); + } + +inline TUint32 CSISCapabilities::Capabilities() const + { + return iCapabilities.Value(); + } + + +#endif /* __SISCAPABILITIES_H__ */