diff -r bbd31066657e -r 8bb370ba6d1d testexecfw/stf/stffw/logger/STFLoggingServer/src/TxtLogger.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/stf/stffw/logger/STFLoggingServer/src/TxtLogger.cpp Fri Apr 09 10:46:28 2010 +0800 @@ -0,0 +1,316 @@ +/* + * 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: This module contains implementation of CTxtLogger + * class member functions + * + */ + +// INCLUDE FILES +#include +#include "TxtLogger.h" +#include "Output.h" +#include "LoggerTracing.h" + +// EXTERNAL DATA STRUCTURES +// None + +// EXTERNAL FUNCTION PROTOTYPES +// None + +// CONSTANTS +// None + +// MACROS +// None + +// LOCAL CONSTANTS AND MACROS +// None + +// MODULE DATA STRUCTURES +// None + +// LOCAL FUNCTION PROTOTYPES +// None + +// FORWARD DECLARATIONS +// None + +// ==================== LOCAL FUNCTIONS ======================================= +// None + +// ================= MEMBER FUNCTIONS ========================================= + +/* + ------------------------------------------------------------------------------- + + Class: CTxtLogger + + Method: CTxtLogger + + Description: Default constructor + + C++ default constructor can NOT contain any code, that + might leave. + + Parameters: COutput* output: in: Output source + + Return Values: None + + Errors/Exceptions: None + + Status: Approved + + ------------------------------------------------------------------------------- + */ +CTxtLogger::CTxtLogger(COutput* output) + { + + iOutput = output; + + } + +/* + ------------------------------------------------------------------------------- + + Class: CTxtLogger + + Method: ConstructL + + Description: Symbian OS second phase constructor + + Symbian OS default constructor can leave. + + Parameters: None + + Return Values: None + + Errors/Exceptions: None + + Status: Approved + + ------------------------------------------------------------------------------- + */ +void CTxtLogger::ConstructL() + { + //Nothing to do. + } + +/* + ------------------------------------------------------------------------------- + + Class: CTxtLogger + + Method: NewL + + Description: Two-phased constructor. + + Parameters: const TDesC& aTestPath: in: Log path + const TDesC& aTestFile: in: Log filename + TLoggerType aLoggerType: in: File type + TOutput aOutput: in: Output source + TBool aOverWrite: in: For file overwrite + TBool aWithTimeStamp: in: For timestamp + TBool aWithLineBreak: in: For line break + TBool aWithEventRanking: in: For events ranking to file + TBool aThreadIdToLogFile: in: Indicator to thread id adding to + end of the log file + TBool aCreateLogDir: in: Indicator to directory creation + TInt aStaticBufferSize + TBool aUnicode: in: Indicator if file has to be in unicode format + + Return Values: CTxtLogger*: pointer to CTxtLogger object + + Errors/Exceptions: Leaves if called COutput::NewL method fails + + Status: Proposal + + ------------------------------------------------------------------------------- + */ +CTxtLogger* CTxtLogger::NewL(const TDesC& aTestPath, const TDesC& aTestFile, + CStifLogger::TLoggerType aLoggerType, CStifLogger::TOutput aOutput, + TBool aOverWrite, TBool aWithTimeStamp, TBool aWithLineBreak, + TBool aWithEventRanking, TBool aThreadIdToLogFile, + TBool aCreateLogDir, TInt aStaticBufferSize, TBool aUnicode, TInt aThreadId) + { + __TRACE( KInfo, ( _L( "STIFLOGGER: Creating txt logger" ) ) ); + + // Create COutput object output + COutput* output = COutput::NewL(aTestPath, aTestFile, aLoggerType, + aOutput, aOverWrite, aWithTimeStamp, aWithLineBreak, + aWithEventRanking, aThreadIdToLogFile, aCreateLogDir, + aStaticBufferSize, aUnicode, aThreadId); + + CleanupStack::PushL(output); + __ASSERT_ALWAYS( output != NULL, User::Leave( KErrNotFound ) ); + // Create CTxtLogger object txtLogger and bind to COutput + CTxtLogger* txtLogger = new (ELeave) CTxtLogger(output); + // TXT logger owns output object and it will be destroyed in STIFLogger + // destructor. + CleanupStack::Pop(output); + + CleanupStack::PushL(txtLogger); + txtLogger->ConstructL(); + CleanupStack::Pop(txtLogger); + + return txtLogger; + + } + +/* + ------------------------------------------------------------------------------- + + Class: CTxtLogger + + Method: ~CTxtLogger + + Description: Destructor + + Parameters: None + + Return Values: None + + Errors/Exceptions: None + + Status: Approved + + ------------------------------------------------------------------------------- + */ +CTxtLogger::~CTxtLogger() + { + } + +/* + ------------------------------------------------------------------------------- + + Class: CTxtLogger + + Method: Send + + Description: Send style information and 16 bit data to the output module. + + Parameters: TInt TStyle: in: Text forming + const TDesC& aData: in: Data to be logged + + Return Values: TInt: Symbian error code. + + Errors/Exceptions: None + + Status: Approved + + ------------------------------------------------------------------------------- + */ +TInt CTxtLogger::Send(TInt aStyle, const TDesC& aData) + { + // Time stamp indicator + TBool timestamp(ETrue); + // Event ranking indicator + TBool eventranking(ETrue); + + // Only EError, EWarning and EImportant styles are supporter in txt logging + if (0x00100 <= aStyle) // EError, 0x00100 => 256 + { + iOutput->Write(timestamp, EFalse, eventranking, _L( "ERROR " )); + aStyle -= 0x00100; + timestamp = EFalse; // Time stamp added no time stamp to the + // forward operations + eventranking = EFalse; // Event ranking added no event ranking to the + // forward operations + } + if (0x00080 <= aStyle) // EWarning, 0x00080 => 128 + { + iOutput->Write(timestamp, EFalse, eventranking, _L( "WARNING " )); + aStyle -= 0x00080; + timestamp = EFalse; // Time stamp added no time stamp to the + // forward operations + eventranking = EFalse; // Event ranking added no event ranking to the + // forward operations + } + if (0x00040 <= aStyle) // EImportant, 0x00040 => 64 + { + iOutput->Write(timestamp, EFalse, eventranking, _L( "IMPORTANT " )); + aStyle -= 0x00040; + timestamp = EFalse; // Time stamp added no time stamp to the + // forward operations + eventranking = EFalse; // Event ranking added no event ranking to the + // forward operations + } + + return iOutput->Write(timestamp, ETrue, eventranking, aData); + + } + +/* + ------------------------------------------------------------------------------- + + Class: CTxtLogger + + Method: Send + + Description: Send style information and 8 bit data to the output module. + + Parameters: TInt TStyle: in: Text forming + const TDesC8& aData: in: Data to be logged + + Return Values: TInt: Symbian error code. + + Errors/Exceptions: None + + Status: Approved + + ------------------------------------------------------------------------------- + */ +TInt CTxtLogger::Send(TInt aStyle, const TDesC8& aData) + { + // Time stamp indicator + TBool timestamp(ETrue); + // Event ranking indicator + TBool eventranking(ETrue); + + // Only EError, EWarning and EImportant styles are supporter in txt logging + if (0x00100 <= aStyle) // EError, 0x00100 => 256 + { + iOutput->Write(timestamp, EFalse, eventranking, _L8( "ERROR " )); + aStyle -= 0x00100; + timestamp = EFalse; // Time stamp added no time stamp to the + // forward operations + eventranking = EFalse; // Event ranking added no event ranking to the + // forward operations + } + if (0x00080 <= aStyle) // EWarning, 0x00080 => 128 + { + iOutput->Write(timestamp, EFalse, eventranking, _L8( "WARNING " )); + aStyle -= 0x00080; + timestamp = EFalse; // Time stamp added no time stamp to the + // forward operations + eventranking = EFalse; // Event ranking added no event ranking to the + // forward operations + } + if (0x00040 <= aStyle) // EImportant, 0x00040 => 64 + { + iOutput->Write(timestamp, EFalse, eventranking, _L8( "IMPORTANT " )); + aStyle -= 0x00040; + timestamp = EFalse; // Time stamp added no time stamp to the + // forward operations + eventranking = EFalse; // Event ranking added no event ranking to the + // forward operations + } + + return iOutput->Write(timestamp, ETrue, eventranking, aData); + + } + +// ================= OTHER EXPORTED FUNCTIONS ================================= +// None + +// End of File