diff -r 8df58d8c99e8 -r b3ffff030d5c core/src/parser.h --- a/core/src/parser.h Tue Oct 26 15:36:30 2010 +0100 +++ b/core/src/parser.h Thu Oct 28 16:54:54 2010 +0100 @@ -42,6 +42,7 @@ }; public: static CParser* NewL(TUint aMode, const TDesC& aDes, RIoSession& aIoSession, RIoReadHandle& aStdin, RIoWriteHandle& aStdout, RIoWriteHandle& aStderr, IoUtils::CEnvironment& aEnv, CCommandFactory& aFactory, MParserObserver* aObserver, TInt aStartingLineNumber = 1); + static CParser* NewL(TUint aMode, RIoReadHandle& aSourceHandle, RIoSession& aIoSession, RIoReadHandle& aStdin, RIoWriteHandle& aStdout, RIoWriteHandle& aStderr, IoUtils::CEnvironment& aEnv, CCommandFactory& aFactory, MParserObserver* aObserver); ~CParser(); void Start(); void Start(TBool& aIsForeground); @@ -62,14 +63,17 @@ EAndOr }; private: - CParser(TUint aMode, const TDesC& aDes, RIoSession& aIoSession, RIoReadHandle& aStdin, RIoWriteHandle& aStdout, RIoWriteHandle& aStderr, IoUtils::CEnvironment& aEnv, CCommandFactory& aFactory, MParserObserver* aObserver, TInt aStartingLineNumber=1); - void ConstructL(); + CParser(TUint aMode, RIoSession& aIoSession, RIoReadHandle& aStdin, RIoWriteHandle& aStdout, RIoWriteHandle& aStderr, IoUtils::CEnvironment& aEnv, CCommandFactory& aFactory, MParserObserver* aObserver, TInt aStartingLineNumber=1); + void ConstructL(const TDesC* aDes, RIoReadHandle* aSourceHandle); void CreateNextPipeLine(TBool* aIsForeground); void CreateNextPipeLineL(TBool* aIsForeground); void FindNextPipeLineL(TPtrC& aData, TCondition& aCondition, TBool& aReachedLineEnd); HBufC* ExpandVariablesLC(const TDesC& aData); - TInt SkipLineRemainder(); + void SkipLineRemainderL(); + void DoSkipLineRemainderL(); void SkipToEnd(); + TBool MoreSourceData() const; + void HandlePipeLineCompleteL(CPipeLine& aPipeLine, const TError& aError); static TInt CompletionCallBack(TAny* aSelf); static TInt NextCallBack(TAny* aSelf); static TInt ExitCallBack(TAny* aSelf); @@ -77,7 +81,6 @@ virtual void HandlePipeLineComplete(CPipeLine& aPipeLine, const TError& aError); private: const TUint iMode; - const TPtrC iData; TCondition iCondition; RIoSession& iIoSession; RIoReadHandle iStdin;