| author | Pat Downey <patd@symbian.org> | 
| Wed, 01 Sep 2010 12:37:10 +0100 | |
| branch | RCL_3 | 
| changeset 21 | 52e343bb8f80 | 
| parent 20 | ca8a1b6995f6 | 
| permissions | -rw-r--r-- | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | /* | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | * All rights reserved. | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | * This component and the accompanying materials are made available | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | * under the terms of "Eclipse Public License v1.0" | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | * which accompanies this distribution, and is available | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | * | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | * Initial Contributors: | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | * Nokia Corporation - initial contribution. | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | * | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | * Contributors: | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | * | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | * Description: | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | * | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | */ | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | #include "MemSpyCommandLine.h" | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | // System includes | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | #include <bacline.h> | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | #include <bautils.h> | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | #include <memspyengineclientinterface.h> | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | #include <memspy/engine/memspyenginehelpersysmemtrackerconfig.h> | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | // User includes | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | #include "MemSpyCommands.h" | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | |
| 21 | 30 | CMemSpyCommandLine::CMemSpyCommandLine() | 
| 31 |     {
 | |
| 20 
ca8a1b6995f6
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 32 | } | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | |
| 21 | 34 | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | CMemSpyCommandLine::~CMemSpyCommandLine() | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 |     {
 | 
| 21 | 37 | if ( iMemSpy ) | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 |         {
 | 
| 21 | 39 | iMemSpy->Close(); | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | } | 
| 21 | 41 | delete iMemSpy; | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | iFsSession.Close(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | void CMemSpyCommandLine::ConstructL() | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 |     {
 | 
| 21 | 48 | User::LeaveIfError( iFsSession.Connect() ); | 
| 49 | iMemSpy = new(ELeave) RMemSpyEngineClientInterface(); | |
| 50 | ConnectToMemSpyL(); | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | |
| 21 | 53 | |
| 54 | CMemSpyCommandLine* CMemSpyCommandLine::NewLC() | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 |     {
 | 
| 21 | 56 | CMemSpyCommandLine* self = new(ELeave) CMemSpyCommandLine(); | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | CleanupStack::PushL( self ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | self->ConstructL(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | return self; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | |
| 21 | 62 | |
| 63 | void CMemSpyCommandLine::PerformBatchL( const TDesC& aFileName ) | |
| 64 |     {
 | |
| 65 | TInt err = KErrNone; | |
| 66 | RFile file; | |
| 67 | err = file.Open( iFsSession, aFileName, EFileRead ); | |
| 68 |     TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformBatchL() - START - this: 0x%08x, openErr: %d, fileName: %S"), this, err, &aFileName ) );
 | |
| 69 | User::LeaveIfError( err ); | |
| 70 | ||
| 71 | CleanupClosePushL( file ); | |
| 72 | CDesCArray* lines = ReadLinesL( file ); | |
| 73 | CleanupStack::PopAndDestroy( &file ); | |
| 74 | CleanupStack::PushL( lines ); | |
| 75 | ||
| 76 | const TInt count = lines->Count(); | |
| 77 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - got %d lines", count ) ); | |
| 78 | iIsBatch = ETrue; | |
| 79 | for( TInt i=0; i<count; i++ ) | |
| 80 |         {
 | |
| 81 | const TPtrC pLine( (*lines)[ i ] ); | |
| 82 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - processing line[%03d] \"%S\""), i, &pLine ) );
 | |
| 83 | ||
| 84 | // Must be at least 3 chars big, i.e. '[' and <command> and then ']' | |
| 85 | if ( pLine.Length() <= 2 || pLine[ 0 ] != '[' ) | |
| 86 |             {
 | |
| 87 |             TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - ignoring line: \"%S\""), &pLine ) );
 | |
| 88 | } | |
| 89 | else if ( pLine[0] == '[' ) | |
| 90 |             {
 | |
| 91 | // Try to find end of command... | |
| 92 | const TInt posOfClosingArgChar = pLine.Locate( ']' ); | |
| 93 | if ( posOfClosingArgChar >= 2 ) | |
| 94 |                 {
 | |
| 95 | // Get command | |
| 96 | const TPtrC pCommand( pLine.Mid( 1, posOfClosingArgChar - 1 ) ); | |
| 97 |                 TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - got command: %S"), &pCommand ) );
 | |
| 98 | ||
| 99 | // Next, try to get any args | |
| 100 | CDesCArrayFlat* args = new(ELeave) CDesCArrayFlat( 2 ); | |
| 101 | CleanupStack::PushL( args ); | |
| 102 | ||
| 103 | // There must be a mandatory space between closing ] and start of args... | |
| 104 | // E.g.: | |
| 105 | // | |
| 106 | // [CMD] ARG | |
| 107 | // | |
| 108 | const TInt remainderLength = pLine.Length() - posOfClosingArgChar; | |
| 109 | if ( remainderLength > 1 ) | |
| 110 |                     {
 | |
| 111 | const TPtrC remainder( pLine.Mid( posOfClosingArgChar + 1 ) ); | |
| 112 |                     TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - got remainder: %S"), &pLine ) );
 | |
| 113 | ||
| 114 | // Extract arguments separated by tabs or space characters | |
| 115 | // and store in arguments array | |
| 116 | HBufC* argText = HBufC::NewLC( pLine.Length() + 1 ); | |
| 117 | TPtr pArgText( argText->Des() ); | |
| 118 | for( TInt j=0; j<remainder.Length(); j++ ) | |
| 119 |                         {
 | |
| 120 | const TChar c( remainder[ j ] ); | |
| 121 | // | |
| 122 | if ( c == '\t' || c == ' ' ) | |
| 123 |                             {
 | |
| 124 | pArgText.Trim(); | |
| 125 | if ( pArgText.Length() ) | |
| 126 |                                 {
 | |
| 127 |                                 TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - arg[%02d] %S"), args->Count(), &pArgText ) );
 | |
| 128 | args->AppendL( pArgText ); | |
| 129 | pArgText.Zero(); | |
| 130 | } | |
| 131 | } | |
| 132 | else | |
| 133 |                             {
 | |
| 134 | pArgText.Append( c ); | |
| 135 | } | |
| 136 | } | |
| 137 | ||
| 138 | // Save leftovers... | |
| 139 | pArgText.Trim(); | |
| 140 | if ( pArgText.Length() ) | |
| 141 |                         {
 | |
| 142 |                         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - arg[%02d] %S"), args->Count(), &pArgText ) );
 | |
| 143 | args->AppendL( pArgText ); | |
| 144 | } | |
| 145 | ||
| 146 | CleanupStack::PopAndDestroy( argText ); | |
| 147 | } | |
| 148 | ||
| 149 | // Now we can perform the operation! | |
| 150 | PerformSingleOpL( pCommand, *args ); | |
| 151 | ||
| 152 | CleanupStack::PopAndDestroy( args ); | |
| 153 | } | |
| 154 | } | |
| 155 | ||
| 156 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - processing line: \"%S\""), &pLine ) );
 | |
| 157 | } | |
| 158 | ||
| 159 | iIsBatch = EFalse; | |
| 160 | ||
| 161 | CleanupStack::PopAndDestroy( lines ); | |
| 162 |     TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformBatchL() - END - this: 0x%08x, fileName: %S"), this, &aFileName ) );
 | |
| 163 | } | |
| 164 | ||
| 165 | ||
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | void CMemSpyCommandLine::PerformOpL( const CCommandLineArguments& aCommandLine ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | const TInt count = aCommandLine.Count(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformOpL() - START - arg count: %d, this: 0x%08x", count, this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | if ( count >= 1 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | // Get main command | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 | TBuf<KMemSpyCommandLineMaxLength> command; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | command.Copy( aCommandLine.Arg( 1 ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | command.UpperCase(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | // Extract arguments into array | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | CDesCArrayFlat* args = new(ELeave) CDesCArrayFlat(4); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | CleanupStack::PushL( args ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | for( TInt i=2; i<count; i++ ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 |             {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 | args->AppendL( aCommandLine.Arg( i ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 | // Perform op | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | PerformSingleOpL( command, *args ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | // Tidy up | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | CleanupStack::PopAndDestroy( args ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | else | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | User::Leave( KErrUnderflow ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | void CMemSpyCommandLine::PerformSingleOpL( const TDesC& aCommand, const CDesCArray& aParameters ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 | // Record duration | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | TTime timeStart; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | timeStart.HomeTime(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | const TInt paramCount = aParameters.Count(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 206 | #ifdef _DEBUG | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 207 |     TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - START - command: %S, paramCount: %d, this: 0x%08x"), &aCommand, paramCount, this ) );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 208 | for( TInt i=0; i<paramCount; i++ ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 209 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 210 | const TPtrC pParam( aParameters[ i ] ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 211 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - param[%02d] = [%S]"), i, &pParam ) );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 212 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 213 | #else | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 214 |     RDebug::Print( _L("[MemSpyCmdLine] COMMAND: [%S] {%02d}..."), &aCommand, paramCount );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 215 | #endif | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 216 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 217 | TFileName batchFile; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 218 | batchFile.Append( aCommand ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 219 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 220 | TInt err = KErrNotSupported; | 
| 21 | 221 | if ( aCommand.CompareF( KMemSpyCmdSWMTForceUpdate ) == 0 ) | 
| 222 |         {
 | |
| 223 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - SWMT_ForceUpdate", this ) ); | |
| 224 | if ( paramCount > 0 ) | |
| 225 |             {
 | |
| 226 | TInt categories( 0 ); | |
| 227 | TName threadNameFilter; | |
| 228 | TRAP( err, ParseSWMTParametersL( aParameters, categories, threadNameFilter ) ); | |
| 229 | if ( !err ) | |
| 230 |                 {
 | |
| 231 | err = iMemSpy->SystemWideMemoryTrackerCategoriesSet( categories ); | |
| 232 | if ( !err && threadNameFilter.Length() > 0 ) | |
| 233 |                     {
 | |
| 234 | err = iMemSpy->SystemWideMemoryTrackerThreadFilterSet( threadNameFilter ); | |
| 235 | } | |
| 236 | } | |
| 237 | } | |
| 238 | if ( !err ) | |
| 239 |             {
 | |
| 240 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpSystemWideMemoryTrackingForceUpdate ); | |
| 241 | } | |
| 242 | } | |
| 243 | else if ( aCommand.CompareF( KMemSpyCmdSWMTReset ) == 0 ) | |
| 244 |         {
 | |
| 245 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - SWMT_Reset", this ) ); | |
| 246 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpSystemWideMemoryTrackingReset ); | |
| 247 | } | |
| 248 | else if ( aCommand.CompareF( KMemSpyCmdHeapDumpKernel ) == 0 ) | |
| 249 |         {
 | |
| 250 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Heap_DumpKernel", this ) ); | |
| 251 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpHeapData, KMemSpyClientServerThreadIdKernel ); | |
| 252 | } | |
| 253 | else if ( aCommand.CompareF( KMemSpyCmdHeapCompact ) == 0 ) | |
| 254 |         {
 | |
| 255 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Heap_Compact", this ) ); | |
| 256 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpHeapInfoCompact ); | |
| 257 | } | |
| 258 | else if ( aCommand.CompareF( KMemSpyCmdContainer ) == 0 ) | |
| 259 |         {
 | |
| 260 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Container", this ) ); | |
| 261 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpEnumerateKernelContainerAll ); | |
| 262 | } | |
| 263 | else if ( aCommand.CompareF( KMemSpyCmdBitmapsSave ) == 0 ) | |
| 264 |         {
 | |
| 265 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Bitmaps_Save", this ) ); | |
| 266 | err = iMemSpy->SaveAllBitmaps(); | |
| 267 | } | |
| 268 | else if ( aCommand.CompareF( KMemSpyCmdRamDisableAknIconCache ) == 0 ) | |
| 269 |         {
 | |
| 270 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Ram_DisableAknIconCache", this ) ); | |
| 271 | err = iMemSpy->DisableAknIconCache(); | |
| 272 | } | |
| 273 | else if ( aCommand.CompareF( KMemSpyCmdOutputToFile ) == 0 ) | |
| 274 |         {
 | |
| 275 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Output_ToFile", this ) ); | |
| 276 | err = iMemSpy->SwitchOutputModeFile(); | |
| 277 | } | |
| 278 | else if ( aCommand.CompareF( KMemSpyCmdOutputToTrace ) == 0 ) | |
| 279 |         {
 | |
| 280 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Output_ToTrace", this ) ); | |
| 281 | err = iMemSpy->SwitchOutputModeTrace(); | |
| 282 | } | |
| 283 | else if ( aCommand.CompareF( KMemSpyCmdUiSendToBackground ) == 0 ) | |
| 284 |         {
 | |
| 285 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - UI_Background", this ) ); | |
| 286 | err = iMemSpy->SendToBackground(); | |
| 287 | } | |
| 288 | else if ( aCommand.CompareF( KMemSpyCmdUiBringToForeground ) == 0 ) | |
| 289 |         {
 | |
| 290 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - UI_Foreground", this ) ); | |
| 291 | err = iMemSpy->BringToForeground(); | |
| 292 | } | |
| 293 | else if ( aCommand.CompareF( KMemSpyCmdUiExit ) == 0 ) | |
| 294 |         {
 | |
| 295 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - UI_Exit", this ) ); | |
| 296 | err = iMemSpy->Exit(); | |
| 297 | } | |
| 298 | else if ( aCommand.CompareF( KMemSpyCmdHeapDump ) == 0 ) | |
| 299 |         {
 | |
| 300 | if ( paramCount == 0 ) | |
| 301 |             {
 | |
| 302 | // Dump heap data for all threads | |
| 303 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Heap_Dump (all threads)", this ) ); | |
| 304 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpHeapData ); | |
| 305 | } | |
| 306 | else if ( paramCount >= 1 ) | |
| 307 |             {
 | |
| 308 | // Dump heap data for named thread | |
| 309 | const TPtrC pThreadName( aParameters[ 0 ] ); | |
| 310 |             TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Heap_Dump (%S)"), this, &pThreadName ) );
 | |
| 311 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpHeapData, pThreadName ); | |
| 312 | } | |
| 313 | } | |
| 314 | else if ( aCommand.CompareF( KMemSpyCmdOpenFile ) == 0 ) | |
| 315 |         {
 | |
| 316 | if ( paramCount == 0 ) | |
| 317 |             {
 | |
| 318 | // Dump heap data for all threads | |
| 319 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - OpenFile (all threads)", this ) ); | |
| 320 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpOpenFiles ); | |
| 321 | } | |
| 322 | else if ( paramCount >= 1 ) | |
| 323 |             {
 | |
| 324 | // Dump heap data for named thread | |
| 325 | const TPtrC pThreadName( aParameters[ 0 ] ); | |
| 326 |             TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - OpenFile (%S)"), this, &pThreadName ) );
 | |
| 327 | err = iMemSpy->PerformOperation( EMemSpyClientServerOpOpenFiles, pThreadName ); | |
| 328 | } | |
| 329 | } | |
| 330 | else if ( !iIsBatch && FindBatchFile( batchFile ) == KErrNone ) | |
| 331 |         {
 | |
| 332 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Batch file: %S"), this, &batchFile ) );
 | |
| 333 | PerformBatchL( batchFile ); | |
| 334 | } | |
| 335 | else | |
| 336 |         {
 | |
| 337 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - this: 0x%08x - Unsupported Command: %S"), this, &aCommand ) );
 | |
| 338 | } | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 339 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 340 |     TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::PerformSingleOpL() - END - err: %d, this: 0x%08x, cmd: %S" ), err, this, &aCommand ) );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 341 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 342 | // Calculate duration | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 343 | TTime timeEnd; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 344 | timeEnd.HomeTime(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 345 | TTimeIntervalSeconds interval( 0 ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 346 | timeEnd.SecondsFrom( timeStart, interval ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 347 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 348 | // Print some info | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 349 | if ( err != KErrNone ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 350 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 351 |         RDebug::Print( _L("[MemSpyCmdLine] COMMAND: [%S] {%02d} {%08d sec} => ERROR: %d"), &aCommand, paramCount, interval.Int(), err );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 352 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 353 | else | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 354 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 355 |         RDebug::Print( _L("[MemSpyCmdLine] COMMAND: [%S] {%02d} {%08d sec} => OK"), &aCommand, paramCount, interval.Int() );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 356 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 357 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 358 | // Spacer | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 359 | RDebug::Printf( " " ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 360 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 361 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 362 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 363 | void CMemSpyCommandLine::ConnectToMemSpyL() | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 364 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 365 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ConnectToMemSpyL() - START - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 366 | |
| 21 | 367 | TInt err = iMemSpy->Connect(); | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 368 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ConnectToMemSpyL() - connect #1 err: %d, this: 0x%08x", err, this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 369 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 370 | if ( err == KErrNotFound ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 371 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 372 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ConnectToMemSpyL() - launching MemSpy... - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 373 | LaunchMemSpyL(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 374 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 375 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ConnectToMemSpyL() - launched MemSpy - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 376 | err = iMemSpy->Connect(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 377 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 378 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ConnectToMemSpyL() - connect #2 err: %d, this: 0x%08x", err, this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 379 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 380 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 381 | User::LeaveIfError( err ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 382 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 383 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ConnectToMemSpyL() - END - ok - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 384 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 385 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 386 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 387 | void CMemSpyCommandLine::LaunchMemSpyL() | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 388 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 389 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - START - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 390 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 391 | TInt err = KErrGeneral; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 392 | RProcess proc; | 
| 21 | 393 | |
| 394 | // First try with s60 UI | |
| 395 | err = proc.Create( KMemSpyProcessName1, KNullDesC ); | |
| 396 | if ( err == KErrNone ) | |
| 397 |         {
 | |
| 398 | TFullName fullName; | |
| 399 | proc.FullName( fullName ); | |
| 400 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - Create S60 UI process successfully... - this: 0x%08x, name: %S"), this, &fullName ) );
 | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 401 | |
| 21 | 402 | TRequestStatus status; | 
| 403 | proc.Rendezvous( status ); | |
| 404 | proc.Resume(); | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 405 | |
| 21 | 406 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - MemSpy resumed, waiting for Rendezvous... - this: 0x%08x", this ) ); | 
| 407 | User::WaitForRequest( status ); | |
| 408 | err = status.Int(); | |
| 409 | proc.Close(); | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 410 | |
| 21 | 411 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - Rendezvous complete: %d, this: 0x%08x", err, this ) ); | 
| 412 | } | |
| 413 | if ( err != KErrNone ) | |
| 414 |         {
 | |
| 415 | // Try console UI | |
| 416 | err = proc.Create( KMemSpyProcessName2, KNullDesC ); | |
| 417 | if ( err == KErrNone ) | |
| 418 |             {
 | |
| 419 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - Create Console UI process successfully... - this: 0x%08x", this ) ); | |
| 420 | ||
| 421 | TRequestStatus status; | |
| 422 | proc.Rendezvous( status ); | |
| 423 | proc.Resume(); | |
| 424 | ||
| 425 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - MemSpy resumed, waiting for Rendezvous... - this: 0x%08x", this ) ); | |
| 426 | ||
| 427 | User::WaitForRequest( status ); | |
| 428 | err = status.Int(); | |
| 429 | proc.Close(); | |
| 430 | ||
| 431 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - Rendezvous complete: %d, this: 0x%08x", err, this ) ); | |
| 432 | } | |
| 433 | } | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 434 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 435 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - final error: %d, this: 0x%08x", err, this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 436 | User::LeaveIfError( err ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 437 | User::After( 10 * 1000000 ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 438 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 439 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::LaunchMemSpyL() - END - ok - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 440 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 441 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 442 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 443 | CDesCArray* CMemSpyCommandLine::ReadLinesL( RFile& aFile ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 444 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 445 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - START - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 446 | CDesCArrayFlat* lines = new(ELeave) CDesCArrayFlat( 10 ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 447 | CleanupStack::PushL( lines ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 448 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 449 | TInt size = 0; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 450 | User::LeaveIfError( aFile.Size( size ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 451 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x, file size: %d", this, size ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 452 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 453 | // Read file | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 454 | HBufC8* narrowBuf = HBufC8::NewLC( size ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 455 | TPtr8 pBufNarrow( narrowBuf->Des() ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 456 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x, reading file..." ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 457 | User::LeaveIfError( aFile.Read( pBufNarrow ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 458 | if ( pBufNarrow.Length() <= 2 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 459 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 460 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x - BAD FILE LENGTH", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 461 | User::Leave( KErrCorrupt ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 462 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 463 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 464 | // Look for BOM and convert to unicode | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 465 | HBufC* unicodeText = HBufC::NewL( size ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 466 | TPtr pUnicodeText( unicodeText->Des() ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 467 | if ( pBufNarrow[0] == 0xFF && pBufNarrow[1] == 0xFE ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 468 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 469 | // It's unicode... and we don't want the BOM, hence -2 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 470 | const TInt textLength = size - 2; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 471 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x - UNICODE TEXT - textLength: %d", this, textLength / 2 ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 472 | Mem::Copy( (TUint8 *)pUnicodeText.Ptr(), pBufNarrow.Ptr() + 2, textLength ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 473 | pUnicodeText.SetLength( textLength / 2 ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 474 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 475 | else | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 476 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 477 | // It's ASCII, convert it to unicode... | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 478 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x - ASCII TEXT - textLength: %d", this, size ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 479 | for (TInt i = 0; i<size; i++ ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 480 |             {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 481 | pUnicodeText.Append( pBufNarrow[ i ] ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 482 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 483 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 484 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 485 | // Discard old narrow text | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 486 | CleanupStack::PopAndDestroy( narrowBuf ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 487 | CleanupStack::PushL( unicodeText ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 488 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 489 | // Try to extract lines of text... | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 490 | HBufC* line = HBufC::NewLC( 1024 ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 491 | TPtr pLine( line->Des() ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 492 | const TInt length = unicodeText->Length(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 493 | for( TInt i=0; i<length; i++ ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 494 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 495 | const TChar c( pUnicodeText[ i ] ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 496 | // | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 497 | if ( c == '\r' || c == '\n' ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 498 |             {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 499 | pLine.Trim(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 500 | if ( pLine.Length() ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 501 |                 {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 502 |                 TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x - LINE[%03d] %S"), this, lines->Count(), line ) );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 503 | lines->AppendL( pLine ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 504 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 505 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 506 | pLine.Zero(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 507 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 508 | else | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 509 |             {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 510 | pLine.Append( c ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 511 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 512 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 513 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 514 | // Save last line, just in cae it didn't end with a CR/LF | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 515 | pLine.Trim(); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 516 | if ( pLine.Length() ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 517 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 518 |         TRACE( RDebug::Print( _L("[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - this: 0x%08x - LINE[%03d] %S"), this, lines->Count(), line ) );
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 519 | lines->AppendL( pLine ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 520 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 521 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 522 | CleanupStack::PopAndDestroy( 2, unicodeText ); // line & unicodeText | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 523 | CleanupStack::Pop( lines ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 524 | TRACE( RDebug::Printf( "[MemSpyCmdLine] CMemSpyCommandLine::ReadLinesL() - END - this: 0x%08x", this ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 525 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 526 | return lines; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 527 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 528 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 529 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 530 | void CMemSpyCommandLine::ParseSWMTParametersL( const CDesCArray& aParameters, TInt& aCategories, TDes& aFilter ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 531 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 532 | TInt result(0); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 533 | // Check if the first parameter is a number. | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 534 | // In that case other parameters are ignored. | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 535 | TLex lex( aParameters[ 0 ] ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 536 | if ( lex.Val( result ) != KErrNone ) | 
| 21 | 537 |         {
 | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 538 | // Parameters were given in text form: | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 539 | const TInt count( aParameters.Count() ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 540 | for ( TInt i = 0; i < count ; i++ ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 541 |             {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 542 | if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeHeap ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 543 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryUserHeap | | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 544 | TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryKernelHeap; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 545 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeChunk ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 546 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryLocalChunks | | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 547 | TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryGlobalChunks; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 548 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeCode ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 549 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryRAMLoadedCode; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 550 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeStack ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 551 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryUserStacks; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 552 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeGlobalData ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 553 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryGlobalData; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 554 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeRamDrive ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 555 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryRAMDrive; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 556 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeOpenFile ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 557 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryOpenFiles; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 558 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeDiskSpace ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 559 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryDiskusage; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 560 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeFbserv ) == 0 ) // enables both FABS and BITM | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 561 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryBitmapHandles; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 562 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeHandleGeneric ) == 0 ) // enables both HGEN and HPAS | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 563 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryKernelHandles; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 564 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeFileServerCache ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 565 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryFileServerCache; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 566 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeSystemMemory ) == 0 ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 567 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategorySystemMemory; | 
| 21 | 568 | else if ( aParameters[i].CompareF( KMemSpyCmdSWMTTypeWindowGroup ) == 0 ) | 
| 569 | result |= TMemSpyEngineHelperSysMemTrackerConfig::EMemSpyEngineSysMemTrackerCategoryWindowGroups; | |
| 570 | else if ( aParameters[i].Find( KMemSpyCmdSWMTTypeHeapFilter ) == 0 ) | |
| 571 |                 {
 | |
| 572 | aFilter.Copy( aParameters[i].Right( aParameters[i].Length() -11 ) ); | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 573 | } | 
| 21 | 574 | else | 
| 575 | User::Leave( KErrNotSupported ); | |
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 576 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 577 | } | 
| 21 | 578 | else if ( aParameters.Count() > 1 && aParameters[1].Find( KMemSpyCmdSWMTTypeHeapFilter ) == 0 ) | 
| 0 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 579 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 580 | aFilter.Copy( aParameters[1].Right( aParameters[1].Length() -11 ) ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 581 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 582 | aCategories = result; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 583 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 584 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 585 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 586 | TInt CMemSpyCommandLine::FindBatchFile( TDes &aFileName ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 587 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 588 | if ( BaflUtils::FileExists( iFsSession, aFileName )) return KErrNone; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 589 |     if ( !FindFile( aFileName, _L("\\") ) ) return KErrNone;
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 590 |     if ( !FindFile( aFileName, _L("\\data\\") ) ) return KErrNone;
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 591 |     if ( !FindFile( aFileName, _L("\\documents\\") ) ) return KErrNone;
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 592 |     if ( !FindFile( aFileName, _L("\\temp\\") ) ) return KErrNone;
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 593 |     if ( !FindFile( aFileName, _L("\\system\\temp\\") ) ) return KErrNone;
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 594 |     // if ( !FindFile( aFileName, _L("\\private\\1000484b\\") ) ) return KErrNone; // Mail folder KErrPermissionDenied  
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 595 | return KErrNotFound; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 596 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 597 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 598 | |
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 599 | TInt CMemSpyCommandLine::FindFile( TDes &aFileName, const TDesC &aDirPath ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 600 |     {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 601 | TFindFile fileFinder( iFsSession ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 602 | TInt err = fileFinder.FindByDir( aFileName, aDirPath ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 603 | if ( !err ) | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 604 |         {
 | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 605 | aFileName.Copy( fileFinder.File() ); | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 606 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 607 | return err; | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 608 | } | 
| 
a03f92240627
Revision: 201003
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 609 |