harvesterplugins/notes/inc/notesplugin.h
changeset 0 ccd0fd43f247
child 15 df6898e696c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/harvesterplugins/notes/inc/notesplugin.h	Mon Apr 19 14:40:05 2010 +0300
@@ -0,0 +1,137 @@
+/*
+* 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 CNOTESPLUGIN_H
+#define CNOTESPLUGIN_H
+
+#include <e32base.h>
+#include <cindexingplugin.h>
+#include <calchangecallback.h>
+#include <calcommon.h> // TCalLocalUid
+
+#include <common.h>
+#include "delayedcallback.h"
+
+// FORWARD DECLARATIONS
+class CCalSession;
+class CCalEntryView;
+class CCPixIndexer;
+class CCalInstanceView;
+class CCalInstance;
+
+#define KNotesDllUid 0x2001A9D8
+
+class CNotesPlugin : public CIndexingPlugin, public MDelayedCallbackObserver, public MCalChangeCallBack2
+{
+public: // Constructors and destructor
+    /*
+     * NewL
+     * @return instance of Notes plugin
+     */
+	static CNotesPlugin* NewL();
+	/*
+     * NewLC
+     * @return instance of Notes plugin
+     */
+	static CNotesPlugin* NewLC();
+	/*
+     * Destructor
+     */
+	virtual ~CNotesPlugin();
+
+public: // From CIndexingPlugin
+	void StartPluginL();
+	void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
+	
+public:	// From MCalChangeCallBack2
+	
+	void CalChangeNotification( RArray< TCalChangeEntry >& aChangeItems );	
+	
+public: // From MDelayedCallbackObserver
+
+    void DelayedCallbackL(TInt aCode);
+    void DelayedError(TInt aError);
+    
+private: 
+    /*
+     * @description Prepares the CPix action to be done.
+     * @param TCalChangeEntry changedEntry details of the modified calendar entry
+     * Leaves in case of errors.
+     */
+	void HandleNoteChangedEntryL(const TCalChangeEntry& changedEntry);
+	
+	/*
+     * @description Prepares the search document and update the CPix engine 
+     * according to the passed aActionType.
+     * @param TCalLocalUid aLocalUid uid of the cal entry
+     * @param TCPixActionType aActionType Add/update/remove option
+     * Leaves in case of errors.
+     */
+	void CreateNoteEntryL( const TCalLocalUid& aLocalUid, TCPixActionType aActionType );
+	/*
+     * @description Reads the default start and end times from the config file.
+     * @param TTime& aStartTime   Start time for creating calendar views
+     * @param TTime& aEndTime  End time for creating calendar views   
+     * Leaves in case of errors.
+     */
+	void InitTimeValuesL( TTime& aStartTime, TTime& aEndTime );
+
+private: // Constructors
+	
+	/**
+	 * Default C++ constructor.
+	 */
+	CNotesPlugin();
+	
+	/**
+	 * Symbian 2nd phase constructor.
+	 */
+	void ConstructL();
+
+private:
+	
+	// The asynchronizer .owned
+	CDelayedCallback* iAsynchronizer;	
+	
+	// CPix database .owned
+    CCPixIndexer* iIndexer;
+    
+	// Calendar session .owned
+	CCalSession* iSession;
+	
+	// Calendar entry view to fetch the details of Note entry for given LocalUid .owned
+	CCalEntryView* iEntryView;
+	
+	//Calinstance view to retrive notes .owned
+	CCalInstanceView* iNotesInstanceView;
+	
+	//Array of calinstances of Notes .owned
+	RPointerArray<CCalInstance> iNotesInstanceArray;
+	
+	//Notes count
+	TInt iNoteCount;
+	
+#ifdef __PERFORMANCE_DATA
+    TTime iStartTime;
+    TTime iCompleteTime;
+    void UpdatePerformaceDataL();
+#endif
+	
+};
+
+#endif // CNOTESPLUGIN_H