diff -r 000000000000 -r ba25891c3a9e installationservices/swi/inc/sisregistrydependency.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/installationservices/swi/inc/sisregistrydependency.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,169 @@ +/* +* 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: +* CSisRegistryDependency declaration +* +*/ + + +/** + @file + @released + @publishedPartner +*/ + +#ifndef __SISREGISTRYDEPENDENCY_H__ +#define __SISREGISTRYDEPENDENCY_H__ + +#include + +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK +#include +#include "installtypes.h" +#endif + +namespace Swi +{ +class CSisRegistryDependency; + +namespace Sis + { + class CDependency; + } + +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK +// Forward declare friend functions +namespace ScrHelperUtil + { + void WriteToScrL(Usif::RSoftwareComponentRegistry& aScrSession, const TUid& aCompUid, const TDesC& aCompName, Sis::TInstallType aInstallType, CSisRegistryDependency& aRegistryDependency); + void ReadFromScrL(Usif::CVersionedComponentId& aVersionedSupplierCompId, CSisRegistryDependency*& aRegistryDependency); + } +#endif + +class CSisRegistryDependency : public CBase + { +public: + /** + * Creates a new CSisRegistryDependency object based on a Sis::CDependency + */ + IMPORT_C static CSisRegistryDependency* NewL(const Sis::CDependency& aDependency); + + /** + * Creates a new CSisRegistryDependency object on the cleanup stack. + */ + IMPORT_C static CSisRegistryDependency* NewLC(const Sis::CDependency& aDependency); + + /** + * Creates a new CSisRegistryFileDescription from a stream + */ + IMPORT_C static CSisRegistryDependency* NewL(RReadStream& aStream); + + /** + * Creates a new CSisRegistryFileDescription from a stream on the cleanup stack + */ + IMPORT_C static CSisRegistryDependency* NewLC(RReadStream& aStream); + + /** + * Creates a new CSisRegistryFileDescription from a CSisRegistryDependency object + */ + IMPORT_C static CSisRegistryDependency* NewL(const CSisRegistryDependency& aDependency); + + /** + * Creates a new CSisRegistryFileDescription from a CSisRegistryDependency object and places the created object on the cleanup stack + */ + IMPORT_C static CSisRegistryDependency* NewLC(const CSisRegistryDependency& aDependency); + +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK + /** + * Creates a new CSisRegistryFileDescription from a CSisRegistryDependency object + */ + IMPORT_C static CSisRegistryDependency* NewL(const TUid aUid, const TVersion aFromVersion, const TVersion aToVersion); + + /** + * Creates a new CSisRegistryFileDescription from a CSisRegistryDependency object and places the created object on the cleanup stack + */ + IMPORT_C static CSisRegistryDependency* NewLC(const TUid aUid, const TVersion aFromVersion, const TVersion aToVersion); +#endif + + IMPORT_C void InternalizeL(RReadStream& aStream); + IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + + TUid Uid() const; + + TVersion FromVersion() const; + + TVersion ToVersion() const; + + IMPORT_C TBool IsCompatible(const TVersion& aVersion) const; + +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK +public: // Friend Functions + friend void ScrHelperUtil::WriteToScrL(Usif::RSoftwareComponentRegistry& aScrSession, const TUid& aCompUid, const TDesC& aCompName, Sis::TInstallType aInstallType, CSisRegistryDependency& aRegistryDependency); + friend void ScrHelperUtil::ReadFromScrL(Usif::CVersionedComponentId& aVersionedSupplierCompId, CSisRegistryDependency*& aRegistryDependency); +#endif + +private: + /** + * The constructor. + */ + CSisRegistryDependency(); + + /** + * The second-phase constructor. + * @param aDependency The Sis::CDependency dependency object reference argument. + */ + void ConstructL(const Sis::CDependency& aDependency); + + /** + * The second-phase constructor. + * @param aDependency The CSisRegistryDependency to read the file description from. + */ + void ConstructL(const CSisRegistryDependency& aDependency); + + /** + * The second-phase constructor. + * @param aStream The stream to read the file description from. + */ + void ConstructL(RReadStream& aStream); + +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK + void ConstructL(const TUid aUid, const TVersion aFromVersion, const TVersion aToVersion); +#endif + +private: + TUid iUid; + TVersion iFromVersion; + TVersion iToVersion; + }; + +// inline functions from CSisRegistryDependency + +inline TUid CSisRegistryDependency::Uid() const + { + return iUid; + } + +inline TVersion CSisRegistryDependency::FromVersion() const + { + return iFromVersion; + } + +inline TVersion CSisRegistryDependency::ToVersion() const + { + return iToVersion; + } + +} //namespace Swi +#endif +