diff -r 675a964f4eb5 -r 35751d3474b7 cryptomgmtlibs/securitytestfw/test/testhandler2/t_output.cpp --- a/cryptomgmtlibs/securitytestfw/test/testhandler2/t_output.cpp Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptomgmtlibs/securitytestfw/test/testhandler2/t_output.cpp Thu Sep 10 14:01:51 2009 +0300 @@ -1,252 +1,253 @@ -/* -* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: -* -*/ - - -#include "t_output.h" -#include - -// Size used for stack based buffers -const static TInt KMaxLineLength = 200; - -_LIT(KNewLine, "\r\n"); - -// Output ////////////////////////////////////////////////////////////////////// - -EXPORT_C void Output::writeString(const TDesC& aString) - { - FixNewlinesAndWriteL(aString); - } - -EXPORT_C void Output::writeString(const TDesC8& aString) - { - HBufC16* des = HBufC16::NewLC(aString.Length()); - des->Des().Copy(aString); - FixNewlinesAndWriteL(*des); - CleanupStack::PopAndDestroy(des); - } - -EXPORT_C void Output::write(TRefByValue aFmt, ...) - { - TBuf buf; - VA_LIST args; - VA_START(args, aFmt); - buf.AppendFormatList(aFmt, args); - VA_END(args); - - FixNewlinesAndWriteL(buf); - } - -EXPORT_C void Output::writeSpaces(TInt aNum) - { - for (TInt i = 0; i < aNum; i++) - { - DoWriteL(_L(" ")); - } - } - -EXPORT_C void Output::writeNewLine() - { - DoWriteL(KNewLine); - } - -EXPORT_C void Output::writeNum(TInt aNum) - { - write(_L("%d"), aNum); - } - -EXPORT_C void Output::writeHex(TInt aHex) - { - write(_L("%x"), aHex); - } - -EXPORT_C void Output::writeError(TInt aError) - { - switch (aError) - { - case KErrNone: // 0 - DoWriteL(_L("KErrNone")); - break; - - case KErrNotFound: // -1 - DoWriteL(_L("KErrNotFound")); - break; - - case KErrNotSupported: // -5 - DoWriteL(_L("KErrNotSupported")); - break; - - case KErrInUse: // -14 - DoWriteL(_L("KErrInUse")); - break; - - case KErrNotReady: // -18 - DoWriteL(_L("KErrNotReady")); - break; - - case KRequestPending: - DoWriteL(_L("KRequestPending")); - break; - - case KErrAlreadyExists: - DoWriteL(_L("KErrAlreadyExists")); - break; - - case KErrArgument: - DoWriteL(_L("KErrArgument")); - break; - - case KErrBadName: // -28 - DoWriteL(_L("KErrBadName")); - break; - case KErrPrivateKeyNotFound: - writeString(_L("KErrPrivateKeyNotFound")); - break; - - default: - writeNum(aError); - break; - } - } - -EXPORT_C void Output::writeOctetString(const TDesC8& aString) - { - writeOctetStringL(aString); - } - -EXPORT_C void Output::writeOctetStringL(const TDesC8& aString) - { - TInt len = aString.Length(); - HBufC* buf = HBufC::NewLC(len * 3); - TPtr pBuf = buf->Des(); - for (TInt index = 0; index < len; ++index) - { - pBuf.AppendFormat(_L("%02x "),aString[index]); - } - DoWriteL(*buf); - CleanupStack::PopAndDestroy(buf); - } - -EXPORT_C void Output::writeBoolL(TBool aBool) - { - if (aBool) - { - DoWriteL(_L("ETrue")); - } - else - { - DoWriteL(_L("EFalse")); - } - } - -// Fix up newlines by turning any occurences of just "\n" into "\r\n". -void Output::FixNewlinesAndWriteL(const TDesC& aString) - { - TPtrC remainder(aString); - TInt index = 0; - while (remainder.Length()) - { - index = remainder.Locate('\n'); - - if (index == KErrNotFound) - { - DoWriteL(remainder); - break; - } - - if (index == 0) - { - DoWriteL(KNewLine); - } - else - { - if (remainder[index - 1] == '\r') - { - DoWriteL(remainder.Left(index + 1)); - } - else - { - DoWriteL(remainder.Left(index)); - DoWriteL(KNewLine); - } - } - remainder.Set(remainder.Mid(index + 1)); - } - } - -// writeCapabilityL, writeCapabilitySetL, writeSecurityPolicyL implemented in -// t_capability.cpp - -// NullOutput ////////////////////////////////////////////////////////////////// - -EXPORT_C NullOutput::NullOutput() - { - } - -void NullOutput::DoWriteL(const TDesC& /*aString*/) - { - } - -// FileOutput ////////////////////////////////////////////////////////////////// - -EXPORT_C FileOutput::FileOutput(RFile& aFile) : - iFile(aFile) - { - } - -void FileOutput::DoWriteL(const TDesC& aString) - { - TBuf8 buf; - buf.Copy(aString.Left(KMaxLineLength)); - User::LeaveIfError(iFile.Write(buf)); - User::LeaveIfError(iFile.Flush()); // Commit data - } - -// ConsoleOutput /////////////////////////////////////////////////////////////// - -EXPORT_C ConsoleOutput::ConsoleOutput(CConsoleBase& aConsole) : - iConsole(aConsole) - { - } - -void ConsoleOutput::DoWriteL(const TDesC& aString) - { - iConsole.Printf(aString); - } - -// COutputTee ////////////////////////////////////////////////////////////////// - -COutputTee::COutputTee() - { - } - -COutputTee::~COutputTee() - { - iChildren.ResetAndDestroy(); - } - -void COutputTee::AddChildL(Output* aChild) - { - User::LeaveIfError(iChildren.Append(aChild)); - } - -void COutputTee::DoWriteL(const TDesC& aString) - { - for (TInt i = 0 ; i < iChildren.Count() ; ++i) - { - iChildren[i]->writeString(aString); - } - } +/* +* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + +#include "t_output.h" +#include + +// Size used for stack based buffers +const static TInt KMaxLineLength = 200; + +_LIT(KNewLine, "\r\n"); + +// Output ////////////////////////////////////////////////////////////////////// + +EXPORT_C void Output::writeString(const TDesC& aString) + { + FixNewlinesAndWriteL(aString); + } + +EXPORT_C void Output::writeString(const TDesC8& aString) + { + HBufC16* des = HBufC16::NewLC(aString.Length()); + des->Des().Copy(aString); + FixNewlinesAndWriteL(*des); + CleanupStack::PopAndDestroy(des); + } + +EXPORT_C void Output::write(TRefByValue aFmt, ...) + { + TBuf buf; + VA_LIST args; + VA_START(args, aFmt); + buf.AppendFormatList(aFmt, args); + VA_END(args); + + FixNewlinesAndWriteL(buf); + } + +EXPORT_C void Output::writeSpaces(TInt aNum) + { + for (TInt i = 0; i < aNum; i++) + { + DoWriteL(_L(" ")); + } + } + +EXPORT_C void Output::writeNewLine() + { + DoWriteL(KNewLine); + } + +EXPORT_C void Output::writeNum(TInt aNum) + { + write(_L("%d"), aNum); + } + +EXPORT_C void Output::writeHex(TInt aHex) + { + write(_L("%x"), aHex); + } + +EXPORT_C void Output::writeError(TInt aError) + { + switch (aError) + { + case KErrNone: // 0 + DoWriteL(_L("KErrNone")); + break; + + case KErrNotFound: // -1 + DoWriteL(_L("KErrNotFound")); + break; + + case KErrNotSupported: // -5 + DoWriteL(_L("KErrNotSupported")); + break; + + case KErrInUse: // -14 + DoWriteL(_L("KErrInUse")); + break; + + case KErrNotReady: // -18 + DoWriteL(_L("KErrNotReady")); + break; + + case KRequestPending: + DoWriteL(_L("KRequestPending")); + break; + + case KErrAlreadyExists: + DoWriteL(_L("KErrAlreadyExists")); + break; + + case KErrArgument: + DoWriteL(_L("KErrArgument")); + break; + + case KErrBadName: // -28 + DoWriteL(_L("KErrBadName")); + break; + case KErrPrivateKeyNotFound: + writeString(_L("KErrPrivateKeyNotFound")); + break; + + default: + writeNum(aError); + break; + } + } + +EXPORT_C void Output::writeOctetString(const TDesC8& aString) + { + writeOctetStringL(aString); + } + +EXPORT_C void Output::writeOctetStringL(const TDesC8& aString) + { + TInt len = aString.Length(); + HBufC* buf = HBufC::NewLC(len * 3); + TPtr pBuf = buf->Des(); + for (TInt index = 0; index < len; ++index) + { + pBuf.AppendFormat(_L("%02x "),aString[index]); + } + DoWriteL(*buf); + CleanupStack::PopAndDestroy(buf); + } + +EXPORT_C void Output::writeBoolL(TBool aBool) + { + if (aBool) + { + DoWriteL(_L("ETrue")); + } + else + { + DoWriteL(_L("EFalse")); + } + } + +// Fix up newlines by turning any occurences of just "\n" into "\r\n". +void Output::FixNewlinesAndWriteL(const TDesC& aString) + { + TPtrC remainder(aString); + TInt index = 0; + while (remainder.Length()) + { + index = remainder.Locate('\n'); + + if (index == KErrNotFound) + { + DoWriteL(remainder); + break; + } + + if (index == 0) + { + DoWriteL(KNewLine); + } + else + { + if (remainder[index - 1] == '\r') + { + DoWriteL(remainder.Left(index + 1)); + } + else + { + DoWriteL(remainder.Left(index)); + DoWriteL(KNewLine); + } + } + remainder.Set(remainder.Mid(index + 1)); + } + } + +// writeCapabilityL, writeCapabilitySetL, writeSecurityPolicyL implemented in +// t_capability.cpp + +// NullOutput ////////////////////////////////////////////////////////////////// + +EXPORT_C NullOutput::NullOutput() + { + } + +void NullOutput::DoWriteL(const TDesC& /*aString*/) + { + } + +// FileOutput ////////////////////////////////////////////////////////////////// + +EXPORT_C FileOutput::FileOutput(RFile& aFile) : + iFile(aFile) + { + } + +void FileOutput::DoWriteL(const TDesC& aString) + { + TBuf8 buf; + buf.Copy(aString.Left(KMaxLineLength)); + User::LeaveIfError(iFile.Write(buf)); + User::LeaveIfError(iFile.Flush()); // Commit data + } + +// ConsoleOutput /////////////////////////////////////////////////////////////// + +EXPORT_C ConsoleOutput::ConsoleOutput(CConsoleBase& aConsole) : + iConsole(aConsole) + { + } + +void ConsoleOutput::DoWriteL(const TDesC& aString) + { + iConsole.Printf(aString); + } + +// COutputTee ////////////////////////////////////////////////////////////////// + +COutputTee::COutputTee() + { + } + +COutputTee::~COutputTee() + { + iChildren.ResetAndDestroy(); + } + +void COutputTee::AddChildL(Output* aChild) + { + User::LeaveIfError(iChildren.Append(aChild)); + } + +void COutputTee::DoWriteL(const TDesC& aString) + { + for (TInt i = 0 ; i < iChildren.Count() ; ++i) + { + iChildren[i]->writeString(aString); + } + } +