diff -r 000000000000 -r c53acadfccc6 harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,99 @@ +/* +* Copyright (c) 2006-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: Handles mount tasks* +*/ + +#ifndef __MMCMOUNTTASKAO_H__ +#define __MMCMOUNTTASKAO_H__ + +#include +#include +#include + +#include "monitorplugin.h" +#include "mdeharvestersession.h" +#include "mmcfilelist.h" +#include "harvestereventmanager.h" + +class CHarvesterPluginFactory; + +class CMMCMountTaskAO : public CActive + { + public: + enum TRequest + { + ERequestStartTask, + ERequestMount, + ERequestUnmount, + ERequestFormat, + ERequestHandleFileEntry, + ERequestHandleReharvest, + ERequestCleanup, + ERequestIdle + }; + + static CMMCMountTaskAO* NewL(); + virtual ~CMMCMountTaskAO(); + + void StartMount( TMountData& aMountData ); + void StartUnmount( TMountData& aMountData ); + void SetMonitorObserver( MMonitorPluginObserver& aObserver ); + void SetMdeSession( CMdEHarvesterSession* aSession ); + void SetHarvesterPluginFactory( CHarvesterPluginFactory* aPluginFactory ); + + /** + * Returns internal hard drive's media id if the device has one. 0 if not or drive is not present + */ + TUint32 GetInternalDriveMediaId(); + + void SetCachingStatus( TBool aCachingStatus ); + + protected: + + void RunL(); + TInt RunError( TInt aError ); + void DoCancel(); + void SetNextRequest( TRequest aRequest ); + + void Initialize(); + void Deinitialize(); + void SetNotPresentToMDE(); + void HandleReharvestL( RPointerArray& aArray ); + void RemoveNotPresentFromMDE(); + void StartNotifyL(); + void StopNotifyL(); + + private: + + CMMCMountTaskAO(); + void ConstructL(); + + private: + + RFs iFs; + TRequest iNextRequest; + TMountData* iMountData; + RPointerArray iMountDataQueue; + RPointerArray iEntryArray; + RPointerArray iHarvestEntryArray; + MMonitorPluginObserver* iObserver; + CMdEHarvesterSession* iMdeSession; + CHarvesterPluginFactory* iHarvesterPluginFactory; + CMmcFileList* iMmcFileList; + CHarvesterEventManager* iHEM; + TBool iCacheEvents; + + }; + +#endif // __MMCMOUNTTASKAO_H__