--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/core/src/commands.h Wed Jun 23 15:52:26 2010 +0100
@@ -0,0 +1,1243 @@
+// commands.h
+//
+// Copyright (c) 2006 - 2010 Accenture. All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the "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:
+// Accenture - Initial contribution
+//
+
+
+#ifndef __COMMANDS_H__
+#define __COMMANDS_H__
+
+#include <fshell/common.mmh>
+#include <fshell/consoleextensions.h>
+#include "parser.h"
+#include <hal.h>
+#include <fshell/ioutils.h>
+#include <fshell/memoryaccesscmd.h>
+
+using namespace IoUtils;
+
+
+class CCmdHelp : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdHelp();
+private:
+ CCmdHelp();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ IoUtils::CTextFormatter* iFormatter;
+ TBool iCount;
+ };
+
+
+// Note, this command should never execute as 'exit' has handled explicitly by CParser.
+// It exists so that 'exit' appears in fshell's help list and also to support 'exit --help'.
+class CCmdExit : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdExit();
+private:
+ CCmdExit();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ };
+
+
+class MDirReaderObserver
+ {
+public:
+ virtual void DirReadComplete(TInt aError) = 0;
+ };
+
+
+class CCmdLs : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdLs();
+private:
+ CCmdLs();
+ void ConstructL();
+ void PrintDirContentL(const CDir& aDir);
+ void PrintDirContentL(RDir& aDir);
+ void RecursiveScanDirL(const TDesC& aName);
+ void DoScanDirL();
+ void FormatEntryL(const TEntry& aEntry);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iFileName;
+ TPtrC iBaseDir;
+ TBuf<256> iTempBuf;
+ CTextFormatter* iFormatter;
+ TBool iOptAll;
+ TBool iOptLong;
+ TBool iOptHuman;
+ TBool iOptOnePerLine;
+ TBool iOptRecurse;
+ };
+
+
+class CCmdCd : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdCd();
+private:
+ CCmdCd();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iDir;
+ };
+
+
+class CCmdClear : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdClear();
+private:
+ CCmdClear();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+
+private:
+ TBool iFormFeed;
+ };
+
+
+class CForegroundAdjuster;
+
+class CCmdFg : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdFg();
+private:
+ CCmdFg();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iJobSpec;
+ CForegroundAdjuster* iForegroundAdjuster;
+ };
+
+
+class CCmdBg : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdBg();
+private:
+ CCmdBg();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iJobSpec;
+ CForegroundAdjuster* iForegroundAdjuster;
+ };
+
+
+class CCmdJobs : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdJobs();
+private:
+ CCmdJobs();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+private:
+ CTextFormatter* iFormatter;
+ };
+
+
+class CCmdRm : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdRm();
+private:
+ CCmdRm();
+ TInt DoDelete(const TDesC& aFileName);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ RArray<TFileName2> iFileNames;
+ CFileMan* iFileMan;
+ TBool iRecurse;
+ TBool iForce;
+ };
+
+
+class CCmdCp : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdCp();
+private:
+ CCmdCp();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ void ForciblyCopyFileL(const TDesC& aSourceFileName, const TDesC& aDestFileName);
+private:
+ TFileName2 iFrom;
+ TFileName2 iTo;
+ CFileMan* iFileMan;
+ TBool iRecurse;
+ TBool iForce;
+ TBool iOverwrite;
+ };
+
+
+class CCmdMv : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdMv();
+private:
+ CCmdMv();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iFrom;
+ TFileName2 iTo;
+ CFileMan* iFileMan;
+ };
+
+
+class CCmdMkDir : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdMkDir();
+private:
+ CCmdMkDir();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iDir;
+ TBool iAllowExists;
+ };
+
+
+class CCmdRmDir : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdRmDir();
+private:
+ CCmdRmDir();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ RArray<TFileName2> iDirs;
+ CFileMan* iFileMan;
+ TBool iRecurse;
+ };
+
+
+class CCmdMatch : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdMatch();
+private:
+ CCmdMatch();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iToMatch;
+ TBool iIgnoreCase;
+ TBool iInvertMatch;
+ TBool iCount;
+ };
+
+
+class CCmdEcho : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdEcho();
+private:
+ CCmdEcho();
+ void DoWriteL(const TDesC& aDes);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ enum TAttr
+ {
+ EBold,
+ EUnderscore,
+ EBlink,
+ EInverse,
+ EConceal
+ };
+private:
+ HBufC* iToEcho;
+ TBool iToStderr;
+ TBool iWrap;
+ TUint iIndent;
+ RArray<TInt> iAttributes;
+ ConsoleAttributes::TColor iForegroundColor;
+ ConsoleAttributes::TColor iBackgroundColor;
+ TBool iBinaryMode;
+ TBool iNoNewline;
+ };
+
+
+class CCmdMore : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdMore();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ CCmdMore();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+private:
+ TFileName2 iFile;
+ };
+
+
+class CCmdTrace : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdTrace();
+private:
+ CCmdTrace();
+ void PrintConfig();
+ TInt SetFlag(const TDesC& aFlagName, TBool aSet);
+
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iMask;
+ TUint iIndex;
+ TBool iOptF32;
+ TBool iOptMultiThread;
+ TBool iOptLoader;
+ TBool iOptFat;
+ TBool iOptLffs;
+ TBool iOptIso9660;
+ TBool iOptNtfs;
+ TBool iOptRofs;
+ TBool iOptCompfs;
+ RPointerArray<HBufC> iEnable;
+ RPointerArray<HBufC> iDisable;
+ };
+
+
+class CCmdMemInfo : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdMemInfo();
+private:
+ CCmdMemInfo();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ void AppendLineL(CTextFormatter& aFormatter, const TDesC& aCaption, HALData::TAttribute aHalAttribute, TBool aNewLine);
+private:
+ TUint iUpdateRate;
+ TBool iHumanReadable;
+ TBool iOnlyFreeRam;
+ TBool iOnlyTotalRam;
+ TInt iLastTotalRamUsage;
+ };
+
+
+class CCmdDump : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDump();
+private:
+ CCmdDump();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ RArray<TFileName2> iFileNames;
+ TBool iBinaryMode;
+ };
+
+
+class CCmdSleep : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdSleep();
+private:
+ CCmdSleep();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iDuration;
+ };
+
+
+class CCmdEnv : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdEnv();
+private:
+ CCmdEnv();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ };
+
+
+class CCmdExport : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdExport();
+private:
+ CCmdExport();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iKey;
+ HBufC* iVal;
+ TBool iStdin;
+ TBuf<512> iBuf;
+ };
+
+
+class CCmdSort : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdSort();
+private:
+ CCmdSort();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TBool iReverse;
+ };
+
+
+class CCmdExists : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdExists();
+private:
+ CCmdExists();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iFileName;
+ };
+
+
+class CCmdInfoPrint : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdInfoPrint();
+private:
+ CCmdInfoPrint();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iToPrint;
+ };
+
+
+class CCmdRDebug : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdRDebug();
+private:
+ CCmdRDebug();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iToPrint;
+ };
+
+
+class CCmdDate : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDate();
+private:
+ CCmdDate();
+ void Display(const TTime& aTime);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TBool iUniversalTime;
+ HBufC* iDateToSet;
+ TInt iUtcOffset;
+ TBool iSecure;
+ TBool iRaw;
+ TBool iJustDisplay;
+ TInt64 iRawTimeToSet;
+ TBool iUseTimestampFormat;
+ };
+
+
+class CCmdFsck : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdFsck();
+private:
+ CCmdFsck();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iDriveLetter;
+ };
+
+
+class CCmdDriver : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDriver();
+private:
+ enum TOperation
+ {
+ ELoad,
+ EFree,
+ EFind
+ };
+ enum TType
+ {
+ ELogical,
+ EPhysical
+ };
+private:
+ CCmdDriver();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TOperation iOperation;
+ TType iType;
+ HBufC* iDriverName;
+ };
+
+
+class CCmdChunkInfo : public CMemoryAccessCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdChunkInfo();
+private:
+ CCmdChunkInfo();
+ void DoPrintL();
+ void ListChunksL();
+ void PrintChunkInfoL();
+ void PrintSizeL(const TDesC& aCaption, TInt aSize);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iAddress;
+ TUint iUpdateRate;
+ TBool iHumanReadable;
+ TBool iIncludeSize;
+ HBufC* iOwningProcess;
+ TUint iControllingProcess;
+ TName iName;
+ TFullName iFullName;
+ CTextFormatter* iFormatter;
+ CTextBuffer* iBuf;
+ };
+
+
+class CCmdSvrInfo : public CMemoryAccessCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdSvrInfo();
+private:
+ CCmdSvrInfo();
+ void ListServersL();
+ void ListSessionsL();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iAddress;
+ TName iName;
+ TFullName iFullName;
+#ifdef FSHELL_MEMORY_ACCESS_SUPPORT
+ TServerKernelInfo iServerInfo;
+ TThreadKernelInfo iThreadInfo;
+ TProcessKernelInfo iProcessInfo;
+ TSessionKernelInfo iSessionInfo;
+#endif
+ CTextFormatter* iFormatter;
+ CTextBuffer* iBuf;
+ };
+
+
+class CCmdTickle : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdTickle();
+private:
+ CCmdTickle();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ };
+
+
+class CCmdTicks : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdTicks();
+private:
+ CCmdTicks();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TBool iVerbose;
+ };
+
+
+class CCmdUpTime : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdUpTime();
+private:
+ CCmdUpTime();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TBool iHuman;
+ };
+
+
+class CCmdVar : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdVar();
+private:
+ CCmdVar();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ enum
+ {
+ EDefined,
+ ENotDefined,
+ EEqual,
+ ENotEqual,
+ EAdd,
+ ESubtract,
+ } iOperation;
+ HBufC* iVar1;
+ HBufC* iArg;
+ };
+
+
+class CCmdSource : public CCommandBase, public MParserObserver
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdSource();
+protected:
+ CCmdSource();
+private:
+ void BackupVarL(const TDesC& aKey, HBufC*& aBuf);
+ void RestoreVarL(const TDesC& aKey, const HBufC* aBuf);
+protected: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private: // From MParserObserver.
+ virtual void HandleParserComplete(CParser& aParser, const TError& aError);
+protected:
+ TFileName2 iFileName;
+ HBufC* iArgs;
+ TBool iKeepGoing;
+ HBufC* iScriptData;
+ CParser* iParser;
+ };
+
+
+class CCmdStart : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdStart();
+private:
+ CCmdStart();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TBool iRendezvous;
+ TBool iWait;
+ TInt iTimeout;
+ HBufC* iExe;
+ HBufC* iCommandLine;
+ TBool iMeasure;
+ };
+
+
+class CCmdCompare : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdCompare();
+private:
+ CCmdCompare();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TFileName2 iFileName1;
+ TFileName2 iFileName2;
+ TBool iVerbose;
+ };
+
+
+class CCmdTime : public CCommandBase, public MParserObserver
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdTime();
+private:
+ CCmdTime();
+ void NextIterationL();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private: // From MParserObserver.
+ virtual void HandleParserComplete(CParser& aParser, const TError& aError);
+private:
+ HBufC* iCommandLine;
+ TUint32 iCountBefore;
+ CParser* iParser;
+ TBool iHuman;
+ TBool iFastCounter;
+ TInt iRepeatCount;
+ TInt iIteration;
+ TUint64 iTotalTime;
+ };
+
+
+class CCmdRepeat : public CCommandBase, public MParserObserver
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdRepeat();
+private:
+ CCmdRepeat();
+ void CreateParserL();
+ void HandleParserCompleteL(const TError& aError);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private: // From MParserObserver.
+ virtual void HandleParserComplete(CParser& aParser, const TError& aError);
+private:
+ HBufC* iCommandLine;
+ CParser* iParser;
+ TUint iCount;
+ TUint iNumRepeats;
+ TBool iKeepGoing;
+ TBool iForever;
+ TInt iWaitTime;
+ };
+
+
+class CCmdDebug : public CCommandBase, public MParserObserver
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDebug();
+private:
+ CCmdDebug();
+ void InteractL(const TDesC& aExpandedLine);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private: // From MParserObserver.
+ virtual void HandleParserComplete(CParser& aParser, const TError& aError);
+ virtual void AboutToExecuteLine(const TDesC& aOrignalLine, const TDesC& aExpandedLine);
+ virtual void LineReturned(TInt aError);
+private:
+ TFileName2 iFileName;
+ HBufC* iArgs;
+ TBool iKeepGoing;
+ HBufC* iScriptData;
+ CParser* iParser;
+ };
+
+
+class CCmdReadMem : public CMemoryAccessCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdReadMem();
+private:
+ CCmdReadMem();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iAddress;
+ TUint iSize;
+ TFileName2 iFileName;
+ TInt iThreadId;
+ RFile iFile;
+ };
+
+
+class CCmdE32Header : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdE32Header();
+private:
+ CCmdE32Header();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iFileName;
+ TBool iXip;
+ TBool iNotXip;
+ CTextFormatter* iFormatter;
+ };
+
+
+class CCmdObjInfo : public CMemoryAccessCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdObjInfo();
+private:
+ CCmdObjInfo();
+ void PrintObjectDetailsL(TUint aObjectAddress);
+ void PrintObjectReferencersL(TUint aObjectAddress);
+ void PrintReferencedObjectDetailsL(TOwnerType aOwnerType, TUint aId);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iObjectAddress;
+ TBool iReferencers;
+ TUint iProcessId;
+ TUint iThreadId;
+ TBool iAll;
+ };
+
+class CCmdTouch : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdTouch();
+private:
+ CCmdTouch();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TFileName2 iFileName;
+ };
+
+class CCmdDialog : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDialog();
+private:
+ enum TMode
+ {
+ EModeNotifier,
+ EModeConsole,
+ EModeNull
+ };
+private:
+ CCmdDialog();
+ TMode ModeL() const;
+ void ClearLineL(RIoConsoleWriteHandle& aWriteHandle);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iTitle;
+ HBufC* iBody;
+ HBufC* iButton1;
+ HBufC* iButton2;
+ };
+
+#ifdef __WINS__
+
+class CCmdJit : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdJit();
+private:
+ CCmdJit();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ enum
+ {
+ EStatus,
+ EOn,
+ EOff
+ } iOperation;
+ };
+
+#endif // __WINS__
+
+class CCmdConsole : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdConsole();
+private:
+ CCmdConsole();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TBool iVerbose;
+ TBool iIsRemote;
+ TBool iIsNull;
+ };
+
+class CCmdPcons : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdPcons();
+private:
+ CCmdPcons();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+
+ void CreateL(RIoPersistentConsole& aPcons);
+ void AttachL(RIoPersistentConsole& aPcons, const TDesC& aNewOrExisting, TBool aForce);
+ TInt DoAttach(RIoPersistentConsole& aPcons, RIoConsole& aNew, RIoPersistentConsole::TCloseBehaviour aOnClose);
+private:
+ enum
+ {
+ EList,
+ ENew,
+ EConnect,
+ EStart,
+ EDisconnect,
+ } iOperation;
+ HBufC* iName;
+ HBufC* iCommand;
+ HBufC* iCommandArgs;
+ TBool iVerbose;
+ };
+
+class CCmdIoInfo : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdIoInfo();
+private:
+ CCmdIoInfo();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ RIoHandle::TType iObjectType;
+ HBufC* iMatchString;
+ };
+
+class CCmdReattach : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdReattach();
+private:
+ CCmdReattach();
+ void OpenEndPointLC(RIoEndPoint& aEndPoint, const TDesC& aName);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iJobSpec;
+ HBufC* iStdinEndPointName;
+ HBufC* iStdoutEndPointName;
+ HBufC* iStderrEndPointName;
+ };
+
+class CCmdDisown : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDisown();
+private:
+ CCmdDisown();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ HBufC* iJobSpec;
+ };
+
+class CCmdDebugPort : public CMemoryAccessCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdDebugPort();
+private:
+ CCmdDebugPort();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ TInt iPort;
+ TBool iForce;
+ };
+
+class CCmdRom : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdRom();
+private:
+ CCmdRom();
+ void PrintIntL(TInt32 aInt32, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintIntL(TInt64 aInt64, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintUintL(TUint32 aUint32, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintUintL(TUint64 aUint64, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintAddressL(TLinAddr aAddress, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintSizeL(TInt32 aSize, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintTimeL(TInt64 aTime, const TDesC& aLabel, const TDesC& aDescription);
+ void PrintVersionL(TVersion aVersion, const TDesC& aLabel, const TDesC& aDescription);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void OptionsL(RCommandOptionList& aOptions);
+private:
+ CTextBuffer* iBuffer;
+ TBool iVerbose;
+ TBool iHumanReadable;
+ };
+
+class CCmdWhich : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdWhich();
+private:
+ CCmdWhich();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+
+private:
+ HBufC* iCommand;
+ };
+
+class CCmdTee : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdTee();
+private:
+ CCmdTee();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+ virtual void OptionsL(RCommandOptionList& aOptions);
+
+private:
+ RArray<TFileName2> iFileNames;
+ RArray<RFile> iFiles;
+ TBool iAppend;
+ TBool iRdebug;
+ };
+
+class CCmdError : public CCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdError();
+private:
+ CCmdError();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+
+private:
+ TInt iErrorVal;
+ HBufC* iErrorText;
+ };
+
+class CCmdReboot : public CMemoryAccessCommandBase
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdReboot();
+private:
+ CCmdReboot();
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private:
+ TUint iReason;
+ };
+
+class CCmdForEach : public CCmdSource
+ {
+public:
+ static CCommandBase* NewLC();
+ ~CCmdForEach();
+private:
+ CCmdForEach();
+ void DoNextL(TBool aFirstTime=EFalse);
+private: // From CCommandBase.
+ virtual const TDesC& Name() const;
+ virtual void DoRunL();
+ virtual void ArgumentsL(RCommandArgumentList& aArguments);
+private: // From MParserObserver.
+ virtual void HandleParserComplete(CParser& aParser, const TError& aError);
+private:
+ TFileName2 iDirName;
+ RDir iDir;
+ TInt iLastError;
+ };
+
+#endif // __COMMANDS_H__