pimprotocols/phonebooksync/inc/ActiveNotifications.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pimprotocols/phonebooksync/inc/ActiveNotifications.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,233 @@
+// Copyright (c) 2002-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:
+// Header file for Active Object based notification classes.
+// 
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef __ACTIVENOTIFICATIONS_H__
+#define __ACTIVENOTIFICATIONS_H__
+
+#include <etelmm.h>
+
+#include "phbksyncsvr.h"
+#include "SyncEngineServer.h"
+
+
+/**
+ *  This class is the base class for all the Acitve Notifications.
+ */
+class CActiveNotificationBase : public CActive
+	{
+public:
+	~CActiveNotificationBase();
+
+	TInt Start();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+
+protected:
+	CActiveNotificationBase(CPhoneBookServer& aServer);
+
+	void RunL();
+	TInt RunError(TInt aError);
+	void DoCancel();
+	
+	inline CPhoneBookServer& Server() const { return iServer; };
+
+	TBool  iIsNotificationInProgress;
+	TInt  iLastDelay;
+
+private:
+	CPhoneBookServer&  iServer;
+	RTimer  iTimer;
+	};
+
+
+/**
+ *  This class is responsible for implementing the initial request of
+ *  the phone store information (at the RMobilePhone level) for all
+ *  supported phonebook stores from the ICC.
+ *
+ *  It is also responsible for triggering refresh synchronisations
+ *  which require a GetPhoneStoreInfo request to be carried out before
+ *  a sync request.
+ */
+class CGetPhoneStoreInfo : public CActiveNotificationBase
+	{
+public:
+	static CGetPhoneStoreInfo* NewL(CPhoneBookServer& aServer,
+									CPhoneBookManager& aPhonebookManager,
+									RMobilePhone& aPhone);
+	~CGetPhoneStoreInfo();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+	
+	void QueueGetInfoAndSync(TUid aPhonebookUid);
+
+private:
+	CGetPhoneStoreInfo(CPhoneBookServer& aServer,
+					   CPhoneBookManager& aPhonebookManager,
+					   RMobilePhone& aPhone);
+
+	void SelectNextPhonebook();
+
+	CPhoneBookManager&  iPhonebookManager;
+	RMobilePhone&  iPhone;
+	TUid  iPhonebookUid;
+	TBool  iAutoSyncRequired;
+	TInt  iPhonebookCount;
+	RMobilePhone::TPhoneStoreNameAndIccType  iStore;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1      iStoreInfoV1;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg  iStoreInfoPckgV1;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV2      iStoreInfoV2;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV2Pckg  iStoreInfoPckgV2;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV5	   iStoreInfoV5;
+ 	RMobilePhoneBookStore::TMobilePhoneBookInfoV5Pckg  iStoreInfoPckgV5;
+ 	RArray<TUid>  iPhonebooksToRefresh;
+	};
+
+
+/**
+ *  Responsible for implementing the initial request and notification
+ *  of any phone lock state or lock info change events.
+ */
+class CNotifyLockInfoChange : public CActiveNotificationBase
+	{
+public:
+	static CNotifyLockInfoChange* NewL(CPhoneBookServer& iServer,
+									   RMobilePhone& aPhone);
+	~CNotifyLockInfoChange();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+
+private:
+	CNotifyLockInfoChange(CPhoneBookServer& iServer,
+						  RMobilePhone& aPhone);
+
+	RMobilePhone&  iPhone;
+	TInt  iLockInfosReceived;
+	RMobilePhone::TMobilePhoneLock  iLock;
+	RMobilePhone::TMobilePhoneLockInfoV1  iLockInfo;
+	RMobilePhone::TMobilePhoneLockInfoV1Pckg  iLockInfoPckg;
+	};
+
+
+/**
+ *  This class is responsible for implementing the state machine required to be
+ *  notified of any phone security events.
+ */
+class CNotifySecurityEvent : public CActiveNotificationBase
+	{
+public:
+	static CNotifySecurityEvent* NewL(CPhoneBookServer& aServer, RMobilePhone& aPhone);
+	~CNotifySecurityEvent();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+
+private:
+	CNotifySecurityEvent(CPhoneBookServer& aServer, RMobilePhone& aPhone);
+
+	RMobilePhone::TMobilePhoneSecurityEvent  iSecurityEvent;
+	RMobilePhone&  iPhone;
+	};
+
+
+/**
+ *  This class is responsible for implementing the notification of any
+ *  ETel SAT updates.
+ */
+class CNotifySATUpdates : public CActiveNotificationBase
+	{
+public:
+	static CNotifySATUpdates* NewL(CPhoneBookServer& aServer, RSat& aSat);
+	~CNotifySATUpdates();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+
+private:
+	CNotifySATUpdates(CPhoneBookServer& aServer, RSat& aSat);
+
+	RSat::TRefreshV1  iRefreshV1;
+	RSat::TRefreshV1Pckg  iRefreshPckgV1;
+	RSat::TRefreshV2  iRefreshV2;
+	RSat::TRefreshV2Pckg  iRefreshPckgV2;
+	RSat&  iSat;
+	};
+
+
+/**
+ *  This class is responsible for implementing the notification of the
+ *  USIM Application information change.
+ */ 
+class CNotifyAppInfoChange : public CActiveNotificationBase
+	{
+public:
+	static CNotifyAppInfoChange* NewL(CPhoneBookServer&aServer,
+									  RMobilePhone& aPhone);
+	~CNotifyAppInfoChange();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+
+private:
+	CNotifyAppInfoChange(CPhoneBookServer& aServer, RMobilePhone& aPhone);
+
+	RMobilePhone&  iPhone;
+	TBool  iReceivedInitialValue;
+	TInt  iAppCount;
+	RMobilePhone::TAID  iActiveAID;
+	};
+
+
+/**
+ *  This class is responsible for implementing the secure backup and restore
+ *  operation notification.
+*/ 
+class CNotifyBackupAndRestore : public CActiveNotificationBase
+	{
+public:
+	static CNotifyBackupAndRestore* NewL(CPhoneBookServer& aServer);
+	~CNotifyBackupAndRestore();
+
+	virtual void PostNotification();
+	virtual void CompleteNotification(TInt aRetVal);
+	virtual void CancelNotification();
+
+private:
+	CNotifyBackupAndRestore(CPhoneBookServer& aServer);
+
+	void ConstructL();
+
+	RProperty iBackupProperty;
+	};
+
+
+
+#endif // __ACTIVENOTIFICATIONS_H__