diff -r 000000000000 -r ccd0fd43f247 harvesterplugins/calendar/inc/ccalendarplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/harvesterplugins/calendar/inc/ccalendarplugin.h Mon Apr 19 14:40:05 2010 +0300 @@ -0,0 +1,131 @@ +/* +* Copyright (c) 2010 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 CCALENDARPLUGIN_H +#define CCALENDARPLUGIN_H + +#include +#include +#include +#include +#include // TCalLocalUid + +#include +#include "delayedcallback.h" + +// FORWARD DECLARATIONS +class CCalSession; +class CCalIter; +class CCalEntryView; +class CCPixIndexer; + + +/** Field names */ +_LIT(KCalendarSummaryField, "Summary"); +_LIT(KCalendarDescriptionField, "Description"); +_LIT(KCalendarLocationField, "Location"); +_LIT(KCalendarStartTimeField, "StartTime"); +_LIT(KCalendarEndTimeField, "EndTime"); +_LIT(KCalendarAttendeesField, "Attendees"); + +class CCalendarPlugin : public CIndexingPlugin, public MDelayedCallbackObserver, public MCalProgressCallBack, public MCalChangeCallBack2 +{ +public: // Constructors and destructor + + static CCalendarPlugin* NewL(); + static CCalendarPlugin* NewLC(); + virtual ~CCalendarPlugin(); + +public: // From CIndexingPlugin + void StartPluginL(); + void StartHarvestingL(const TDesC& aQualifiedBaseAppClass); + +public: // From MCalProgressCallBack + + /** Progress callback. + This calls the observing class with the percentage complete of the current operation. + @param aPercentageCompleted The percentage complete. */ + void Progress(TInt aPercentageCompleted); + + /** Progress callback. + This calls the observing class when the current operation is finished. + @param aError The error if the operation failed, or KErrNone if successful. */ + void Completed(TInt aError); + + /** Asks the observing class whether progress callbacks are required. + @return If the observing class returns EFalse, then the Progress() function will not be called. */ + TBool NotifyProgress(); + +public: // From MCalChangeCallBack2 + + void CalChangeNotification( RArray< TCalChangeEntry >& aChangeItems ); + +public: // From MDelayedCallbackObserver + + void DelayedCallbackL(TInt aCode); + void DelayedError(TInt aError); + +private: // New functions + + void HandleChangedEntryL(const TCalChangeEntry& changedEntry); + + void CreateEntryL( const TCalLocalUid& aLocalUid, TCPixActionType aActionType ); + +private: // Constructors + + /** + * Default C++ constructor. + */ + CCalendarPlugin(); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + +private: + + /** The asynchronizer */ + CDelayedCallback* iAsynchronizer; + + // CPix database + CCPixIndexer* iIndexer; + + /** Calendar session */ + CCalSession* iSession; + + /** Calendar iterator */ + CCalIter* iCalIterator; + + /** Calendar entry view */ + CCalEntryView* iEntryView; + + /** Are we positioned at first entry? */ + TBool iFirstEntry; + + // Start harvesting + TBool iStartHarvesting; + +#ifdef __PERFORMANCE_DATA + TTime iStartTime; + TTime iCompleteTime; + void UpdatePerformaceDataL(); + void UpdatePerformaceDataL(TCPixActionType); +#endif +}; + +#endif // CCALENDARPLUGIN_H