perfsrv/memspy/CommandLine/Include/MemSpyCommandLine.h
changeset 48 516af714ebb4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/perfsrv/memspy/CommandLine/Include/MemSpyCommandLine.h	Fri Sep 17 08:38:31 2010 +0300
@@ -0,0 +1,96 @@
+/*
+* 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 MEMSPYCOMMANDLINE_H
+#define MEMSPYCOMMANDLINE_H
+
+// System includes
+#include <e32base.h>
+#include <f32file.h>
+#include <badesca.h>
+#include <e32cons.h>
+
+#include "MemSpyCommands.h"
+
+#ifdef _DEBUG
+#   define TRACE( x ) x
+#else
+#   define TRACE( x )
+#endif
+
+// Constants
+const TInt KMemSpyCommandLineMaxLength = 128;
+
+// Classes referenced
+class RFs;
+class CCommandLineArguments;
+class RMemSpyEngineClientInterface;
+class CConsoleBase;
+class RMemSpySession;
+
+class CMemSpyCommandLine :  public CActive
+    {
+public:
+    //static CMemSpyCommandLine* NewLC();
+	static CMemSpyCommandLine* NewLC( CConsoleBase& aConsole );
+    ~CMemSpyCommandLine();
+
+private:
+    //CMemSpyCommandLine();
+    CMemSpyCommandLine( CConsoleBase& aConsole );
+    void ConstructL();
+
+public: // API
+    //void PerformBatchL( const TDesC& aFileName ); 	//support of the batch files removed 
+    void PerformOpL( const CCommandLineArguments& aCommandLine );
+    void PerformSingleOpL( const TDesC& aCommand, const CDesCArray& aParameters );
+    //
+    //AO request method
+    void WaitForInput();
+
+private: // Internal methods
+    void ConnectToMemSpyL();
+    void LaunchMemSpyL();
+    CDesCArray* ReadLinesL( RFile& aFile );
+    void ParseSWMTParametersL( const CDesCArray& aParameters, TInt& aCategories, TDes& aFilter );
+    TInt FindBatchFile( TDes &aFileName );
+    TInt FindFile( TDes &aFileName, const TDesC &aDirPath );
+
+private: // Console write methods
+    void RedrawInputPrompt();
+    void RedrawStatusMessage();
+    void RedrawStatusMessage( const TDesC& aMessage );
+    void ProcessCommandBufferL();
+    void RunL(); // from CActive
+    TInt RunError( TInt aError );
+    void DoCancel();
+    
+private: // Data members
+    RFs iFsSession;
+    RMemSpyEngineClientInterface* iMemSpy;
+    RMemSpySession* iMemSpySession;
+    TBool iIsBatch; // For avoiding recursion
+    
+private: // Data members - console - write status messages
+    CConsoleBase& iConsole;
+    TPoint iCommandPromptPos;
+    TPoint iStatusMessagePos;
+    TBuf<KMemSpyMaxInputBufferLength> iCommandBuffer;
+    };
+
+
+#endif