utilityapps/loadgen/ui/hb/inc/engine.h
author hgs
Mon, 18 Oct 2010 16:32:38 +0300
changeset 56 392f7045e621
parent 55 2d9cac8919d3
permissions -rw-r--r--
201041_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef LOADGEN_MODEL_H
hgs
parents:
diff changeset
    20
#define LOADGEN_MODEL_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDES
hgs
parents:
diff changeset
    23
#include <e32std.h>
hgs
parents:
diff changeset
    24
#include <e32base.h>
hgs
parents:
diff changeset
    25
#include <apgcli.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include "loadgen_loadattributes.h"
hgs
parents:
diff changeset
    28
#include "loadgen_loadbase.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    31
class EngineWrapper;
hgs
parents:
diff changeset
    32
class MainView;
hgs
parents:
diff changeset
    33
class CLoadGenGraphsContainer;
hgs
parents:
diff changeset
    34
class CEikonEnv;
hgs
parents:
diff changeset
    35
//class CLoadBase;
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
typedef CArrayFixSeg<CLoadBase*> CLoadItemList;
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
const TUint KMaxCPUs = 4;
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// CLASS DECLARATIONS
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
class TLoadGenSettings
hgs
parents:
diff changeset
    45
    {
hgs
parents:
diff changeset
    46
public:
hgs
parents:
diff changeset
    47
    };
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
class CEngine : public CActive
hgs
parents:
diff changeset
    50
    {
hgs
parents:
diff changeset
    51
private:
hgs
parents:
diff changeset
    52
	enum TLoadOperation
hgs
parents:
diff changeset
    53
		{
hgs
parents:
diff changeset
    54
		EEditLoad = 0,
hgs
parents:
diff changeset
    55
		ESuspResLoad,
hgs
parents:
diff changeset
    56
		EStopLoad
hgs
parents:
diff changeset
    57
		};
hgs
parents:
diff changeset
    58
	
hgs
parents:
diff changeset
    59
    enum TContainerDrawState
hgs
parents:
diff changeset
    60
        {
hgs
parents:
diff changeset
    61
        EDrawStateInvalid = -1,
hgs
parents:
diff changeset
    62
        EDrawStateMain
hgs
parents:
diff changeset
    63
        };
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
public:
hgs
parents:
diff changeset
    66
    static CEngine* NewL(EngineWrapper *aEngineWrapper);
hgs
parents:
diff changeset
    67
    ~CEngine();
hgs
parents:
diff changeset
    68
    void ActivateEngineL();
hgs
parents:
diff changeset
    69
    void DeActivateEngineL();
hgs
parents:
diff changeset
    70
	void LaunchPerfMonL();
hgs
parents:
diff changeset
    71
    void EditLoadL(TInt aIndex);
hgs
parents:
diff changeset
    72
	void ExistingLoadEditedL();
hgs
parents:
diff changeset
    73
	void ExistingLoadEditCancelled();
hgs
parents:
diff changeset
    74
	
hgs
parents:
diff changeset
    75
private:
hgs
parents:
diff changeset
    76
    void RunL();
hgs
parents:
diff changeset
    77
    void DoCancel();
hgs
parents:
diff changeset
    78
        
hgs
parents:
diff changeset
    79
private:
hgs
parents:
diff changeset
    80
    CEngine();
hgs
parents:
diff changeset
    81
    void ConstructL(EngineWrapper *aEngineWrapper);
hgs
parents:
diff changeset
    82
    void LoadSettingsL();
hgs
parents:
diff changeset
    83
    void AppendToLoadItemListL(CLoadBase* aItem);
hgs
parents:
diff changeset
    84
    void DeleteFromLoadItemListL(TInt aIndex);
hgs
parents:
diff changeset
    85
    void SuspendOrResumeFromLoadItemListL(TInt aIndex);
hgs
parents:
diff changeset
    86
    void DeleteAllLoadItems();
hgs
parents:
diff changeset
    87
    void RefreshViewL(TBool aClearSelection=ETrue);
hgs
parents:
diff changeset
    88
    CDesCArray* ListOfAllAppsL();    
hgs
parents:
diff changeset
    89
    
hgs
parents:
diff changeset
    90
    static TInt AsyncRunLoadOperation( TAny* aObject );
hgs
parents:
diff changeset
    91
    
hgs
parents:
diff changeset
    92
public:
hgs
parents:
diff changeset
    93
    void AsyncRunLoadOperationL();
hgs
parents:
diff changeset
    94
    void AsyncSuspRes();
hgs
parents:
diff changeset
    95
    void AsyncStopLoad( const CArrayFix<TInt>* aSelectionIndexes );
hgs
parents:
diff changeset
    96
    void AsyncEditLoad();
hgs
parents:
diff changeset
    97
    
hgs
parents:
diff changeset
    98
    void StopAllLoadItemsL();
hgs
parents:
diff changeset
    99
    void SuspendAllLoadItemsL();
hgs
parents:
diff changeset
   100
    void ResumeAllLoadItemsL();
hgs
parents:
diff changeset
   101
            
hgs
parents:
diff changeset
   102
    TInt LoadItemCount() const;
hgs
parents:
diff changeset
   103
    void StopSelectedOrHighlightedItemsL(const CArrayFix<TInt>* aSelectionIndexes);
hgs
parents:
diff changeset
   104
    void SuspendOrResumeSelectedOrHighlightedItemsL();
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    CDesCArray* GenerateListBoxItemTextArrayL();
hgs
parents:
diff changeset
   107
    void StartNewLoadL(TInt aCommand);
hgs
parents:
diff changeset
   108
	void DoStartNewLoadL(TInt aCommand);
hgs
parents:
diff changeset
   109
    void SaveSettingsL();
hgs
parents:
diff changeset
   110
    TInt LaunchSettingsDialogL();
hgs
parents:
diff changeset
   111
	TCPULoadAttributes GetCPULoadAttributes();
hgs
parents:
diff changeset
   112
	TMemoryEatAttributes GetMemoryEatAttributes();
hgs
parents:
diff changeset
   113
	TPhoneCallAttributes GetPhoneCallAttributes();
hgs
parents:
diff changeset
   114
	TNetConnAttributes GetNetConnAttributes();
hgs
parents:
diff changeset
   115
	TKeyPressAttributes GetKeyPressAttributes();
hgs
parents:
diff changeset
   116
	TMessageAttributes GetMessageAttributes();
hgs
parents:
diff changeset
   117
	TApplicationsAttributes GetApplicationsAttributes();
hgs
parents:
diff changeset
   118
	TPhotoCaptureAttributes GetPhotoCaptureAttributes();
hgs
parents:
diff changeset
   119
	TBluetoothAttributes    GetBluetoothAttributes();
hgs
parents:
diff changeset
   120
	TPointerEventAttributes GetPointerEventAttributes();
hgs
parents:
diff changeset
   121
	void ChangeCPULoadAttributes(const TCPULoadAttributes& aAttributes); 
hgs
parents:
diff changeset
   122
	void ChangeMemoryEatAttributes(const TMemoryEatAttributes& aAttributes);
hgs
parents:
diff changeset
   123
	void ChangePhoneCallAttributes(const TPhoneCallAttributes& aAttributes);
hgs
parents:
diff changeset
   124
	void ChangeNetConnAttributes(const TNetConnAttributes& aAttributes);
hgs
parents:
diff changeset
   125
	void ChangeKeyPressAttributes(const TKeyPressAttributes& aAttributes);
hgs
parents:
diff changeset
   126
	void ChangeMessageAttributes(const TMessageAttributes& aAttributes);
hgs
parents:
diff changeset
   127
	void ChangeApplicationsAttributes(const TApplicationsAttributes& aAttributes);
hgs
parents:
diff changeset
   128
	void ChangePhotoCaptureAttributes(const TPhotoCaptureAttributes& aAttributes);
hgs
parents:
diff changeset
   129
	void ChangeBluetoothAttributes(const TBluetoothAttributes& aAttributes);
hgs
parents:
diff changeset
   130
	void ChangePointerEventAttributes(const TPointerEventAttributes& aAttributes);
hgs
parents:
diff changeset
   131
	
hgs
parents:
diff changeset
   132
    inline TLoadGenSettings& Settings() { return iSettings; }
hgs
parents:
diff changeset
   133
    inline CEikonEnv* EikonEnv() 		{ return iEnv; }
hgs
parents:
diff changeset
   134
    inline RApaLsSession& LsSession() 	{ return iLs; }
hgs
parents:
diff changeset
   135
    inline TBool LoadItemsExists() 		{ return iLoadItemList->Count() > 0; } 
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
private:
hgs
parents:
diff changeset
   139
    RTimer                  iTimer;
hgs
parents:
diff changeset
   140
    CEikonEnv*              iEnv;
hgs
parents:
diff changeset
   141
    TLoadGenSettings        iSettings;
hgs
parents:
diff changeset
   142
    RApaLsSession           iLs;
hgs
parents:
diff changeset
   143
    CLoadItemList*          iLoadItemList;
hgs
parents:
diff changeset
   144
    TInt                    iReferenceNumber;
hgs
parents:
diff changeset
   145
    TCPULoadAttributes      iCpuLoadAttributes;
hgs
parents:
diff changeset
   146
    TMemoryEatAttributes    iMemoryEatAttributes;
hgs
parents:
diff changeset
   147
    TPhoneCallAttributes    iPhoneCallAttributes;
hgs
parents:
diff changeset
   148
    TNetConnAttributes      iNetConnAttributes;
hgs
parents:
diff changeset
   149
    TKeyPressAttributes     iKeyPressAttributes;
hgs
parents:
diff changeset
   150
    TMessageAttributes      iMessageAttributes;
hgs
parents:
diff changeset
   151
    TApplicationsAttributes	iApplicationsAttributes;
hgs
parents:
diff changeset
   152
    TPhotoCaptureAttributes iPhotoCaptureAttributes;
hgs
parents:
diff changeset
   153
    TBluetoothAttributes    iBluetoothAttributes;
hgs
parents:
diff changeset
   154
    TPointerEventAttributes iPointerEventAttributes;
hgs
parents:
diff changeset
   155
	EngineWrapper*          iEngineWrapper; // used for communicating between QT and Symbian
hgs
parents:
diff changeset
   156
	TInt 					iCurrentItemIndex;
hgs
parents:
diff changeset
   157
	TBool                   iEditExistingLoad;
hgs
parents:
diff changeset
   158
	CLoadBase::TLoadState   iLoadStatusBeforeEdit;
hgs
parents:
diff changeset
   159
	
hgs
parents:
diff changeset
   160
	CAsyncCallBack iAsyncRunLoadOperation;
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
	TInt iLoadOperation;
hgs
parents:
diff changeset
   163
	const CArrayFix<TInt>* iSelectionIndexes;
hgs
parents:
diff changeset
   164
	
hgs
parents:
diff changeset
   165
    };
hgs
parents:
diff changeset
   166
 
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
#endif
hgs
parents:
diff changeset
   169