201041 default
authorhgs
Fri, 15 Oct 2010 11:45:38 +0530
changeset 27 7a8855317cbd
parent 26 367228f82b66
201041
harvesterplugins/applications/inc/applicationsplugin.h
harvesterplugins/applications/src/applicationsplugin.cpp
harvesterplugins/calendar/group/calendarplugin.mmp
harvesterplugins/calendar/inc/ccalendarplugin.h
harvesterplugins/calendar/src/ccalendarplugin.cpp
harvesterplugins/contacts/group/contactsplugin.mmp
harvesterplugins/contacts/inc/ccontactsplugin.h
harvesterplugins/contacts/src/ccontactsplugin.cpp
harvesterplugins/file/group/fileplugin.mmp
harvesterplugins/file/inc/cfileplugin.h
harvesterplugins/file/src/cfileplugin.cpp
harvesterplugins/file/src/cfolderrenamedharvester.cpp
harvesterplugins/media/audio/inc/mediaplugin.h
harvesterplugins/media/audio/src/mediaplugin.cpp
harvesterplugins/media/image/group/bld.inf
harvesterplugins/media/image/inc/imageplugin.h
harvesterplugins/media/image/src/imageplugin.cpp
harvesterplugins/media/mediautils/inc/mdeobjectqueuemanager.h
harvesterplugins/media/mediautils/src/mdeobjectqueuemanager.cpp
harvesterplugins/media/video/inc/videoplugin.h
harvesterplugins/media/video/src/videoplugin.cpp
harvesterplugins/messaging/email/inc/cemailplugin.h
harvesterplugins/messaging/email/src/cemailplugin.cpp
harvesterplugins/messaging/smsmms/group/messageplugin.mmp
harvesterplugins/messaging/smsmms/inc/cmessagedatahandler.h
harvesterplugins/messaging/smsmms/inc/cmessageplugin.h
harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp
harvesterplugins/messaging/smsmms/src/cmessageplugin.cpp
harvesterplugins/notes/group/notesplugin.mmp
harvesterplugins/notes/inc/notesplugin.h
harvesterplugins/notes/src/notesplugin.cpp
onlinesearchproviders/isproviderdbmanager/isproviderdbmanager.pro
searchui/runtimeproviders/searchruntimeprovider/searchruntimeprovider.pro
searchui/runtimeproviders/searchruntimeprovider/src/searchruntime.cpp
searchui/searchapplication/inc/searchapplication.h
searchui/searchapplication/src/searchapplication.cpp
searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h
searchui/stateproviders/searchstateprovider/searchstateprovider.pro
searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp
searchui/stateproviders/searchstateprovider/src/settingswidget.cpp
searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro
--- a/harvesterplugins/applications/inc/applicationsplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/applications/inc/applicationsplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -60,6 +60,7 @@
 	virtual void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
 	void PausePluginL();
 	void ResumePluginL();
+	void SaveL();
 	
 public: // From MDelayedCallbackObserver
     void DelayedCallbackL(TInt aCode);
--- a/harvesterplugins/applications/src/applicationsplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/applications/src/applicationsplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -371,6 +371,11 @@
     OstTraceFunctionExit0( CAPPLICATIONSPLUGIN_RESUMEPLUGINL_EXIT );
     }
 
+void CApplicationsPlugin::SaveL()
+    {
+    
+    }
+
 #ifdef __PERFORMANCE_DATA
 void CApplicationsPlugin::UpdatePerformaceDataL()
     {
--- a/harvesterplugins/calendar/group/calendarplugin.mmp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/calendar/group/calendarplugin.mmp	Fri Oct 15 11:45:38 2010 +0530
@@ -43,6 +43,8 @@
 LIBRARY       euser.lib
 LIBRARY       ecom.lib
 LIBRARY       efsrv.lib
+LIBRARY		  estor.lib
+LIBRARY 	  bafl.lib
 LIBRARY       calinterimapi.lib
 LIBRARY       cpixharvesterplugininterface.lib
 LIBRARY       cpixsearchclient.lib
--- a/harvesterplugins/calendar/inc/ccalendarplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/calendar/inc/ccalendarplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -71,6 +71,7 @@
 	void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
 	void PausePluginL();
 	void ResumePluginL();
+	void SaveL();
 	
 public: // From MCalProgressCallBack
 
@@ -151,9 +152,16 @@
 	 * Symbian 2nd phase constructor.
 	 */
 	void ConstructL();
+	
+	void LoadL();
 
 private:
 	
+	/* File server connection */ 
+    RFs iFs;
+    /* Path to the queued records file */
+    TFileName iFilePath;
+    
 	/** The asynchronizer */
 	CDelayedCallback* iAsynchronizer;	
 	
--- a/harvesterplugins/calendar/src/ccalendarplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/calendar/src/ccalendarplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -21,7 +21,8 @@
 #include <csearchdocument.h>
 
 #include <ccpixindexer.h>
-#include <e32base.h> 
+#include <s32file.h>
+#include <BAUTILS.H>
 #include <calsession.h>
 #include <calentry.h>
 #include <caliterator.h>
@@ -40,6 +41,7 @@
 
 /** The delay between harvesting chunks. */
 const TInt KHarvestingDelay = 2000;
+_LIT(KManagerFileName, "CalendarStore.temp");
 _LIT(KCalendarTimeFormat,"%04d %02d %02d %02d %02d");
 
 _LIT(KExcerptTimeFormat,"%04d/%02d/%02d %02d:%02d");
@@ -99,6 +101,8 @@
 		iSession->StopChangeNotification();
 		}
 	delete iSession;
+	
+	iFs.Close();
 	}
 	
 // ---------------------------------------------------------------------------
@@ -118,6 +122,15 @@
 	    }
 	iCalIterator = CCalIter::NewL( *iSession );
 	iEntryView = CCalEntryView::NewL( *iSession, *this );
+
+    User::LeaveIfError(iFs.Connect());    
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    
 	}
 
 // ---------------------------------------------------------------------------
@@ -145,7 +158,10 @@
 	endTimeCal.SetTimeUtcL( endTime );
 	CCalChangeNotificationFilter* filter = CCalChangeNotificationFilter::NewL( MCalChangeCallBack2::EChangeEntryAll, ETrue, CalCommon::TCalTimeRange( startTimeCal, endTimeCal ) );
 	iSession->StartChangeNotification( *this, *filter );
-	delete filter;
+	delete filter;	
+    
+    if( BaflUtils::FileExists(iFs,iFilePath) )
+        LoadL();
 	}	
 
 // ---------------------------------------------------------------------------
@@ -594,8 +610,7 @@
 void CCalendarPlugin::ResumePluginL()
     {
     OstTraceFunctionEntry0( CCALENDARPLUGIN_RESUMEPLUGINL_ENTRY );
-    iIndexState = ETrue;
-        
+    iIndexState = ETrue;    
     if( iHarvestState == EHarvesterStartHarvest )
         {
         if(iAsynchronizer->CallbackPending())
@@ -640,7 +655,7 @@
 void CCalendarPlugin::IndexQueuedItems()
     {
     OstTraceFunctionEntry0( CCALENDARPLUGIN_INDEXQUEUEDITEMS_ENTRY );
-    while (iJobQueue.Count()>0)
+    while (iJobQueue.Count()>0 && iIndexState )
         {
         TRecord entry = iJobQueue[0];        
         //Let the indexer handle this object TRAP it as it can leave
@@ -650,8 +665,68 @@
             iJobQueue.Remove(0);
             }
         }
+    
+    if(iJobQueue.Count() <= 0)
+        {
+        //Check for temp file, it exists delete
+        if( BaflUtils::FileExists( iFs, iFilePath ))
+              BaflUtils::DeleteFile( iFs, iFilePath );
+            
+        }
     OstTraceFunctionExit0( CCALENDARPLUGIN_INDEXQUEUEDITEMS_EXIT );
     }
+
+void CCalendarPlugin::LoadL()
+    {
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Open(iFs, iFilePath, EFileRead));
+    CleanupClosePushL(file);
+    RFileReadStream rd(file);
+    rd.PushL();
+    
+    // Read harvester count
+    TInt count = rd.ReadInt32L();
+    // Read the harvesters
+    for (TInt i=0; i<count; i++)
+        {
+        TRecord record;
+        record.iLocalUid = rd.ReadUint32L();
+        record.iActionType = static_cast<TCPixActionType> ( rd.ReadInt16L());        
+        OverWriteOrAddToQueueL(record.iLocalUid, record.iActionType);
+        }
+    
+    if( count > 0)
+        IndexQueuedItems();
+    // Cleanup
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
+void CCalendarPlugin::SaveL()
+    {
+    if(iJobQueue.Count() <= 0)
+        return;
+    
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Replace(iFs, iFilePath, EFileWrite));
+    CleanupClosePushL(file);
+    
+    RFileWriteStream wr(file);
+    wr.PushL();
+    
+    // Write harvester count
+    wr.WriteInt32L(iJobQueue.Count());
+    
+    for (TInt i=0; i<iJobQueue.Count(); i++)    
+        {
+        wr.WriteUint32L(iJobQueue[i].iLocalUid);
+        wr.WriteInt16L(iJobQueue[i].iActionType);        
+        }    
+    // Commit and cleanup
+    wr.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
 // ---------------------------------------------------------------------------
 // CCalendarPlugin::UpdatePerformaceDataL
 // ---------------------------------------------------------------------------
--- a/harvesterplugins/contacts/group/contactsplugin.mmp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/contacts/group/contactsplugin.mmp	Fri Oct 15 11:45:38 2010 +0530
@@ -42,6 +42,8 @@
 LIBRARY       euser.lib
 LIBRARY       ecom.lib
 LIBRARY       efsrv.lib
+LIBRARY		  estor.lib
+LIBRARY 	  bafl.lib
 LIBRARY       cntmodel.lib
 LIBRARY       cpixharvesterplugininterface.lib
 LIBRARY       cpixsearchclient.lib
--- a/harvesterplugins/contacts/inc/ccontactsplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/contacts/inc/ccontactsplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -99,6 +99,7 @@
 	void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
 	void PausePluginL();
 	void ResumePluginL();
+	void SaveL();
 	/**
 	 * From MContactDbObserver, HandleDatabaseEventL.
 	 */
@@ -143,9 +144,15 @@
 	void OverWriteOrAddToQueueL(TRecord& aEntry);
 	
 	void IndexQueuedItems();
+	
+	void LoadL();	
 
 private:
 	
+	/* File server connection */ 
+	RFs iFs;
+	/* Path to the queued records file */
+	TFileName iFilePath;	    
 	/** Contact change notifier */
 	CContactChangeNotifier* iChangeNotifier;
 	/** Sorted contact id array */
--- a/harvesterplugins/contacts/src/ccontactsplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/contacts/src/ccontactsplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -22,6 +22,8 @@
 
 #include <ccpixindexer.h>
 #include <e32base.h>
+#include <s32file.h>
+#include <BAUTILS.H>
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "ccontactspluginTraces.h"
@@ -40,7 +42,7 @@
 
 _LIT(KExcerptDelimiter, " ");
 _LIT(KTimeFormat, "%D%N%Y%1 %2 %3"); //Date, Month name and Year format
- 
+_LIT(KManagerFileName, "ContactStore.temp");
 // -----------------------------------------------------------------------------
 // CContactsPlugin::NewL()
 // -----------------------------------------------------------------------------
@@ -95,7 +97,8 @@
                 delete iHLDisplayExcerpt;
                 iHLDisplayExcerpt = NULL;
                 }
-//#endif            
+//#endif
+    iFs.Close();    
 	}
 	
 // -----------------------------------------------------------------------------
@@ -103,7 +106,8 @@
 // -----------------------------------------------------------------------------
 //
 void CContactsPlugin::ConstructL()
-	{
+	{    
+    
 	iDatabase = CContactDatabase::OpenL();
     iIndexState = ETrue;
 	// This pointer is valid until a change is made to the database or until 
@@ -112,7 +116,17 @@
 	// array must first be made.
 	iContacts = iDatabase->SortedItemsL();
 
-    iAsynchronizer = CDelayedCallback::NewL( CActive::EPriorityIdle );
+    iAsynchronizer = CDelayedCallback::NewL( CActive::EPriorityIdle );// connect to file system
+    
+    User::LeaveIfError(iFs.Connect());    
+    // Load the configuration
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    
 	}
 
 // -----------------------------------------------------------------------------
@@ -133,6 +147,9 @@
 
 	// Start monitoring when plugin is started
 	iChangeNotifier = CContactChangeNotifier::NewL(*iDatabase, this);	
+    
+    if( BaflUtils::FileExists(iFs,iFilePath) )
+        LoadL();
 	}
 
 // -----------------------------------------------------------------------------
@@ -640,7 +657,8 @@
             if (iJobQueue[i].iContactId == aEntry.iContactId)
             {
                 // Older version found
-                iJobQueue[i] = aEntry;
+                iJobQueue[i].iContactId = aEntry.iContactId;
+                iJobQueue[i].iActionType = aEntry.iActionType;
                 OstTraceFunctionExit0( CCONTACTSPLUGIN_OVERWRITEORADDTOQUEUEL_EXIT );
                 return;
             }
@@ -653,7 +671,7 @@
 void CContactsPlugin::IndexQueuedItems()
     {
     OstTraceFunctionEntry0( CCONTACTSPLUGIN_INDEXQUEUEDITEMS_ENTRY );
-    while (iJobQueue.Count()>0)
+    while (iJobQueue.Count()>0 && iIndexState )
         {
         TRecord entry = iJobQueue[0];        
         //Let the indexer handle this object TRAP it as it can leave
@@ -663,8 +681,67 @@
             iJobQueue.Remove(0);
             }
         }
+    
+    if( iJobQueue.Count() == 0 )
+        {
+        //Check for temp file, it exists delete
+        if( BaflUtils::FileExists( iFs, iFilePath ))
+                BaflUtils::DeleteFile( iFs, iFilePath );
+        }
     OstTraceFunctionExit0( CCONTACTSPLUGIN_INDEXQUEUEDITEMS_EXIT );
     }
+
+void CContactsPlugin::LoadL()
+    {
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Open(iFs, iFilePath, EFileRead));
+    CleanupClosePushL(file);
+    RFileReadStream rd(file);
+    rd.PushL();
+    
+    // Read harvester count
+    TInt count = rd.ReadInt32L();
+    // Read the harvesters
+    for (TInt i=0; i<count; i++)
+        {
+        TRecord record;
+        record.iContactId = rd.ReadInt32L();
+        record.iActionType = static_cast<TCPixActionType> ( rd.ReadInt16L());        
+        OverWriteOrAddToQueueL(record);
+        }
+    
+    if( count > 0)
+        IndexQueuedItems();
+    // Cleanup
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
+void CContactsPlugin::SaveL()
+    { 
+    if (iJobQueue.Count() <= 0)
+        return;
+    
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Replace(iFs, iFilePath, EFileWrite));
+    CleanupClosePushL(file);
+    
+    RFileWriteStream wr(file);
+    wr.PushL();
+    
+    // Write harvester count
+    wr.WriteInt32L(iJobQueue.Count());
+    
+    for (TInt i=0; i<iJobQueue.Count(); i++)    
+        {
+        wr.WriteInt32L(iJobQueue[i].iContactId);
+        wr.WriteInt16L(iJobQueue[i].iActionType);        
+        }    
+    // Commit and cleanup
+    wr.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
 // ---------------------------------------------------------------------------
 // CContactsPlugin::UpdatePerformaceDataL
 // ---------------------------------------------------------------------------
--- a/harvesterplugins/file/group/fileplugin.mmp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/file/group/fileplugin.mmp	Fri Oct 15 11:45:38 2010 +0530
@@ -47,6 +47,8 @@
 LIBRARY       euser.lib
 LIBRARY       ecom.lib
 LIBRARY       efsrv.lib
+LIBRARY		  estor.lib
+LIBRARY 	  bafl.lib
 LIBRARY       cpixharvesterplugininterface.lib
 LIBRARY       cpixsearchclient.lib
 LIBRARY       platformenv.lib // Path info
--- a/harvesterplugins/file/inc/cfileplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/file/inc/cfileplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -20,7 +20,8 @@
 #define CFILEPLUGIN_H
 
 #include <f32file.h> // TDriveNumber
-
+#include <s32file.h>
+#include <BAUTILS.H>
 #include <cindexingplugin.h>
 #include <common.h>
 #include <rsearchserversession.h>
@@ -64,6 +65,7 @@
 	void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
 	void PausePluginL();
 	void ResumePluginL();
+	void SaveL();
 	/**
 	 * CreateContentIndexItemL sends a file for indexing contents
 	 * @aFilename full path and filename of the file to be indexed
@@ -158,6 +160,8 @@
 	void AddToQueueL(const TDesC& aFilename, TCPixActionType aActionType, TBool aIsFolder);
 	            
 	void IndexQueuedItems();
+	
+	void LoadL();
 
 protected:
 	CFilePlugin();
@@ -174,7 +178,10 @@
     RArray<TRecord> iJobQueue;
 
     // File system session
-    RFs iFs;
+    RFs iFs;    
+    
+    /* Path to the queued records file */
+    TFileName iFilePath;
 
     // Harvester
     CFileHarvester* iHarvester;
--- a/harvesterplugins/file/src/cfileplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/file/src/cfileplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -56,6 +56,7 @@
 _LIT(KMimeTypeFile, FILE_MIMETYPE);
 _LIT(KMimeTypeFolder , FOLDER_MIMETYPE);
 _LIT(KMimeTypeField , CPIX_MIMETYPE_FIELD);
+_LIT(KManagerFileName, "FilesStore.temp");
 
 #define CONSTANT_TO_PTR16(ptr, c) TPtrC16 ptr; ptr.Set((const TUint16*)c,User::StringLength(c) );
 
@@ -221,7 +222,18 @@
 
     iHarvester = CFileHarvester::NewL(*this, iFs);
     iMonitor = CFileMonitor::NewL(*this, &iFs);
-    iMmcMonitor = CMMCMonitor::NewL(*this, &iFs);
+    iMmcMonitor = CMMCMonitor::NewL(*this, &iFs);    
+    
+    // connect to file system
+    User::LeaveIfError(iFs.Connect());    
+    // Load the configuration
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    
     }
 
 void CFilePlugin::StartPluginL()
@@ -266,6 +278,9 @@
     			}
             }
         }
+    
+    if( BaflUtils::FileExists(iFs,iFilePath) )
+            LoadL();
 }
 
 void CFilePlugin::MountL(TDriveNumber aMedia, TBool aForceReharvest)
@@ -687,11 +702,9 @@
     }
 
 void CFilePlugin::RemoveFileDatabaseL(TDriveNumber aDrive)
-    {
-    RFs aFs;
-    User::LeaveIfError( aFs.Connect() );
+    {    
     TChar drive;
-    TInt err = aFs.DriveToChar((TDriveNumber)aDrive,drive);
+    TInt err = iFs.DriveToChar((TDriveNumber)aDrive,drive);
     if ( err == KErrNone )
         {
         TBuf<KMaxFileName> folderpath;
@@ -700,12 +713,11 @@
         folderpath.Append(KCPixSearchServerPrivateDirectory);
         folderpath.Append(KIndexingDBPath);
         folderpath.Append(KfileDBPath);
-        CFileMan* FileMan = CFileMan::NewL(aFs);
+        CFileMan* FileMan = CFileMan::NewL(iFs);
         if ( FileMan )
             FileMan->Delete( folderpath );
         delete FileMan;
         }
-    aFs.Close();
     }
 
 void CFilePlugin::PausePluginL()
@@ -771,9 +783,73 @@
             }        
         iJobQueue.Remove(0);
         }
+    
+    if(iJobQueue.Count() <= 0)
+        {
+        //Check for temp file, it exists delete
+        if( BaflUtils::FileExists( iFs, iFilePath ))
+            BaflUtils::DeleteFile( iFs, iFilePath );
+        }
+    
     OstTraceFunctionExit0( CFILEPLUGIN_INDEXQUEUEDITEMS_EXIT );
     }
 
+void CFilePlugin::LoadL()
+    {
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Open(iFs, iFilePath, EFileRead));
+    CleanupClosePushL(file);
+    RFileReadStream rd(file);
+    rd.PushL();    
+    
+    // Read harvester count
+    TInt count = rd.ReadInt32L();
+    // Read the harvesters
+    for (TInt i=0; i<count; i++)
+        {
+        TRecord record;
+        TInt length = rd.ReadInt32L();
+        rd.ReadL(record.iUri, length);        
+        record.iActionType = static_cast<TCPixActionType> ( rd.ReadInt16L());
+        record.isFolder = rd.ReadInt8L();
+        AddToQueueL(record.iUri, record.iActionType, record.isFolder);
+        }
+    
+    if( count > 0)
+        IndexQueuedItems();
+    // Cleanup
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
+void CFilePlugin::SaveL()
+    {
+    if (iJobQueue.Count() <= 0)
+         return;
+    
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Replace(iFs, iFilePath, EFileWrite));
+    CleanupClosePushL(file);
+    
+    RFileWriteStream wr(file);
+    wr.PushL();
+    
+    // Write harvester count
+    wr.WriteInt32L(iJobQueue.Count());
+    
+    for (TInt i=0; i<iJobQueue.Count(); i++)    
+        {
+        wr.WriteInt32L(iJobQueue[i].iUri.Length());
+        wr.WriteL(iJobQueue[i].iUri);
+        wr.WriteInt16L(iJobQueue[i].iActionType);
+        wr.WriteInt8L(iJobQueue[i].isFolder);
+        }    
+    // Commit and cleanup
+    wr.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
 #ifdef __PERFORMANCE_DATA
 void CFilePlugin::UpdatePerformaceDataL(TDriveNumber aDriveNumber)
     {
--- a/harvesterplugins/file/src/cfolderrenamedharvester.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/file/src/cfolderrenamedharvester.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -155,6 +155,13 @@
     {
     delete iDir;
     delete iDirscan;
+    for ( int i =0; i < iRenamedFolders.Count(); i++ )
+        {
+        CFolderRenamedItem* item = iRenamedFolders[0];
+        iRenamedFolders.Remove(0);
+        delete item;
+        item = NULL;
+        }
     iRenamedFolders.ResetAndDestroy();
     iRenamedFolders.Close();
     Cancel();
@@ -413,6 +420,13 @@
 	{
     OstTrace1( TRACE_NORMAL, CFOLDERRENAMEDHARVESTER_RUNERROR, "CFolderRenamedHarvester::RunError;aError=%d", aError );
     CPIXLOGSTRING2("CFolderRenamedHarvester::RunError - aError: %d", aError );
+    for ( int i =0; i < iRenamedFolders.Count(); i++ )
+        {
+        CFolderRenamedItem* item = iRenamedFolders[0];
+        iRenamedFolders.Remove(0);
+        delete item;
+        item = NULL;
+        }
     iRenamedFolders.ResetAndDestroy();
 	iHarvestState = EFolderRenamedIdleState;
 	return KErrNone;
--- a/harvesterplugins/media/audio/inc/mediaplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/audio/inc/mediaplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -82,6 +82,7 @@
     void StartHarvestingL(const TDesC & aQualifiedBaseAppClass);
     void PausePluginL();
     void ResumePluginL();
+    void SaveL();
     /*
      * HandleMdeItemL callback from MMediaObjectHandler
      * @param TItemId aObjId object Id
@@ -113,7 +114,13 @@
      */
     void ConstructL();
     
+    void LoadL();
+    
 private:
+    /* File server connection */ 
+    RFs iFs;
+    /* Path to the queued records file */
+    TFileName iFilePath;
     CCPixIndexer *iIndexer; //Indexer
     CMdeHarvester* iMdeHarvester; //Mde harvester owned
     CMdeObjectQueueManager* iObjectJobQueueManager; //Objectqueue manager owned
--- a/harvesterplugins/media/audio/src/mediaplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/audio/src/mediaplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -19,7 +19,8 @@
 #include "mediaplugin.h"
 
 #include <e32base.h> 
-
+#include <s32file.h>
+#include <bautils.h>
 #include "harvesterserverlogger.h"
 #include "common.h"
 #include "csearchdocument.h"
@@ -41,6 +42,7 @@
 
 //Constants
 _LIT(KPathTrailer, "\\root\\media\\audio");
+_LIT(KManagerFileName, "AudioStore.temp");
 
 //***** MEDAI AUDIO*****
 #define MEDIA_QBASEAPPCLASS   "@0:root media audio"
@@ -53,6 +55,7 @@
 #define DATABASEPATH           "\\root\\media\\audio"
 #define LDATABASEPATH           "\\root\\media\\audio"
 
+
 // -----------------------------------------------------------------------------
 CAudioPlugin* CAudioPlugin::NewL()
 	{
@@ -94,12 +97,23 @@
 	delete iMMcMonitor;
 	delete iDBManager;
 	delete iMdsItem;
+	iFs.Close();
 	}
 	
 // -----------------------------------------------------------------------------
 void CAudioPlugin::ConstructL()
 	{
     iObjectJobQueueManager = CMdeObjectQueueManager::NewL(this);
+    // connect to file system
+    User::LeaveIfError(iFs.Connect());    
+    // Load the configuration
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    iObjectJobQueueManager->SetFilePath(iFilePath);
 	}
 
 // -----------------------------------------------------------------------------
@@ -130,6 +144,8 @@
 	TUid uidOfPlugin = {0x20029AB9};
 	iDBManager = CCPIXMDEDbManager::NewL(uidOfPlugin);
 	iMdsItem = CMDSEntity::NewL();
+	if( BaflUtils::FileExists(iFs,iFilePath) )
+	        LoadL();
 	OstTraceFunctionExit0( CAUDIOPLUGIN_STARTPLUGINL_EXIT );
 	}
 
@@ -334,18 +350,28 @@
 
 void CAudioPlugin::PausePluginL()
     {
-    OstTraceFunctionEntry0( CAUDIOPLUGIN_PAUSEPLUGINL_ENTRY );
-    iObjectJobQueueManager->PauseL();
+    OstTraceFunctionEntry0( CAUDIOPLUGIN_PAUSEPLUGINL_ENTRY );    
+    iObjectJobQueueManager->PauseL();    
     OstTraceFunctionExit0( CAUDIOPLUGIN_PAUSEPLUGINL_EXIT );
     }
 
 void CAudioPlugin::ResumePluginL()
     {
-    OstTraceFunctionEntry0( CAUDIOPLUGIN_RESUMEPLUGINL_ENTRY );
+    OstTraceFunctionEntry0( CAUDIOPLUGIN_RESUMEPLUGINL_ENTRY );    
     iObjectJobQueueManager->ResumeL();
     OstTraceFunctionExit0( CAUDIOPLUGIN_RESUMEPLUGINL_EXIT );
     }
 
+void CAudioPlugin::LoadL()
+    {
+    iObjectJobQueueManager->LoadQueuedItems();    
+    }
+
+void CAudioPlugin::SaveL()
+    {
+    iObjectJobQueueManager->SaveQueuedItems();
+    }
+
 #ifdef __PERFORMANCE_DATA
 void CAudioPlugin::UpdateLogL()
     {
--- a/harvesterplugins/media/image/group/bld.inf	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/image/group/bld.inf	Fri Oct 15 11:45:38 2010 +0530
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
--- a/harvesterplugins/media/image/inc/imageplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/image/inc/imageplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -82,6 +82,7 @@
     void StartHarvestingL(const TDesC & aQualifiedBaseAppClass);
     void PausePluginL();
     void ResumePluginL();
+    void SaveL();
     /*
      * HandleMdeItemL callback from MMediaObjectHandler
      * @param TItemId aObjId object Id
@@ -113,7 +114,13 @@
      */
     void ConstructL();
     
+    void LoadL();
+    
 private:
+    /* File server connection */ 
+    RFs iFs;
+    /* Path to the queued records file */
+    TFileName iFilePath;
     CCPixIndexer *iIndexer; //Indexer
     CMdeHarvester* iMdeHarvester; //Mde harvester owned
     CMdeObjectQueueManager* iObjectJobQueueManager; //Objectqueue manager owned
--- a/harvesterplugins/media/image/src/imageplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/image/src/imageplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -17,7 +17,9 @@
 
 
 #include "imageplugin.h"
-#include <e32base.h> 
+#include <e32base.h>
+#include <s32file.h>
+#include <bautils.h>
 #include "harvesterserverlogger.h"
 #include "common.h"
 #include "csearchdocument.h"
@@ -39,6 +41,7 @@
 
 //Constants
 _LIT(KPathTrailer, "\\root\\media\\image");
+_LIT(KManagerFileName, "ImageStore.temp");
 
 //***** MEDAI AUDIO*****
 #define MEDIA_QBASEAPPCLASS   "@0:root media image"
@@ -92,12 +95,23 @@
 	delete iMMcMonitor;
 	delete iDBManager;
 	delete iMdsItem;
+	iFs.Close();
 	}
 	
 // -----------------------------------------------------------------------------
 void CImagePlugin::ConstructL()
 	{
-    iObjectJobQueueManager = CMdeObjectQueueManager::NewL(this);
+    iObjectJobQueueManager = CMdeObjectQueueManager::NewL(this);    
+    // connect to file system
+    User::LeaveIfError(iFs.Connect());    
+    // Load the configuration
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    iObjectJobQueueManager->SetFilePath(iFilePath);
 	}
 
 // -----------------------------------------------------------------------------
@@ -128,6 +142,8 @@
 	TUid uidOfPlugin = {0x20029ABB};
 	iDBManager = CCPIXMDEDbManager::NewL(uidOfPlugin);
 	iMdsItem = CMDSEntity::NewL();
+	if( BaflUtils::FileExists(iFs,iFilePath) )
+	        LoadL();
 	OstTraceFunctionExit0( CIMAGEPLUGIN_STARTPLUGINL_EXIT );
 	}
 
@@ -339,11 +355,21 @@
 
 void CImagePlugin::ResumePluginL()
     {
-    OstTraceFunctionEntry0( CIMAGEPLUGIN_RESUMEPLUGINL_ENTRY );
+    OstTraceFunctionEntry0( CIMAGEPLUGIN_RESUMEPLUGINL_ENTRY );    
     iObjectJobQueueManager->ResumeL();    
     OstTraceFunctionExit0( CIMAGEPLUGIN_RESUMEPLUGINL_EXIT );
     }
 
+void CImagePlugin::SaveL()
+    {
+    iObjectJobQueueManager->LoadQueuedItems();    
+    }
+
+void CImagePlugin::LoadL()
+    {
+    iObjectJobQueueManager->SaveQueuedItems();
+    }
+
 #ifdef __PERFORMANCE_DATA
 void CImagePlugin::UpdateLogL()
     {
--- a/harvesterplugins/media/mediautils/inc/mdeobjectqueuemanager.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/mediautils/inc/mdeobjectqueuemanager.h	Fri Oct 15 11:45:38 2010 +0530
@@ -18,7 +18,11 @@
 
 #ifndef MDEOBJECTQUEUEMANAGER_H_
 #define MDEOBJECTQUEUEMANAGER_H_
+
 #include <e32def.h>
+#include <f32file.h>
+#include <s32file.h>
+#include <bautils.h>
 #include <mdccommon.h>
 #include "mediaobjecthandler.h"
 
@@ -54,6 +58,12 @@
     TInt RunError();
     void PauseL();
     void ResumeL();
+    
+    void SetFilePath( const TDesC& aFilePath );
+    
+    void SaveQueuedItems();
+    
+    void LoadQueuedItems();
 private:
     /*
      * OverWriteOrAddToQueueL add or update item to queue
@@ -97,7 +107,11 @@
     };
 private:
     // Queue of documents to be indexed
-    RArray<TMdeActionRecord> iJobQueue; 
+    RArray<TMdeActionRecord> iJobQueue;
+    //File server connection 
+    RFs iFs;
+    // Path to the queued records
+    TFileName iFilePath;
     // State machine's state
     TState iState;
     THarvestingState iHState;
--- a/harvesterplugins/media/mediautils/src/mdeobjectqueuemanager.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/mediautils/src/mdeobjectqueuemanager.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -54,6 +54,7 @@
     {
     Cancel();
     iTimer.Close();
+    iFs.Close();
     }
 
 // -----------------------------------------------------------------------------
@@ -74,6 +75,7 @@
 void CMdeObjectQueueManager::ConstructL()
     {
     CActiveScheduler::Add(this);
+    User::LeaveIfError(iFs.Connect());
     User::LeaveIfError(iTimer.CreateLocal());
     iHState = EStateResume;
     }
@@ -125,13 +127,17 @@
             // Maximum is exceeded, force the write immediately
             if (iState == EStateWaiting)
                 {
-                iTimer.Cancel(); // RunL will be called with iStatus of KErrCancelled
+                if(IsActive())
+                    iTimer.Cancel(); // RunL will be called with iStatus of KErrCancelled
                 }
             else if (iState == EStateNone)
                 {
-                SetActive();
-                TRequestStatus* status = &iStatus;
-                User::RequestComplete(status, KErrNone); // RunL will be called with iStatus of KErrNone
+                if(!IsActive())
+                    {
+                    SetActive();
+                    TRequestStatus* status = &iStatus;
+                    User::RequestComplete(status, KErrNone); // RunL will be called with iStatus of KErrNone
+                    }
                 }
             }
         else
@@ -139,9 +145,12 @@
             // Maximum is not exceeded, keep waiting
             if (iState == EStateNone)
                 {
-                iState = EStateWaiting;
-                iTimer.After(iStatus, INDEXING_DELAY); // Wait 5 seconds before putting this to index
-                SetActive();
+                if(!IsActive())
+                    {
+                    iState = EStateWaiting;
+                    iTimer.After(iStatus, INDEXING_DELAY); // Wait 5 seconds before putting this to index
+                    SetActive();
+                    }
                 }
             }
         }
@@ -160,7 +169,7 @@
         CPIXLOGSTRING("END CMdeObjectQueueManager::RunL as Harvester in Pause state");  
         return;          
         }
-    while (iJobQueue.Count()>0 )
+    while (iJobQueue.Count()>0  && iHState == EStateResume )
         {
         TMdeActionRecord object = iJobQueue[0];
         //iJobQueue.Remove(0);
@@ -188,7 +197,13 @@
         iMdeObjectHandler->UpdateLogL();
 #endif
         // Everything is indexed no need to be waiting anymore
-        iState = EStateNone;    
+        iState = EStateNone;
+        
+        if(iJobQueue.Count() <= 0)
+            {
+            if( BaflUtils::FileExists( iFs, iFilePath ))
+                 BaflUtils::DeleteFile( iFs, iFilePath );
+            }
         CPIXLOGSTRING("END CMdeObjectQueueManager::RunL");    
     }
 
@@ -229,4 +244,55 @@
     ActivateAO();       
     }
 
+void CMdeObjectQueueManager::SetFilePath(const TDesC& aFilePath)
+    {
+    iFilePath.Copy(aFilePath);
+    }
+
+void CMdeObjectQueueManager::SaveQueuedItems()
+    {
+    if( iJobQueue.Count() <= 0)
+        return;
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Replace(iFs, iFilePath, EFileWrite));
+    CleanupClosePushL(file);
+    
+    RFileWriteStream wr(file);
+    wr.PushL();
+    
+    // Write harvester count
+    wr.WriteInt32L(iJobQueue.Count());
+    
+    for (TInt i=0; i<iJobQueue.Count(); i++)    
+        {
+        wr.WriteUint32L(iJobQueue[i].iObjectId);
+        wr.WriteInt16L(iJobQueue[i].iAction);        
+        }    
+    // Commit and cleanup
+    wr.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
+void CMdeObjectQueueManager::LoadQueuedItems()
+    {
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Open(iFs, iFilePath, EFileRead));
+    CleanupClosePushL(file);
+    RFileReadStream rd(file);
+    rd.PushL();    
+    
+    // Read harvester count
+    TInt count = rd.ReadInt32L();
+    // Read the harvesters
+    for (TInt i=0; i<count; i++)
+        {
+        TItemId iObjId= rd.ReadUint32L();
+        TCPixActionType iActionType = static_cast<TCPixActionType> ( rd.ReadInt16L());        
+        AddMdeItemToQueueL( iObjId, iActionType );
+        }    
+    // Cleanup
+    CleanupStack::PopAndDestroy(2, &file);
+    }
 //End of file
--- a/harvesterplugins/media/video/inc/videoplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/video/inc/videoplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -75,7 +75,7 @@
     
     void PausePluginL();
     void ResumePluginL();
-    
+    void SaveL();
     /*
     * HandleMdeItemL callback from MMediaObjectHandler
     * @param TItemId aObjId object Id
@@ -106,11 +106,16 @@
      * Second phase constructor
      */
     void ConstructL();
-
+    
+    void LoadL();
+    
 private:
-    // data
-    CCPixIndexer*           iIndexer; //Indexer
-    CMdeHarvester*          iMdeHarvester; //Mde harvester owned
+    /* File server connection */ 
+    RFs iFs;
+    /* Path to the queued records file */
+    TFileName iFilePath;
+    CCPixIndexer *iIndexer; //Indexer
+    CMdeHarvester* iMdeHarvester; //Mde harvester owned
     CMdeObjectQueueManager* iObjectJobQueueManager; //Objectqueue manager owned
     CMdsMediaMonitor*       iMdsMonitor;//MDS monitor owned
     CMdsSessionObjectUtils* iMdsUtils;//Mds utils owned
--- a/harvesterplugins/media/video/src/videoplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/media/video/src/videoplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -18,6 +18,8 @@
 //  Include Files
 #include "videoplugin.h" //CVideoPlugin
 #include <e32base.h>
+#include <s32file.h>
+#include <bautils.h>
 #include "harvesterserverlogger.h"
 #include "common.h"
 #include "csearchdocument.h"
@@ -39,6 +41,7 @@
 
 //Constants
 _LIT(KPathTrailer, "\\root\\media\\video");
+_LIT(KManagerFileName, "VideoStore.temp");
 #define MEDIA_QBASEAPPCLASS   "@0:root media video"
 #define LMEDIA_QBASEAPPCLASS  L"@0:root media video"
 #define MEDIAAPPCLASS   "root media video"
@@ -87,12 +90,23 @@
     delete iMMcMonitor;
     delete iDBManager;
     delete iMdsItem;
+	iFs.Close();
     }
 
 void CVideoPlugin::ConstructL()
     {
     iObjectJobQueueManager = CMdeObjectQueueManager::NewL(this);
-    }
+    // connect to file system
+    User::LeaveIfError(iFs.Connect());    
+    // Load the configuration
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    iObjectJobQueueManager->SetFilePath(iFilePath);
+	}
 
 void CVideoPlugin::StartPluginL()
     {
@@ -120,6 +134,8 @@
     TUid uidOfPlugin = {0x20029ABA};
     iDBManager = CCPIXMDEDbManager::NewL(uidOfPlugin);
     iMdsItem = CMDSEntity::NewL();
+    if( BaflUtils::FileExists(iFs,iFilePath) )
+                LoadL();
     OstTraceFunctionExit0( CVIDEOPLUGIN_STARTPLUGINL_EXIT );
     }
 
@@ -331,10 +347,22 @@
 void CVideoPlugin::ResumePluginL()
     {
     OstTraceFunctionEntry0( CVIDEOPLUGIN_RESUMEPLUGINL_ENTRY );
+    if( BaflUtils::FileExists( iFs, iFilePath ))
+         BaflUtils::DeleteFile( iFs, iFilePath );
     iObjectJobQueueManager->ResumeL();
     OstTraceFunctionExit0( CVIDEOPLUGIN_RESUMEPLUGINL_EXIT );
     }
 
+void CVideoPlugin::LoadL()
+    {
+    iObjectJobQueueManager->LoadQueuedItems();    
+    }
+
+void CVideoPlugin::SaveL()
+    {
+    iObjectJobQueueManager->SaveQueuedItems();
+    }
+
 #ifdef __PERFORMANCE_DATA
 void CVideoPlugin::UpdateLogL()
     {
--- a/harvesterplugins/messaging/email/inc/cemailplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/email/inc/cemailplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -54,6 +54,8 @@
      void PausePluginL();
      
      void ResumePluginL();
+     
+     void SaveL();
 	 
 	 /**
      * Gets the database observer class
--- a/harvesterplugins/messaging/email/src/cemailplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/email/src/cemailplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -393,6 +393,11 @@
     
     }
 
+void CEmailPlugin::SaveL()
+    {
+    
+    }
+
 // ---------------------------------------------------------------------------
 // CEmailPlugin::UpdatePerformaceDataL
 // ---------------------------------------------------------------------------
--- a/harvesterplugins/messaging/smsmms/group/messageplugin.mmp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/smsmms/group/messageplugin.mmp	Fri Oct 15 11:45:38 2010 +0530
@@ -45,6 +45,8 @@
 LIBRARY       euser.lib
 LIBRARY       ecom.lib
 LIBRARY       efsrv.lib
+LIBRARY		  estor.lib
+LIBRARY 	  bafl.lib
 LIBRARY		  msgs.lib
 LIBRARY		  gsmu.lib
 LIBRARY       cpixharvesterplugininterface.lib
--- a/harvesterplugins/messaging/smsmms/inc/cmessagedatahandler.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/smsmms/inc/cmessagedatahandler.h	Fri Oct 15 11:45:38 2010 +0530
@@ -57,6 +57,12 @@
 	void GatherDataL(TMsvId& aMessageId, TCPixActionType aActionType, TMsvId& aFolderId);
 	
 	void ResumeL();
+	
+	void SetFilePath( const TDesC& aFilePath );
+	
+	void SaveRecordsL();
+	
+	void LoadRecordsL();
 
 private:
 	//From CActive
@@ -165,6 +171,7 @@
 	CPop3ClientMtm*				iPop3Mtm;                   // client for opening pop3
 	CImap4ClientMtm*			iImap4Mtm;                  // client for opening imap4
 	RFs							iFs;
+	TFileName   iFilePath;
 #ifdef HARVESTERPLUGINTESTER_FRIEND
     friend class CHarvesterPluginTester;
 #endif
--- a/harvesterplugins/messaging/smsmms/inc/cmessageplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/smsmms/inc/cmessageplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -54,6 +54,7 @@
 	void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
     void PausePluginL();
     void ResumePluginL();
+    void SaveL();
     
 	/**
 	* callback from MMsvSessionObserver
@@ -133,6 +134,7 @@
 protected:
 	CMessagePlugin();
 	void ConstructL();
+	void LoadL();
 
 private:
     // Session to Messge server session
@@ -150,7 +152,10 @@
     
     TBool iIndexState;
     
-    RArray<TDriveNumber>  iMountDrives;    
+    RArray<TDriveNumber>  iMountDrives;
+    
+    /* Path to the queued records file */
+    TFileName iFilePath;
     
 #ifdef HARVESTERPLUGINTESTER_FRIEND
     friend class CHarvesterPluginTester;
--- a/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -19,7 +19,7 @@
 //  INCLUDES 
 
 #include <e32base.h>
-
+#include <bautils.h>
 #include <mtclreg.h>
 #include <smsclnt.h> // SMS Headers
 #include <mmsclient.h> // MMS Headers
@@ -879,8 +879,72 @@
         // Remove item that is handled
         iMessageArray.Remove(0);
         }
+    
+    if( iMessageArray.Count() <= 0 )
+        {
+        if( BaflUtils::FileExists( iFs, iFilePath ))
+                 BaflUtils::DeleteFile( iFs, iFilePath );
+        }
+    
     OstTraceFunctionExit0( CMESSAGEDATAHANDLER_RESUMEL_EXIT );
     }
 
+void CMessageDataHandler::SetFilePath(const TDesC& aFilePath)
+    {
+    iFilePath.Copy(aFilePath);
+    }
+
+void CMessageDataHandler::SaveRecordsL()
+    {
+    if(iMessageArray.Count() <= 0)
+        return;
+    
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Replace(iFs, iFilePath, EFileWrite));
+    CleanupClosePushL(file);
+    
+    RFileWriteStream wr(file);
+    wr.PushL();
+    
+    // Write harvester count
+    wr.WriteInt32L(iMessageArray.Count());
+    
+    for (TInt i=0; i<iMessageArray.Count(); i++)    
+        {
+        wr.WriteInt32L(iMessageArray[i].iMessageId);
+        wr.WriteInt16L(iMessageArray[i].iActionType);
+        wr.WriteInt32L(iMessageArray[i].iFolderId);
+        }    
+    // Commit and cleanup
+    wr.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
+void CMessageDataHandler::LoadRecordsL()
+    {
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Open(iFs, iFilePath, EFileRead));
+    CleanupClosePushL(file);
+    RFileReadStream rd(file);
+    rd.PushL();    
+    
+    // Read harvester count
+    TInt count = rd.ReadInt32L();
+    // Read the harvesters
+    for (TInt i=0; i<count; i++)
+        {        
+        TMsvId MessageId = rd.ReadInt32L();
+        TCPixActionType ActionType = static_cast<TCPixActionType> ( rd.ReadInt16L());
+        TMsvId FolderId = rd.ReadInt32L();
+        TMessageItem record( MessageId, ActionType, FolderId );
+        iMessageArray.AppendL( record );
+        }    
+    HandleNextRequest();
+    // Cleanup
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
 // End of File
 
--- a/harvesterplugins/messaging/smsmms/src/cmessageplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/messaging/smsmms/src/cmessageplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -16,7 +16,8 @@
 */
 
 
-#include <e32base.h> 
+#include <e32base.h>
+#include <bautils.h>
 #include <msvids.h>
 #include <msvuids.h>
 #include <mmsconst.h>
@@ -46,7 +47,7 @@
 // maximum length that the fully qualified msg Plugin base app class descriptor can be
 // e.g. "@c:root msg"
 const TInt KMsgPluginBaseAppClassMaxLen = 64;
-
+_LIT(KManagerFileName, "MessageStore.temp");
 
 // local declarations and functions
 namespace {
@@ -158,7 +159,15 @@
     for (TInt i=EDriveA; i<=EDriveZ; i++)
         {
         iIndexer[i] = NULL; //Initialize to NULL
-        }
+        }        
+    // Load the configuration
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
+    iMessageDataHandler->SetFilePath( iFilePath );
 }
 
 // ---------------------------------------------------------------------------
@@ -173,6 +182,8 @@
 	CPIXLOGSTRING2("currentDrive from messaging app : %d", iCurrentDrive );
 	MountL(TDriveNumber(iCurrentDrive)); //Mount current drive
 	// Define this base application class, use default location
+	if( BaflUtils::FileExists(iFs,iFilePath) )
+	      LoadL();
 	}
 
 // ---------------------------------------------------------------------------
@@ -555,7 +566,7 @@
 void CMessagePlugin::ResumePluginL()
     {
     OstTraceFunctionEntry0( CMESSAGEPLUGIN_RESUMEPLUGINL_ENTRY );
-    iIndexState = ETrue;
+    iIndexState = ETrue;    
     //IndexQueuedItems();
     iMessageDataHandler->ResumeL();
     iMessageMonitor->ResumeL();
@@ -581,6 +592,16 @@
     return iIndexState;
     }
 
+void CMessagePlugin::SaveL()
+    {
+    iMessageDataHandler->SaveRecordsL();
+    }
+
+void CMessagePlugin::LoadL()
+    {
+    iMessageDataHandler->LoadRecordsL();
+    }
+
 // ---------------------------------------------------------------------------
 // CMessagePlugin::UpdatePerformaceDataL
 // ---------------------------------------------------------------------------
--- a/harvesterplugins/notes/group/notesplugin.mmp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/notes/group/notesplugin.mmp	Fri Oct 15 11:45:38 2010 +0530
@@ -43,6 +43,8 @@
 LIBRARY       euser.lib
 LIBRARY       ecom.lib
 LIBRARY       efsrv.lib
+LIBRARY		  estor.lib
+LIBRARY 	  bafl.lib
 LIBRARY       calinterimapi.lib
 LIBRARY       cpixharvesterplugininterface.lib
 LIBRARY       cpixsearchclient.lib
--- a/harvesterplugins/notes/inc/notesplugin.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/notes/inc/notesplugin.h	Fri Oct 15 11:45:38 2010 +0530
@@ -70,6 +70,7 @@
 	void StartHarvestingL(const TDesC& aQualifiedBaseAppClass);
     void PausePluginL();
     void ResumePluginL();
+    void SaveL();
 	
 public:	// From MCalChangeCallBack2
 	
@@ -119,9 +120,17 @@
 	 * Symbian 2nd phase constructor.
 	 */
 	void ConstructL();
+	
+	void LoadL();
 
 private:
 	
+	/* File server connection */ 
+    RFs iFs;
+    
+    /* Path to the queued records file */
+    TFileName iFilePath;	    
+	    
 	// The asynchronizer .owned
 	CDelayedCallback* iAsynchronizer;	
 	
--- a/harvesterplugins/notes/src/notesplugin.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/harvesterplugins/notes/src/notesplugin.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -21,7 +21,9 @@
 #include <common.h>
 #include <csearchdocument.h>
 #include <ccpixindexer.h>
-#include <e32base.h> 
+#include <e32base.h>
+#include <s32file.h>
+#include <BAUTILS.H>
 #include <calsession.h>
 #include <calentry.h>
 #include <calinstanceview.h>
@@ -51,7 +53,7 @@
 _LIT(KNpdMemo , "Memo");
 //date Field name in CPIX indexer for notepad record
 _LIT(KNpdUpdateTime , "Date");
-
+_LIT(KManagerFileName, "NotesStore.temp");
 //Reference from CPix calender harvester plugin.
 _LIT(KNotesTimeFormat,"%04d %02d %02d %02d %02d");
 
@@ -107,6 +109,7 @@
 		iSession->StopChangeNotification();
 		}
 	delete iSession;
+	iFs.Close();
 	}
 	
 // ---------------------------------------------------------------------------
@@ -125,7 +128,16 @@
         iSession->OpenL( iSession->DefaultFileNameL() );
         }
 	iNotesInstanceView = CCalInstanceView::NewL( *iSession );	
-	iEntryView = CCalEntryView::NewL( *iSession );	
+	iEntryView = CCalEntryView::NewL( *iSession );
+	
+    //Load the temp stored items if any
+    User::LeaveIfError(iFs.Connect());
+    TFileName pathWithoutDrive;
+    iFs.CreatePrivatePath(EDriveC);
+    iFilePath = _L("C:");        
+    iFs.PrivatePath( pathWithoutDrive );
+    iFilePath.Append(pathWithoutDrive);
+    iFilePath.Append(KManagerFileName);
 	}
 
 // ---------------------------------------------------------------------------
@@ -161,6 +173,9 @@
 	//Start the Monitoring
 	iSession->StartChangeNotification( *this, *filter );
 	delete filter;
+    
+    if( BaflUtils::FileExists(iFs,iFilePath) )
+        LoadL();
 	CPIXLOGSTRING("CNotesPlugin::StartPluginL: Exit");
 	OstTraceFunctionExit0( CNOTESPLUGIN_STARTPLUGINL_EXIT );
 	}	
@@ -483,7 +498,11 @@
     {
     OstTraceFunctionEntry0( CNOTESPLUGIN_RESUMEPLUGINL_ENTRY );
     iIndexState = ETrue;
-            
+    
+    //Check for temp file, it exists delete
+    if( BaflUtils::FileExists( iFs, iFilePath ))
+          BaflUtils::DeleteFile( iFs, iFilePath );
+    
     if(iHarvestState == EHarvesterStartHarvest)
         {
         if(iAsynchronizer->CallbackPending())
@@ -528,7 +547,7 @@
 void CNotesPlugin::IndexQueuedItems()
     {
     OstTraceFunctionEntry0( CNOTESPLUGIN_INDEXQUEUEDITEMS_ENTRY );
-    while (iJobQueue.Count()>0)
+    while ( iJobQueue.Count()>0 && iIndexState )
         {
         TRecord entry = iJobQueue[0];        
         //Let the indexer handle this object TRAP it as it can leave
@@ -538,9 +557,65 @@
             iJobQueue.Remove(0);
             }
         }
+    if(iJobQueue.Count() <= 0)
+        {
+        if( BaflUtils::FileExists( iFs, iFilePath ))
+             BaflUtils::DeleteFile( iFs, iFilePath );
+        }
     OstTraceFunctionExit0( CNOTESPLUGIN_INDEXQUEUEDITEMS_EXIT );
     }
 
+void CNotesPlugin::LoadL()
+    {
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Open(iFs, iFilePath, EFileRead));
+    CleanupClosePushL(file);
+    RFileReadStream rd(file);
+    rd.PushL();
+    
+    // Read harvester count
+    TInt count = rd.ReadInt32L();
+    // Read the harvesters
+    for (TInt i=0; i<count; i++)
+        {
+        TRecord record;
+        record.iLocalUid = rd.ReadUint32L();
+        record.iActionType = static_cast<TCPixActionType> ( rd.ReadInt16L());        
+        OverWriteOrAddToQueueL(record.iLocalUid, record.iActionType);
+        }
+    
+    if( count > 0)
+        IndexQueuedItems();
+    // Cleanup
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
+void CNotesPlugin::SaveL()
+    {
+    if( iJobQueue.Count() <= 0)
+         return;
+    // Open the stream
+    RFile file;
+    User::LeaveIfError(file.Replace(iFs, iFilePath, EFileWrite));
+    CleanupClosePushL(file);
+    
+    RFileWriteStream wr(file);
+    wr.PushL();
+    
+    // Write harvester count
+    wr.WriteInt32L(iJobQueue.Count());
+    
+    for (TInt i=0; i<iJobQueue.Count(); i++)    
+        {
+        wr.WriteUint32L(iJobQueue[i].iLocalUid);
+        wr.WriteInt16L(iJobQueue[i].iActionType);        
+        }    
+    // Commit and cleanup
+    wr.CommitL();
+    CleanupStack::PopAndDestroy(2, &file);
+    }
+
 #ifdef __PERFORMANCE_DATA
 void CNotesPlugin::UpdatePerformaceDataL()
     {
--- a/onlinesearchproviders/isproviderdbmanager/isproviderdbmanager.pro	Tue Oct 05 13:32:14 2010 +0530
+++ b/onlinesearchproviders/isproviderdbmanager/isproviderdbmanager.pro	Fri Oct 15 11:45:38 2010 +0530
@@ -35,7 +35,7 @@
 
 symbian: {
 	
-	TARGET.UID3 = 0xE47ae51a
+	TARGET.UID3 = 0x20029B36
     INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
     INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
 
--- a/searchui/runtimeproviders/searchruntimeprovider/searchruntimeprovider.pro	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/runtimeproviders/searchruntimeprovider/searchruntimeprovider.pro	Fri Oct 15 11:45:38 2010 +0530
@@ -37,7 +37,7 @@
 }
 
 LIBS +=  -lsearchstateprovider
-    
+LIBS +=  -lafservice
 
 
 CONFIG += hb
--- a/searchui/runtimeproviders/searchruntimeprovider/src/searchruntime.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/runtimeproviders/searchruntimeprovider/src/searchruntime.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -24,8 +24,9 @@
 #include <qfinalstate.h>
 #include <hbapplication.h>
 #include <xqaiwdecl.h>
+#include <afactivation.h>
 
-#define hbApp qobject_cast<HbApplication*>(qApp)
+
 
 // states
 const char wizardProgressiveStateUri[] =
@@ -138,12 +139,14 @@
 
     connect(wizardOnlineState, SIGNAL(onlineSearchQuery(QString)),
             wizardProgressiveState, SLOT(slotOnlineQuery(QString)));
+    
+    AfActivation *activation = new AfActivation(this);
 
     // set initial state for statemachine
-    if (hbApp->activateReason() == Hb::ActivationReasonActivity)
+    if (activation->reason() == Af::ActivationReasonActivity)
         {
 
-        QVariantHash params = hbApp->activateParams();
+        QVariantHash params =activation->parameters();
         QString var = params.value(XQURI_KEY_ACTIVITY_NAME).toString();
 
         if (var == SEARCHAIWDECLMAINVIEW)
@@ -160,7 +163,7 @@
             searchRootState->setInitialState(wizardOnlineState);
             }
         }
-    else if (hbApp->activateReason() == Hb::ActivationReasonNormal)
+    else if (activation->reason() == Af::ActivationReasonNormal)
         {
 
         searchRootState->setInitialState(wizardProgressiveState);
--- a/searchui/searchapplication/inc/searchapplication.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/searchapplication/inc/searchapplication.h	Fri Oct 15 11:45:38 2010 +0530
@@ -46,7 +46,7 @@
      * @since S60 ?S60_version.     
      * @param aParent Parent object.
      */
-    SearchApplication(int argc, char *argv[]);
+    SearchApplication(int &argc, char *argv[] );
 
     /**
      * Destructor.
--- a/searchui/searchapplication/src/searchapplication.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/searchapplication/src/searchapplication.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -25,8 +25,8 @@
 // SearchApplication::SearchApplication
 // ---------------------------------------------------------------------------
 //
-SearchApplication::SearchApplication(int argc, char *argv[]) :
-    HbApplication(argc, argv), mRuntime(NULL)
+SearchApplication::SearchApplication(int &argc, char *argv[] ) :
+    HbApplication(argc, argv ), mRuntime(NULL)
     {
     SEARCH_FUNC_ENTRY("SEARCH::SearchApplication::SearchApplication"); SEARCH_FUNC_EXIT("SEARCH::SearchApplication::SearchApplication");
     }
--- a/searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h	Fri Oct 15 11:45:38 2010 +0530
@@ -28,6 +28,7 @@
 #include <xqaiwrequest.h>
 #include "search_global.h"
 #include <f32file.h>
+#include <afactivation.h>
 
 #ifdef OST_TRACE_COMPILER_IN_USE //defined in Search_global.h 
 #define PERF_CAT_API_TIME_RESTART  m_categorySearchApiTime.restart();
@@ -248,7 +249,7 @@
      * Slot to launch the search result screen with the activity URI  
      * @since S60 ?S60_version.
      */
-    void slotactivityRequested(const QString &name);
+    void slotactivityRequested(Af::ActivationReason reason, const QString &name, QVariantHash parameter  );
 
     /**
      * Slot to notify when theme is changed
@@ -479,6 +480,7 @@
     QSize mListViewIconSize;
 
     SearchUiLoader* mUiLoader;
+    AfActivation *activation ;
 
     bool mStateStatus;
 
--- a/searchui/stateproviders/searchstateprovider/searchstateprovider.pro	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/stateproviders/searchstateprovider/searchstateprovider.pro	Fri Oct 15 11:45:38 2010 +0530
@@ -60,6 +60,7 @@
 LIBS += -ltstaskmonitorclient
 LIBS += -lcpixcontentinfodb
 LIBS += -lxqserviceutil
+LIBS += -lafservice
 
 
 coverage:DEFINES += COVERAGE_MEASUREMENT
--- a/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -60,7 +60,7 @@
 #include <email_services_api.h>
 #include <xqrequestinfo.h>
 QTM_USE_NAMESPACE
-#define hbApp qobject_cast<HbApplication*>(qApp)
+
 
 const int intial_iteration = 3;
 const int batch_iteration = 20;
@@ -95,6 +95,9 @@
         mSearchPanel->setPlaceholderText(hbTrId(
                 "txt_search_dialog_search_device"));
         }
+   
+    activation  = new AfActivation(this);
+          connect( activation, SIGNAL( activated( Af::ActivationReason, QString, QVariantHash ) ), this, SLOT( slotactivityRequested( Af::ActivationReason, QString, QVariantHash ) ) );
 
     constructHandlers();
     if (mView && mMainWindow)
@@ -108,11 +111,7 @@
     mResultparser = 0;
     loadSettings = true;
 
-    if (hbApp)
-        {
-        connect(hbApp->activityManager(), SIGNAL(activityRequested(QString)),
-                this, SLOT(slotactivityRequested(QString)));
-        }
+
 
 #ifdef OST_TRACE_COMPILER_IN_USE 
     //start() the timers to avoid worrying abt having to start()/restart() later
@@ -1079,11 +1078,10 @@
 // ---------------------------------------------------------------------------
 void SearchProgressiveState::slotviewReady()
     {
-    if (hbApp)
-        {
-        if (hbApp->activateReason() == Hb::ActivationReasonActivity)
+   
+        if (activation->reason() == Af::ActivationReasonActivity)
             {
-            QVariantHash params = hbApp->activateParams();
+            QVariantHash params = activation->parameters();
             QString searchKey = params.value(SEARCHAIWQUERY).toString();
             params.remove(SEARCHAIWQUERY);
             params.remove(XQURI_KEY_ACTIVITY_NAME);
@@ -1109,7 +1107,7 @@
             if (searchKey.length() > 0)
                 mSearchPanel->setCriteria(searchKey);
             }
-        }
+       
     PERF_APP_LAUNCH_END("SearchAppplication View is ready");
     emit applicationReady();
     }
@@ -1134,11 +1132,11 @@
 // ---------------------------------------------------------------------------
 // SearchProgressiveState::slotactivityRequested
 // ---------------------------------------------------------------------------
-void SearchProgressiveState::slotactivityRequested(const QString &name)
+void SearchProgressiveState::slotactivityRequested(Af::ActivationReason reason, const QString &name, QVariantHash parameter )
     {
-    if (name == SEARCHAIWDECLINDEVICE)
+    if ((reason == Af::ActivationReasonActivity)&&(name == SEARCHAIWDECLINDEVICE))
         {
-        QVariantHash params = hbApp->activateParams();
+        QVariantHash params =parameter;
         QString searchKey = params.value(SEARCHAIWQUERY).toString();
         int i = params.count();
         params.remove(SEARCHAIWQUERY);
@@ -1248,8 +1246,7 @@
             }                
         for (int i = 0; i < mUiLoader->ContentInfoList().count(); i++)
             {
-            if (aDoc->baseAppClass()
-                    == mUiLoader->ContentInfoList().at(i)->getBaseApp())
+            if (!(aDoc->baseAppClass().compare (mUiLoader->ContentInfoList().at(i)->getBaseApp())))
                 {
                 if (!firstrow.length())
                     {
@@ -1296,9 +1293,10 @@
     int pos = localizationpath.lastIndexOf("/");
     
     QString path = localizationpath.left(pos);
-    QString filename = localizationpath.right(pos);
+    QString filename = localizationpath.right((localizationpath.length() - 1) - pos);
 
-    translator->load(filename + lang, path);
-
-    QCoreApplication::installTranslator(translator);
+    if(translator->load(filename + lang, path))
+           QCoreApplication::installTranslator(translator);
+    else
+        delete translator;
     }
--- a/searchui/stateproviders/searchstateprovider/src/settingswidget.cpp	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/stateproviders/searchstateprovider/src/settingswidget.cpp	Fri Oct 15 11:45:38 2010 +0530
@@ -153,8 +153,6 @@
         
         HbCheckBox *checkboxitem = NULL;
         
-        qDeleteAll(mDeviceCheckBoxList.begin(), mDeviceCheckBoxList.end());
-        
         mDeviceCheckBoxList.clear();
         
         for (int i = 0; i < mDeviceListDisplay.count(); i++)
@@ -408,14 +406,15 @@
         for (int i = 0; i < mDeviceCheckBoxList.count(); i++)
             {
             int value;
-            (mDeviceCheckBoxList.at(i)->checkState() == Qt::Checked) ? (value = 1) : (value = 0);                
-            
+            (mDeviceCheckBoxList.at(i)->checkState() == Qt::Checked) ? (value = 1) : (value = 0);  
             appSettings.setValue(mDeviceStoragelist.at(i), value);
             
             for (int j = 0; j < mUiLoader->ContentInfoList().count(); j++)
                 {
                 if (mUiLoader->ContentInfoList().at(j)->getDisplayName() == mDeviceStoragelist.at(i))
+                    {                    
                     value ? (mUiLoader->ContentInfoList().at(j)->setSelected(true)) : (mUiLoader->ContentInfoList().at(j)->setSelected(false));
+                    }
                 }
             }
         }
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro	Tue Oct 05 13:32:14 2010 +0530
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro	Fri Oct 15 11:45:38 2010 +0530
@@ -38,6 +38,7 @@
 LIBS += -ltstaskmonitorclient
 LIBS += -lcpixcontentinfodb
 LIBS += -lxqserviceutil
+LIBS += -lafservice
 
 CONFIG += qtestlib
 CONFIG += hb
@@ -61,7 +62,6 @@
 symbian {         
 CONFIG += symbian_test               
 TARGET.UID2 = 0x100039CE
-TARGET.UID3 = 0x20026F9A
 TARGET.CAPABILITY = CAP_GENERAL_DLL
 INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE 
 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE