|
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 #ifndef MEMSPYDEVICEWIDEOPERATIONDIALOG_H |
|
19 #define MEMSPYDEVICEWIDEOPERATIONDIALOG_H |
|
20 |
|
21 // System includes |
|
22 #include <AknProgressDialog.h> |
|
23 #include <AknWaitDialog.h> |
|
24 #include <e32cmn.h> |
|
25 |
|
26 // Engine includes |
|
27 #include <memspy/engine/memspydevicewideoperations.h> |
|
28 #include <memspyengineclientinterface.h> |
|
29 #include <memspysession.h> |
|
30 |
|
31 //#include "MemSpyAppUi.h" |
|
32 |
|
33 // Classes referenced |
|
34 //class RMemSpySession; |
|
35 |
|
36 enum TDeviceWideOperation |
|
37 { |
|
38 OutputPhoneInfo = 0, |
|
39 |
|
40 OutputDetailedPhoneInfo, |
|
41 |
|
42 OutputHeapInfo, |
|
43 |
|
44 OutputCompactHeapInfo, |
|
45 |
|
46 OutputHeapCellListing, |
|
47 |
|
48 OutputHeapData, |
|
49 |
|
50 OutputStackInfo, |
|
51 |
|
52 OutputCompactStackInfo, |
|
53 |
|
54 OutputUserStackData, |
|
55 |
|
56 OutputKernelStackData |
|
57 }; |
|
58 |
|
59 |
|
60 class MMemSpyDeviceWideOperationDialogObserver |
|
61 { |
|
62 public: |
|
63 virtual void DWOperationStarted() = 0; |
|
64 virtual void DWOperationCancelled() = 0; |
|
65 virtual void DWOperationCompleted() = 0; |
|
66 }; |
|
67 |
|
68 |
|
69 class CMemSpyDwoProgressTracker : public CActive, public MProgressDialogCallback |
|
70 { |
|
71 public: |
|
72 CMemSpyDwoProgressTracker(RMemSpySession &aSession); |
|
73 |
|
74 virtual ~CMemSpyDwoProgressTracker(); |
|
75 |
|
76 void Start(); |
|
77 |
|
78 void Cancel(); |
|
79 |
|
80 TMemSpyDeviceWideOperationProgress Progress() { return iProgress; } |
|
81 |
|
82 CAknProgressDialog* ProgressDialog() { return iProgressDialog; } |
|
83 |
|
84 void UpdateProcessDialogL( TInt aProgress, const TDesC& aProgressText ); |
|
85 |
|
86 protected: // from CActive |
|
87 |
|
88 void DialogDismissedL(TInt aButtonId); |
|
89 |
|
90 virtual void RunL(); |
|
91 |
|
92 virtual void DoCancel(); |
|
93 |
|
94 virtual TInt RunError(TInt aError); |
|
95 |
|
96 private: |
|
97 TMemSpyDeviceWideOperationProgress iProgress; |
|
98 RMemSpySession iSession; |
|
99 |
|
100 CEikProgressInfo* iProgressInfo; |
|
101 CAknProgressDialog* iProgressDialog; |
|
102 }; |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 class CMemSpyDwoTracker : public CActive |
|
110 { |
|
111 public: |
|
112 CMemSpyDwoTracker(RMemSpySession &aSession, TDeviceWideOperation aOperation); |
|
113 |
|
114 virtual ~CMemSpyDwoTracker(); |
|
115 |
|
116 void Start(); |
|
117 |
|
118 void Cancel(); |
|
119 |
|
120 protected: // from CActive |
|
121 |
|
122 virtual void RunL(); |
|
123 |
|
124 virtual void DoCancel(); |
|
125 |
|
126 virtual TInt RunError(TInt aError); |
|
127 |
|
128 private: |
|
129 RMemSpySession iSession; |
|
130 CMemSpyDwoProgressTracker *iProgressTracker; |
|
131 TDeviceWideOperation iOperation; |
|
132 }; |
|
133 |
|
134 |
|
135 |
|
136 |
|
137 |
|
138 |
|
139 |
|
140 class CMemSpyDeviceWideOperationDialog : public CBase, public MProgressDialogCallback, public MMemSpyDeviceWideOperationsObserver |
|
141 { |
|
142 public: |
|
143 //static void ExecuteLD( CMemSpyEngine& aEngine, MMemSpyDeviceWideOperationDialogObserver& aObserver, CMemSpyDeviceWideOperations::TOperation aOperation ); |
|
144 //static void ExecuteLD( RMemSpySession& aSession, MMemSpyDeviceWideOperationDialogObserver& aObserver, CMemSpyDeviceWideOperations::TOperation aOperation ); |
|
145 static void ExecuteLD( RMemSpySession& aSession, TDeviceWideOperation aOp ); |
|
146 ~CMemSpyDeviceWideOperationDialog(); |
|
147 |
|
148 //added |
|
149 static CMemSpyDwoTracker* CreateDeviceWideOperation( RMemSpySession& aSession, TDeviceWideOperation aOp ); |
|
150 |
|
151 private: |
|
152 //CMemSpyDeviceWideOperationDialog( CMemSpyEngine& aEngine, MMemSpyDeviceWideOperationDialogObserver& aObserver ); |
|
153 //CMemSpyDeviceWideOperationDialog( RMemSpySession& aSession, MMemSpyDeviceWideOperationDialogObserver& aObserver ); |
|
154 CMemSpyDeviceWideOperationDialog( RMemSpySession& aSession ); |
|
155 //void ExecuteL( CMemSpyDeviceWideOperations::TOperation aOperation ); |
|
156 void ExecuteL( TDeviceWideOperation aOp ); |
|
157 |
|
158 public: // API |
|
159 void Cancel(); |
|
160 |
|
161 private: // From MProgressDialogCallback |
|
162 void DialogDismissedL( TInt aButtonId ); |
|
163 |
|
164 private: // From MMemSpyDeviceWideOperationsObserver |
|
165 void HandleDeviceWideOperationEvent( TEvent aEvent, TInt aParam1, const TDesC& aParam2 ); |
|
166 |
|
167 private: // Internal methods |
|
168 void SetDialogCaptionL( const TDesC& aText ); |
|
169 |
|
170 private: // Member data |
|
171 //CMemSpyEngine& iEngine; |
|
172 RMemSpySession iSession; |
|
173 //MMemSpyDeviceWideOperationDialogObserver& iObserver; |
|
174 TBool iForcedCancel; |
|
175 CEikProgressInfo* iProgressInfo; |
|
176 CAknProgressDialog* iProgressDialog; |
|
177 CMemSpyDeviceWideOperations* iOperation; |
|
178 }; |
|
179 |
|
180 #endif |