diff -r 000000000000 -r c53acadfccc6 contextengine/plugins/calendarplugin/inc/CalendarContextPlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contextengine/plugins/calendarplugin/inc/CalendarContextPlugin.h Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,150 @@ +/* +* Copyright (c) 2007-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: +* +*/ + +#ifndef __CCALENDARCONTEXTPLUGIN_H__ +#define __CCALENDARCONTEXTPLUGIN_H__ + +// INCLUDES +#include +#include + +#include +#include "mdeharvestersession.h" + +// CONSTANTS + + +// FORWARD DECLARATIONS +class CCalInstanceView; +class CCalEntry; +class CCalSession; + +const TInt KInitRetryTimeout = 5000000; //5 sec +const TInt KMaxRetryCount = 6; // retry for up to 30 sec + +// CLASS DECLARATION =========================================================== + +/** +* Main class of the plugin. +*/ +class CCalendarContextPlugin : public CContextPlugin, + public MMdESessionObserver, + public MCalProgressCallBack + { + public: + /** + * Static constructor + * @return - pointer to the new object + */ + static CCalendarContextPlugin* NewL(); + + /** + * Destructor + */ + virtual ~CCalendarContextPlugin(); + + // CContextPlugin functions + void Init( MContextPluginObserver& aObserver ); + void ContextSnapshot( MContextPluginObserver& aObserver, + CHarvesterData& aHD ); + void ContextSnapshot( MContextPluginObserver& aObserver, + RPointerArray& aHDArray ); + + void SetMdeSession( CMdESession& aSession ); + + // MMdESessionObserver functions, not used + virtual void HandleSessionOpened( CMdESession& aSession, TInt aError ); + virtual void HandleSessionError( CMdESession& aSession, TInt aError ); + + // MCalProgressCallBack functions, not used + virtual void Progress( TInt aPercentageCompleted ); + virtual void Completed( TInt aError ); + virtual TBool NotifyProgress(); + + private: + /** + * C++ constructor + */ + CCalendarContextPlugin(); + + /** + * 2nd phase construction + */ + void ConstructL(); // second-phase constructor + + /** + * Adds the calendar metadata to the MdEObject + * @param aMdEObject - the CMdEObject to add the metadata to + */ + void AddMetaDataL( CMdEObject& aMdEObject ) const; + + + /** + * Gets a time property value from MDS + * @param aNameSpace - reference to the namespace + * @param aProp - reference to the property name + * @param aMdEObject - reference to the CMdEObject to be examined + * @return - value of the property, leaves if it does not exist + */ + TTime GetTimeMdEPropL( const TDesC& aNameSpace, + const TDesC& aProp, + CMdEObject& aMdEObject ) const; + + /** + * Gets a text property value from MDS + * @param aNameSpace - reference to the namespace + * @param aProp - reference to the property name + * @param aMdEObject - reference to the CMdEObject to be examined + * @return - value of the property, NULL if it does not exist + */ + HBufC* GetTextMdEPropLC( const TDesC& aNameSpace, + const TDesC& aProp, + CMdEObject& aMdEObject ) const; + + + /** + * Initialise calendar serve instance + * + * @since S60 v5.0 + * @param aRetry - is retry initialisation + */ + void OpenViewL(TBool aRetry = EFalse); + + /** + * Callback for initialisation retry + * + * @since S60 v5.0 + */ + static TInt InitRetryCallback(TAny* aAny); + + /** + * Starts initialisation retry + * + * @since S60 v5.0 + */ + void StartRetryL(); + + private: + + CCalInstanceView* iCalInstanceView; ///< owned + CMdESession* iMdeSession; ///< NOT owned + CCalSession* iCalSession; ///< owned + TBool iCalInstanceViewCompleted; + CPeriodic* iInitTimer; + TInt iRetryCount; + }; +#endif // __CCALENDARCONTEXTPLUGIN_H__