persistentstorage/centralrepository/cenrepsrv/install.h
changeset 0 08ec8eefde2f
child 23 26645d81f48d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/persistentstorage/centralrepository/cenrepsrv/install.h	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,91 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+
+/**
+ @internalTechnology
+*/
+
+#ifndef __INSTALL_H__
+#define __INSTALL_H__
+
+#include <e32base.h>
+#include <f32file.h>
+#include <e32property.h>
+#include "srvrepos_noc.h"
+#include <sacls.h>
+#include <saclscommon.h>
+
+class CInstallEntry : public CBase
+	{
+public:
+	static CInstallEntry* NewL();
+	CInstallEntry();
+	~CInstallEntry();
+	void ConstructL();
+	void SetL(TEntry& aEntry);
+	void HandleFileDeleteL(TInt aOperation);
+	void HandleFileCreateL(TInt aOperation);
+	void HandleFileUpdateL(TInt aOperation);
+
+	void InternalizeL(RReadStream& aStream);
+	void ExternalizeL(RWriteStream& aStream) const;
+
+	TUid Uid() const;
+	TTime Modified() const;
+	TCentRepFileType FileExt() const;
+private:
+	TUid   iUid;
+	TTime  iModified;
+	TCentRepFileType iFileExt;
+	CServerRepository* iRepository;
+	CSessionNotifier* iNotifier;
+	};
+	
+class CCentRepSWIWatcher: public CActive
+	{
+public:
+	static CCentRepSWIWatcher* NewL(RFs& aFs);
+	void Start();
+	~CCentRepSWIWatcher();
+	void HandleSWIEventL(TInt swiProperty);
+    void FindChangedEntriesL(TBool aStartup=EFalse);		
+	//From CActive
+protected:	
+	void RunL();
+	TInt RunError(TInt aError);
+	void DoCancel();
+private:
+	CCentRepSWIWatcher(RFs& aFs);
+	void NotifyChange();
+	void ConstructL();
+	
+	void ReadInstallDirL(RPointerArray<CInstallEntry>& aEntryArray);
+
+	
+	void SaveInstallDirL();
+	void GetInstallDirL();
+	void ReadAndInternalizeInstallDirL(const TDesC& aInstallDirFilePath);
+	
+	static TBool MatchEntries(const CInstallEntry &aSource, const CInstallEntry &aTarget);
+
+	TDesC& iInstallDir;
+	RFs& iFs;
+	RPointerArray<CInstallEntry> iInstallEntryArray;
+	RPointerArray<CInstallEntry> iCurrentInstallDirEntries;
+	RProperty iSWIKey;
+	TInt iSWIOperation;
+	TInt iSWIStatus;
+	};
+#endif