diff -r b183ec05bd8c -r 19bba8228ff0 syncmlfw/syncmlnotifier/inc/SyncMLNotifierBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syncmlfw/syncmlnotifier/inc/SyncMLNotifierBase.h Wed Sep 01 12:27:42 2010 +0100 @@ -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 + +// 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