syncmlfw/syncmlnotifier/inc/SyncMLNotifierBase.h
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/syncmlnotifier/inc/SyncMLNotifierBase.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,217 @@
+/*
+* Copyright (c) 2005 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:  Declares SyncML notifiers base class.
+*
+*/
+
+
+
+#ifndef CSYNCMLNOTIFIERBASE_H
+#define CSYNCMLNOTIFIERBASE_H
+
+//  INCLUDES
+#include <SyncMLNotifier.h>
+
+// CONSTANTS
+// Channel for app starter notifier
+const TUid KSmlAppLaunchChannel = {0x101F8769};
+
+// Channel for server dialog notifier
+const TUid KSmlDlgChannel       = {0x101F876A};
+const TUid KSmlFwUpdChannel     = {0x102072BF}; // Channel for firmware update notifier
+
+// Number of notifiers
+const TInt KSmlNotifierArrayIncrement = 3;  // Number of notifiers
+
+// FORWARD DECLARATIONS
+class CEikonEnv;
+
+// CLASS DECLARATION
+
+/**
+* The base class for the SyncML notifiers.
+*
+*  @lib SyncMLNotifier
+*  @since Series 60 3.0
+*/
+NONSHARABLE_CLASS( CSyncMLNotifierBase ) : public CActive,
+                                           public MEikSrvNotifierBase2
+    {
+    public:  // Constructors and destructor
+    
+        /**
+        * Destructor.
+        */
+        virtual ~CSyncMLNotifierBase();
+
+
+    protected:  // New functions
+        
+        /**
+        * Used in asynchronous notifier launch to store received parameters 
+        * into members variables and make needed initializations.        
+        * @since Series 60 3.0
+        * @param aBuffer A buffer containing received parameters
+        * @param aReturnVal The return value to be passed back.
+        * @param aMessage Should be completed when the notifier is deactivated.
+        * @return None.
+        */
+        virtual void GetParamsL(const TDesC8& aBuffer, 
+                                      TInt aReplySlot, 
+                                const RMessagePtr2& aMessage) = 0;
+
+        /**
+        * A utility function for requesting the activation of lights.
+        * @since Series 60 3.0
+        * @param None.
+        * @return None.
+        */
+        void TurnLightsOn();
+
+        /**
+        * A utility function for checking whether autolock is on.
+        * @since Series 60 3.0
+        * @param None.
+        * @return A boolean according to autolock state.
+        */
+        TBool AutoLockOnL();
+
+		/**
+		* A function for checking the status of Apps key.
+        * @since Series 60 3.0
+		* @param aEnable A Boolean according to Apps key status
+		* @return None.
+		*/
+		void SuppressAppSwitching( TBool aEnable );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        virtual void ConstructL();
+
+    protected:  // Functions from base classes
+
+        /**
+        * From CActive Gets called when a request completes.
+        * @param None.
+        * @return None.
+        */
+        virtual void RunL() = 0;
+
+        /**
+        * From CActive Gets called when a leave occurres in RunL.
+        * @param aError Symbian OS errorcode.
+        * @return None.
+        */
+        virtual TInt RunError( TInt aError );
+
+        /**
+        * From MEikSrvNotifierBase2 Called when a notifier is first loaded 
+        * to allow any initial construction that is required.
+        * @param None.
+        * @return A structure containing priority and channel info.
+        */
+        virtual TNotifierInfo RegisterL() = 0;
+        
+        /**
+        * From MEikSrvNotifierBase2 The notifier has been deactivated 
+        * so resources can be freed and outstanding messages completed.
+        * @param None.
+        * @return None.
+        */
+        virtual void Cancel();
+
+    protected:
+
+        /**
+        * C++ default constructor.
+        */
+        CSyncMLNotifierBase();
+
+    private: // Functions from base classes        
+        
+        /**
+        * From MEikSrvNotifierBase2 Called when all resources allocated 
+        * by notifiers should be freed.
+        * @param None.
+        * @return None.
+        */
+        virtual void Release();
+
+        /**
+        * From MEikSrvNotifierBase2 Return the priority a notifier takes 
+        * and the channels it acts on.
+        * @param None.
+        * @return A structure containing priority and channel info.
+        */
+        virtual TNotifierInfo Info() const;
+
+        /**
+        * From MEikSrvNotifierBase2 Synchronic notifier launch.        
+        * @param aBuffer Received parameter data.
+        * @return A pointer to return value.
+        */
+        virtual TPtrC8 StartL( const TDesC8& aBuffer );
+        
+        /**
+        * From MEikSrvNotifierBase2 Asynchronic notifier launch.
+        * @param aBuffer A buffer containing received parameters
+        * @param aReturnVal The return value to be passed back.
+        * @param aMessage Should be completed when the notifier is deactivated.
+        * @return A pointer to return value.
+        */
+        virtual void StartL( const TDesC8& aBuffer,
+                                   TInt aReplySlot,
+                             const RMessagePtr2& aMessage );
+        
+        /**
+        * From MEikSrvNotifierBase2 Updates a currently active notifier.
+        * @param aBuffer The updated data.
+        * @return A pointer to return value.
+        */
+        virtual TPtrC8 UpdateL( const TDesC8& aBuffer );       
+
+        /**
+        * From CActive Gets called when a request is cancelled.
+        * @param None.
+        * @return None.
+        */
+        virtual void DoCancel();   
+		
+    protected:  // Data
+        // Received message
+        RMessagePtr2    iMessage;
+        
+        // Reply slot
+        TInt            iReplySlot;
+
+        // Flag for releasing messages
+        TBool           iNeedToCompleteMessage;
+        
+        // Notifier parameters structure
+        TNotifierInfo   iInfo;
+        
+        // Local eikonenv
+        CEikonEnv*      iEikEnv;
+
+        // Apps key status 
+        TBool           iAppsKeyBlocked;
+
+        // Flag for eikon env.
+        TInt            iResourceFileFlag;
+    };
+
+#endif      // CSYNCMLNOTIFIERBASE_H
+            
+// End of File