diff -r 000000000000 -r c53acadfccc6 metadataengine/server/inc/mdsgarbagecollector.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metadataengine/server/inc/mdsgarbagecollector.h Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2002-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: This is garbage colletion class which sends* +*/ + +#ifndef _MDSGARBAGECOLLECTOR_H_ +#define _MDSGARBAGECOLLECTOR_H_ + +#include +#include + +class MMdSGarbageCollectorObserver + { + public: + /* + * @return if the garbage collection need to be started again + */ + virtual TBool StartGarbageCollectionL() = 0; + }; + +class CMdSGarbageCollector : public CActive +{ +public: + virtual ~CMdSGarbageCollector(); + /** + * Two phase constructor. + * @param aObserver an observer which will be notified when the garbage collector starts. + * @return an instance of CMdSGarbageCollector + */ + static CMdSGarbageCollector* NewL(MMdSGarbageCollectorObserver& aObserver); + + /** + * Two phase constructor. + * @param aObserver an observer which will be notified when the garbage collector starts. + * @return an instance of CMdSGarbageCollector + */ + static CMdSGarbageCollector* NewLC(MMdSGarbageCollectorObserver& aObserver); + + /** + * Starts garbage connection with a delay. The same value will also be used as interval between + * following garbage collections if the observer returns ETrue when StartGarbageCollectionL() + * is called. + * + * @param aDelay delay before garbage collection starts + */ + void Start( TInt aDelay ); + + /** + * Pauses garbage collection. + */ + void Pause(); + + /** + * Resumes garbage collection. + */ + void Resume(); + +private: + CMdSGarbageCollector(MMdSGarbageCollectorObserver& aObserver); + void ConstructL(); + + virtual void RunL(); + virtual void DoCancel(); + virtual TInt RunError( TInt aError ); + +private: + RTimer iTimer; + + TTimeIntervalMicroSeconds32 iDelay; + TTimeIntervalMicroSeconds32 iNewDelay; + + MMdSGarbageCollectorObserver& iObserver; +}; + +#endif