installationservices/swi/inc/sisregistrydependency.h
changeset 0 ba25891c3a9e
--- /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 <e32base.h>
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include <usif/scr/scr.h>
+#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
+