dependencies/swi/sisregistrylog.h
branchv5backport
changeset 31 a3e98f9c292b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/swi/sisregistrylog.h	Fri Mar 26 04:17:01 2010 +0530
@@ -0,0 +1,214 @@
+/*
+* Copyright (c) 2007-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: 
+* The access to a specific functionality depends on the client capabilities 
+* and may be restricted.             
+*
+*/
+
+
+/**
+ @file 
+ @publishedPartner
+ @released
+*/
+ 
+#ifndef __SISREGISTRYLOGGING_H__
+#define __SISREGISTRYLOGGING_H__
+
+#include <e32base.h>
+#include <f32file.h>
+#include <s32strm.h>
+
+class RReadStream;
+class RWriteStream;
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+namespace Usif
+	{
+	class RSoftwareComponentRegistry;
+	}
+#endif
+
+
+namespace Swi
+{
+class CSisRegistryObject;
+
+enum TSwiLogTypes
+		 {
+ 		 ESwiLogInstall =0,
+ 		 ESwiLogUnInstall,
+ 		 ESwiLogUpgrade,
+ 		 ESwiLogRestore
+		 };
+
+namespace 
+{
+  	const TInt KLogFileMajorVersion = 4;
+    const TInt KLogFileMinorVersion = 0;
+} 
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+namespace ScrHelperUtil
+	{
+	HBufC8* GetLogInfoLC(const Usif::RSoftwareComponentRegistry& aScrSession, TInt aMaxLogEntries);
+	}
+#endif
+
+class CLogEntry : public CBase
+{
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+friend HBufC8* ScrHelperUtil::GetLogInfoLC(const Usif::RSoftwareComponentRegistry& aScrSession, TInt aMaxLogEntries);
+#endif
+public:
+	static CLogEntry* NewL(const CSisRegistryObject& aObject,TSwiLogTypes InstallInfo);
+ 	static CLogEntry* NewLC(const CSisRegistryObject& aObject,TSwiLogTypes InstallInfo);
+
+	/**
+	 * Constructs a entry from a given existing stream. 
+	 */
+	static CLogEntry* NewL(RReadStream& aStream);
+	static CLogEntry* NewLC(RReadStream& aStream);
+	
+	/**
+	 * Default Constructor 
+	 */
+ 	CLogEntry(){};
+ 	
+ 	/**
+	 * Write the object to a stream 
+	 *
+	 * @param aStream The stream to write to
+	 */
+	void ExternalizeL(RWriteStream& aStream) const;
+	 
+	/**
+	 * Read the object from a stream
+	 *
+	 * @param aStream The stream to read from.
+	 */
+	void InternalizeL(RReadStream& aStream) ;
+ 
+	/**
+	 * Destructor 
+	 */
+	~CLogEntry();
+	
+	void ConstructL(RReadStream& aStream);
+	void ConstructL(const CSisRegistryObject& aObject,TSwiLogTypes InstallInfo);
+    
+    /**
+	 * Returns the Time
+	 *
+	 * @return HBufC8 descriptor containing text.
+	 */
+    IMPORT_C const TTime GetTime() const; 
+    
+    /**
+	 * The package name.
+	 * @return the name of this package as reference to TDesC.
+	 */
+	IMPORT_C const TDesC& GetPkgName() const; 
+	
+	/**
+	 * The Major Version
+	 * @return he major version number of the package
+	 */
+	IMPORT_C TInt32 GetMajorVersion() const; 
+	
+	/**
+	 * The Minor Version.
+	 * @return the minor version number of the package.
+	 */
+	IMPORT_C TInt32 GetMinorVersion() const; 
+	
+	/**
+	 * The Build Version.
+	 * @return the Build Version of the package.
+	 */
+	IMPORT_C TInt32 GetBuildVersion() const; 
+	
+	/**
+	 * The UID.
+	 * @return the Uid of the package.
+	 */
+	IMPORT_C const TUid GetUid() const; 
+    
+    /**
+	 * Returns the install type for this package
+	 * @return The install type
+	 */
+	IMPORT_C TSwiLogTypes GetInstallType() const;
+   
+private:
+
+    HBufC* iPackageName ;
+	TInt32 iMajorVersion;
+	TInt32 iMinorVersion;
+	TInt32 iBuildVersion;
+	TSwiLogTypes iInstallType ; 
+	TTime  iEvent ;   
+	TUid iUid; 
+};
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+/**
+ * @internalComponent
+ * @released
+ */
+class CLogFileVersion : public CBase
+    {
+public:
+    CLogFileVersion()
+   		{
+   		iLogFileMajorVersion = KLogFileMajorVersion;
+		iLogFileMinorVersion = KLogFileMinorVersion;
+	    }
+	
+    static CLogFileVersion* NewL(RReadStream& aStream);
+	static CLogFileVersion* NewLC(RReadStream& aStream);
+	
+	/**
+	 * Write the object to a stream 
+	 *
+	 * @param aStream The stream to write to
+	 */
+	 void ExternalizeL(RWriteStream& aStream) const;
+	
+	/**
+	 * Read the object from a stream
+	 *
+	 * @param aStream The stream to read from.
+	 */
+	 void InternalizeL(RReadStream& aStream) ;
+	 
+     void ConstructL();
+	 void ConstructL(RReadStream& aStream);
+	 
+	/**
+	 * Copy Constructor 
+	 */
+	CLogFileVersion(const CLogFileVersion& aObject1);
+	
+private:
+	TUint8 iLogFileMajorVersion;
+	TUint8 iLogFileMinorVersion;  
+  	 
+    };
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+} //namespace
+
+#endif
+
+