phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSatRefreshNotifier.h
branchRCL_3
changeset 63 f4a778e096c2
parent 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSatRefreshNotifier.h	Wed Sep 01 12:29:52 2010 +0100
@@ -0,0 +1,114 @@
+/*
+* Copyright (c) 2002-2007 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:  A notifier that gets refresh events from the SAT server
+*
+*/
+
+
+
+#ifndef VPBKSIMSTOREIMPL_CSATREFRESHNOTIFIER_H
+#define VPBKSIMSTOREIMPL_CSATREFRESHNOTIFIER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <msatrefreshobserver.h>
+#include "MSimRefreshObject.h"
+
+namespace VPbkSimStoreImpl {
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  A notifier that gets refresh events from the SAT server
+*
+*/
+NONSHARABLE_CLASS(CSatRefreshNotifier) : public CBase,
+                            private MSatRefreshObserver,
+                            private MSimRefreshCompletion
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CSatRefreshNotifier* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CSatRefreshNotifier();
+
+    public: // New functions
+        
+        /**
+        * Opens session to SAT server and activates notification
+        * if refresh object has files that are not already listened to.
+        *
+        * @param aSimRefreshObject the object that needs to listen to refresh.
+        */
+        void ActivateL( MSimRefreshObject& aSimRefreshObject );
+        
+        /**
+        * Deactivates listening refresh.
+        *
+        * @param aSimRefreshObject the object that doesn't need 
+        *                          notification anymore.
+        */
+        void DeActivate( MSimRefreshObject& aSimRefreshObject );
+        
+        /**
+        * Returns ETrue if notifier has been activated
+        * @return ETrue if notifier has been activated
+        */
+        TBool IsActive();
+        
+    private:  // From MSatRefreshObserver
+        
+        TBool AllowRefresh( TSatRefreshType aType, 
+            const TSatRefreshFiles& aFiles );
+        void Refresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles );
+    
+    private:    // From MSimRefreshCompletion
+        void SatRefreshCompleted( MSimRefreshObject& aSimRefreshObject,
+            TBool aReadAdditionalFiles );
+            
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CSatRefreshNotifier();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private:    // Data
+        /// Own: a C-class that owns SAT session
+        class CSatSession;
+        CSatSession* iSatSession;
+        /// An array of observers. Instances are not owned.
+        RPointerArray<MSimRefreshObject> iObjects;
+        /// The number of object that have completed refresh
+        TInt iRefreshedObjects;
+        /// ETrue if some object has read other than SAT-defined EFs.
+        TBool iAdditionalEFsRead;        
+    };
+} // namespace VPbkSimStoreImpl
+#endif      // VPBKSIMSTOREIMPL_CSATREFRESHNOTIFIER_H
+            
+// End of File