diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamMemoryMonitor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamMemoryMonitor.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2007-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: Class that monitors free memory and attempts to free it if necessary +* +*/ + +#ifndef CAMMEMORYMONITOR_H +#define CAMMEMORYMONITOR_H + +#include +#include + + +class CCamAppController; +class CCamAppUi; + +/** + * Class that monitors free memory and attempts to free it if necessary + * + */ +class CCamMemoryMonitor : public CActive +{ + +public: + + static CCamMemoryMonitor* NewL( CCamAppUi* aAppUi, CCamAppController* aController ); + + virtual ~CCamMemoryMonitor(); + + /** + * Start monitoring free memory. If available memory drop below given limit, + * requests memory from OomManager. + * + * @param aLimit Monitored memory limit + * @param aRequestAmount Amount of memory to be requested if below aLimit + */ + void StartMonitoring( TInt aLimit, TInt aRequestAmount ); + + /** + * Start monitoring free memory. Uses default or previously given + * values for limit and request amount + */ + void StartMonitoring(); + + /** + * Stop monitoring free memory. + * + */ + void StopMonitoring(); + + /** + * Checks for free memory and requests more if below given limit. + * + * @param aLimit Memory limit to be checked + * @param aRequestAmount Amount of memory to be requested if below aLimit + * @param aShowNote If ETrue, note will be shown during memory request + */ + TInt CheckAndRequestMemoryL( TInt aLimit, TInt aRequestAmount, TBool aShowNote ); + + /** + * Checks for free memory and requests more if below given limit. Uses + * default values for limit and request amount. + * + * @param aShowNote If ETrue, note will be shown during memory request + */ + TInt CheckAndRequestMemoryL( TBool aShowNote ); + + + + void RunL(); + void DoCancel(); + +private: + CCamMemoryMonitor( CCamAppUi* aAppUi, CCamAppController* aController ); + void ConstructL(); + + static TInt MemoryCheck( TAny* aPtr ); + + void CheckMemory(); +private: + // data + + TInt iLimit; + TInt iRequestAmount; + + CCamAppUi* iAppUi; + CCamAppController* iController; + CPeriodic* iMemoryCheckTimer; + ROomMonitorSession iOomMonitor; +}; + +#endif /* CCAMMEMORYMONITOR_H_ */