diff -r 000000000000 -r 164170e6151a pkiutilities/ocsp/test/script.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkiutilities/ocsp/test/script.cpp Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,191 @@ +// Copyright (c) 2001-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: +// Reads lines from script using idle tick for each. Parse into tokens, pass to command object. +// +// + +#include "script.h" +#include "command.h" + +#include +#include + +CTOCSPScript* CTOCSPScript::NewLC(CTOCSPLogger& aLog, + CTOCSPResult& aResult, + const TDesC& aInputFileName, + TInt aTransaction) + { + CTOCSPScript* self = new (ELeave) CTOCSPScript(aLog); + CleanupStack::PushL(self); + self->ConstructL(aInputFileName, aResult, aTransaction); + return self; + } + + +CTOCSPScript* CTOCSPScript::NewL(CTOCSPLogger& aLog, + CTOCSPResult& aResult, + const TDesC& aInputFileName, + TInt aTransaction) + { + CTOCSPScript* self = NewLC(aLog, aResult, aInputFileName, aTransaction); + CleanupStack::Pop(self); + return self; + } +//******************************************************************** +CTOCSPScript* CTOCSPScript::NewL(CTOCSPLogger& aLog, + CTOCSPResult& aResult, + TInt aTransaction) + { + CTOCSPScript* self = NewLC(aLog, aResult, aTransaction); + CleanupStack::Pop(self); + return self; + } + +CTOCSPScript* CTOCSPScript::NewLC(CTOCSPLogger& aLog, + CTOCSPResult& aResult, + TInt aTransaction) + { + CTOCSPScript* self = new (ELeave) CTOCSPScript(aLog); + CleanupStack::PushL(self); + self->ConstructL(aResult, aTransaction); + return self; + } + +void CTOCSPScript::ConstructL(CTOCSPResult& aResult, TInt aTransaction) + { + CActiveScheduler::Add(this); + + iCommand = CTOCSPCommand::NewL(iLog, aResult, aTransaction); + + } + +//********************************************************************* + +CTOCSPScript::CTOCSPScript(CTOCSPLogger& aLog) : + CActive(EPriorityNormal), + iLog(aLog) + { + } + + +void CTOCSPScript::ConstructL(const TDesC& aInputFileName, CTOCSPResult& aResult, TInt aTransaction) + { + CActiveScheduler::Add(this); + + iCommand = CTOCSPCommand::NewL(iLog, aResult, aTransaction); + + User::LeaveIfError(iFs.Connect()); + TInt err = iFile.Open(iFs, aInputFileName, EFileRead | EFileShareAny); + if (err != KErrNone) + { + iLog.LogL(_L("Error while opening ")); + iLog.LogL(aInputFileName); + iLog.NewLineL(); + User::Leave(err); + } + iLineReader.Set(iFile); + } + + +CTOCSPScript::~CTOCSPScript() + { + Cancel(); + iFile.Close(); + iFs.Close(); + + delete iCommand; + } + + +void CTOCSPScript::RunTestL(TRequestStatus& aStatus) + { + iClientRequestStatus = &aStatus; + aStatus = KRequestPending; + ReadLineL(); + } + + +TInt CTOCSPScript::TransactionCount() + { + return iCommand->CurrentTransaction(); + } + + +void CTOCSPScript::RunL() + { + User::LeaveIfError(iStatus.Int()); + ReadLineL(); + } + + +void CTOCSPScript::DoCancel() + { + iCommand->Cancel(); + } + + +TInt CTOCSPScript::RunError(TInt aError) + { + User::RequestComplete(iClientRequestStatus, aError); + return KErrNone; + } + + + +// void CTOCSPScript::ReadLineL()f- +//reads in from the TDes +void CTOCSPScript::ReadLineL() + { + TInt error = iLineReader.Read(iLine); + + if (error == KErrNone) + { + ++iLinesProcessed; + TBool carryOn = iCommand->ProcessCommand(iLine, iStatus); + + if (carryOn) + { + SetActive(); + } + else + { + User::RequestComplete(iClientRequestStatus, KErrNone); + } + } + else if (error == KErrEof) + { + User::RequestComplete(iClientRequestStatus, KErrNone); + } + else + { + User::Leave(error); + } + } + + +void CTOCSPScript::SetVerbose(TBool aVerbose) + { + iCommand->SetVerbose(aVerbose); + } + + +TInt CTOCSPScript::LinesProcessed() const + { + return iLinesProcessed; + } + +const TDesC& CTOCSPScript::LastLine() const + { + return iLine; + }