diff -r b3cee849fa46 -r fad26422216a loadgen/inc/loadgen_model.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loadgen/inc/loadgen_model.h Wed Sep 01 12:30:35 2010 +0100 @@ -0,0 +1,134 @@ +/* +* Copyright (c) 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: +* +*/ + + +#ifndef LOADGEN_MODEL_H +#define LOADGEN_MODEL_H + +// INCLUDES +#include +#include +#include + +#include "loadgen_loadattributes.h" + +// FORWARD DECLARATIONS +class CLoadGenMainContainer; +class CLoadGenGraphsContainer; +class CEikonEnv; +class CLoadBase; + + +typedef CArrayFixSeg CLoadItemList; + +const TUint KMaxCPUs = 4; +const TUint KHalFunction_EKernelHalNumLogicalCpus = 16; //EKernelHalNumLogicalCpus +const TUint KHalFunction_EKernelHalLockThreadToCpu = 19; //EKernelHalLockThreadToCpu + +// CLASS DECLARATIONS + +class TLoadGenSettings + { +public: + }; + +class CLoadGenModel : public CActive + { +private: + enum TContainerDrawState + { + EDrawStateInvalid = -1, + EDrawStateMain + }; + +public: + static CLoadGenModel* NewL(); + ~CLoadGenModel(); + void ActivateModelL(); + void DeActivateModelL(); + +private: + void RunL(); + void DoCancel(); + +private: + CLoadGenModel(); + void ConstructL(); + void LoadSettingsL(); + void EditLoadL(CLoadBase* aItem); + void DoStartNewLoadL(TInt aCommand); + void AppendToLoadItemListL(CLoadBase* aItem); + void DeleteFromLoadItemListL(TInt aIndex); + void SuspendOrResumeFromLoadItemListL(TInt aIndex); + void DeleteAllLoadItems(); + void RefreshViewL(TBool aClearSelection=ETrue); + CDesCArray* ListOfAllAppsL(); + +public: + void StopAllLoadItemsL(); + void SuspendAllLoadItemsL(); + void ResumeAllLoadItemsL(); + + TInt LoadItemCount() const; + void ShowItemActionMenuL(); + void StopSelectedOrHighlightedItemsL(); + void SuspendOrResumeSelectedOrHighlightedItemsL(); + + CDesCArray* GenerateListBoxItemTextArrayL(); + void StartNewLoadL(TInt aCommand); + void SaveSettingsL(); + void SetMainContainer(CLoadGenMainContainer* aContainer); + TInt LaunchSettingsDialogL(); + inline TLoadGenSettings& Settings() { return iSettings; } + inline CEikonEnv* EikonEnv() { return iEnv; } + inline RApaLsSession& LsSession() { return iLs; } + inline CLoadGenMainContainer* MainContainer() { return iMainContainer; } + inline TBool LoadItemsExists() { return iLoadItemList->Count() > 0; } + + +public: + static TThreadPriority SettingItemToThreadPriority(TInt aIndex); + static void SettingItemToThreadDescription(TInt aIndex, TDes& aBuf); + static void SettingItemToSourceDescription(TInt aIndex, TDes& aBuf); + static TInt MilliSecondsToMicroSeconds(TInt aMilliSeconds, TInt aRandomVariance=0); + static TInt RandomNumber(TInt aMin, TInt aMax); + static TSize ScreenSize(); + +private: + RTimer iTimer; + CLoadGenMainContainer* iMainContainer; + CEikonEnv* iEnv; + TLoadGenSettings iSettings; + RApaLsSession iLs; + TInt iDrawState; + CLoadItemList* iLoadItemList; + TInt iReferenceNumber; + TCPULoadAttributes iCpuLoadAttributes; + TMemoryEatAttributes iMemoryEatAttributes; + TPhoneCallAttributes iPhoneCallAttributes; + TNetConnAttributes iNetConnAttributes; + TKeyPressAttributes iKeyPressAttributes; + TMessageAttributes iMessageAttributes; + TApplicationsAttributes iApplicationsAttributes; + TPhotoCaptureAttributes iPhotoCaptureAttributes; + TBluetoothAttributes iBluetoothAttributes; + TPointerEventAttributes iPointerEventAttributes; + static TInt64 iRandomNumberSeed; + }; + + +#endif