--- a/stif/Logger/src/StifLogger.cpp Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1111 +0,0 @@
-/*
-* 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 CStifLogger
-* class member functions.
-*
-*/
-
-// INCLUDE FILES
-#include <e32std.h>
-#include "StifLogger.h"
-#include "TxtLogger.h"
-#include "HtmlLogger.h"
-#include "DataLogger.h"
-#include "LoggerTracing.h"
-#include "LoggerOverFlow.h"
-#include "SettingServerClient.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: CStifLogger
-
- Method: CStifLogger
-
- Description: Default constructor
-
- C++ default constructor can NOT contain any code, that
- might leave.
-
- Parameters: None
-
- Return Values: None
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CStifLogger::CStifLogger()
- {
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: NewL
-
- Description: Two-phased constructor.
-
- Parameters: const TDesC& aTestPath: in: Path to logged information
- const TDesC& aTestFile: in: Log name for information
- TLoggerType aLoggerType: in: Log file type(txt, html,
- data)
- TOutput aOutput: in: Output source(File)
- TBool aOverWrite: in: Indicator to file overwrite
- TBool aWithTimeStamp: in: Indicator to time stamp
- TBool aWithLineBreak: in: Indicator to line break
- TBool aWithEventRanking: in: Indicator to event ranking
- 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: CStifLogger* logger: pointer to CStifLogger object
-
- Errors/Exceptions: Leaves if aTestPath or aTestFile length is over KMaxName
- Leaves if called serv.Connect() method fails
- Leaves if called CHtmlLogger::NewL method fails
- Leaves if called CDataLogger::NewL method fails
- Leaves if called CTxtLogger::NewL method fails
-
- Status: Proposal
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CStifLogger* CStifLogger::NewL( const TDesC& aTestPath,
- const TDesC& aTestFile,
- TLoggerType aLoggerType,
- TOutput aOutput,
- TBool aOverWrite,
- TBool aWithTimeStamp,
- TBool aWithLineBreak,
- TBool aWithEventRanking,
- TBool aThreadIdToLogFile,
- TBool aCreateLogDir,
- TInt aStaticBufferSize,
- TBool aUnicode )
- {
- if( KMaxName < aTestPath.Length() || KMaxName < aTestFile.Length() )
- {
- User::Leave( KErrArgument );
- }
-
- // Handle to Setting server.
- RSettingServer settingServer;
- // Connect to the Setting server and create session
- TInt ret = settingServer.Connect();
- if ( ret != KErrNone )
- {
- User::Leave( ret );
- }
- // Struct to StifLogger settigs.
- TLoggerSettings loggerSettings;
- // Parse StifLogger defaults from STIF initialization file.
- ret = settingServer.GetLoggerSettings( loggerSettings );
- if ( ret != KErrNone )
- {
- User::Leave( ret );
- }
-
- TName testPath = aTestPath;
- TName testFile = aTestFile;
-
- // Take in use the overwrite parameters
- OverwriteLoggerSettings( loggerSettings, testPath, testFile, aLoggerType,
- aOutput, aOverWrite, aWithTimeStamp,
- aWithLineBreak, aWithEventRanking,
- aThreadIdToLogFile, aCreateLogDir,
- aUnicode );
-
- // Close Setting server session
- settingServer.Close();
-
- // Html file logging
- if ( aLoggerType == EHtml )
- {
- // Create CHtmlLogger object logger
- CHtmlLogger* logger = CHtmlLogger::NewL( testPath,
- testFile,
- aLoggerType,
- aOutput,
- aOverWrite,
- aWithTimeStamp,
- aWithLineBreak,
- aWithEventRanking,
- aThreadIdToLogFile,
- aCreateLogDir,
- aStaticBufferSize,
- aUnicode );
- return (CStifLogger*)logger;
- }
- // Data file
- else if ( aLoggerType == EData )
- {
- // Create CDataLogger object logger
- CDataLogger* logger = CDataLogger::NewL( testPath,
- testFile,
- aLoggerType,
- aOutput,
- aOverWrite,
- aWithTimeStamp,
- aWithLineBreak,
- aWithEventRanking,
- aThreadIdToLogFile,
- aCreateLogDir,
- aStaticBufferSize,
- aUnicode );
- return (CStifLogger*)logger;
- }
- // For default: text file logging
- else
- {
- // Create CTxtLogger object logger
- CTxtLogger* logger = CTxtLogger::NewL( testPath,
- testFile,
- aLoggerType,
- aOutput,
- aOverWrite,
- aWithTimeStamp,
- aWithLineBreak,
- aWithEventRanking,
- aThreadIdToLogFile,
- aCreateLogDir,
- aStaticBufferSize,
- aUnicode );
- return (CStifLogger*)logger;
- }
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: NewL
-
- Description: Two-phased constructor.
-
- TestEngine's and TestServer's are friend. For TestEngine's and
- TestServer's StifLogger creation.
-
- Parameters: const TDesC& aTestPath: in: Path to logged information
- const TDesC& aTestFile: in: Log name for information
- TLoggerSettings& aLoggerSettings: in: Struct for StifLogger
- settigs
-
- Return Values: CStifLogger* logger: pointer to CStifLogger object
-
- Errors/Exceptions: Leaves if called CHtmlLogger::NewL method fails
- Leaves if called CDataLogger::NewL method fails
- Leaves if called CTxtLogger::NewL method fails
-
- Status: Proposal
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CStifLogger* CStifLogger::NewL( const TDesC& aTestPath,
- const TDesC& aTestFile,
- TLoggerSettings& aLoggerSettings )
- {
- TInt cpu( 0 );
- HAL::Get( HALData::ECPU, cpu );
-
- // HW environment
- if ( cpu == HALData::ECPU_ARM )
- {
- // Html file logging
- if ( aLoggerSettings.iHardwareFormat == EHtml )
- {
- // Create CHtmlLogger object logger
- CHtmlLogger* logger = CHtmlLogger::NewL( aTestPath,
- aTestFile,
- aLoggerSettings.iHardwareFormat,
- aLoggerSettings.iHardwareOutput,
- aLoggerSettings.iOverwrite,
- aLoggerSettings.iTimeStamp,
- aLoggerSettings.iLineBreak,
- aLoggerSettings.iEventRanking,
- aLoggerSettings.iThreadId,
- aLoggerSettings.iCreateLogDirectories,
- 0,
- aLoggerSettings.iUnicode );
- return (CStifLogger*)logger;
- }
- // Data file
- else if ( aLoggerSettings.iHardwareFormat == EData )
- {
- // Create CDataLogger object logger
- CDataLogger* logger = CDataLogger::NewL( aTestPath,
- aTestFile,
- aLoggerSettings.iHardwareFormat,
- aLoggerSettings.iHardwareOutput,
- aLoggerSettings.iOverwrite,
- aLoggerSettings.iTimeStamp,
- aLoggerSettings.iLineBreak,
- aLoggerSettings.iEventRanking,
- aLoggerSettings.iThreadId,
- aLoggerSettings.iCreateLogDirectories,
- 0,
- aLoggerSettings.iUnicode );
- return (CStifLogger*)logger;
- }
- // For default: text file logging
- else
- {
- // Create CTxtLogger object logger
- CTxtLogger* logger = CTxtLogger::NewL( aTestPath,
- aTestFile,
- aLoggerSettings.iHardwareFormat,
- aLoggerSettings.iHardwareOutput,
- aLoggerSettings.iOverwrite,
- aLoggerSettings.iTimeStamp,
- aLoggerSettings.iLineBreak,
- aLoggerSettings.iEventRanking,
- aLoggerSettings.iThreadId,
- aLoggerSettings.iCreateLogDirectories,
- 0,
- aLoggerSettings.iUnicode );
- return (CStifLogger*)logger;
- }
- } // End of HW environment branch
-
- // Wins environment ( cpu == HALData::ECPU_X86 )
- else
- {
- // Html file logging
- if ( aLoggerSettings.iEmulatorFormat == EHtml )
- {
- // Create CHtmlLogger object logger
- CHtmlLogger* logger = CHtmlLogger::NewL( aTestPath,
- aTestFile,
- aLoggerSettings.iEmulatorFormat,
- aLoggerSettings.iEmulatorOutput,
- aLoggerSettings.iOverwrite,
- aLoggerSettings.iTimeStamp,
- aLoggerSettings.iLineBreak,
- aLoggerSettings.iEventRanking,
- aLoggerSettings.iThreadId,
- aLoggerSettings.iCreateLogDirectories,
- 0,
- aLoggerSettings.iUnicode );
- return (CStifLogger*)logger;
- }
- // Data file
- else if ( aLoggerSettings.iEmulatorFormat == EData )
- {
- // Create CDataLogger object logger
- CDataLogger* logger = CDataLogger::NewL( aTestPath,
- aTestFile,
- aLoggerSettings.iEmulatorFormat,
- aLoggerSettings.iEmulatorOutput,
- aLoggerSettings.iOverwrite,
- aLoggerSettings.iTimeStamp,
- aLoggerSettings.iLineBreak,
- aLoggerSettings.iEventRanking,
- aLoggerSettings.iThreadId,
- aLoggerSettings.iCreateLogDirectories,
- 0,
- aLoggerSettings.iUnicode );
- return (CStifLogger*)logger;
- }
- // For default: text file logging
- else
- {
- // Create CTxtLogger object logger
- CTxtLogger* logger = CTxtLogger::NewL( aTestPath,
- aTestFile,
- aLoggerSettings.iEmulatorFormat,
- aLoggerSettings.iEmulatorOutput,
- aLoggerSettings.iOverwrite,
- aLoggerSettings.iTimeStamp,
- aLoggerSettings.iLineBreak,
- aLoggerSettings.iEventRanking,
- aLoggerSettings.iThreadId,
- aLoggerSettings.iCreateLogDirectories,
- 0,
- aLoggerSettings.iUnicode );
- return (CStifLogger*)logger;
- }
- } // End of WINS environment branch
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: ~CStifLogger
-
- Description: Destructor
-
- Parameters: None
-
- Return Values: None
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CStifLogger::~CStifLogger()
- {
-
- delete iOutput;
- iOutput = 0;
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: OverwriteLoggerSettings
-
- Description: Local CStifLogger's method for StifLogger settings
- overwriting.
-
- Overwrite parameters may set in TestFramework.ini file.
-
- Parameters: TLoggerSettings& aLoggerSettings: inout; Overwrite parameters
- TName& aTestPath: inout: Path to logged information
- TName& aTestFile: inout: Log file name for information
- TLoggerType& aLoggerType: inout: Log file type(txt, html, data)
- TOutput& aOutput: inout: Output source(File)
- TBool& aOverWrite: inout: Indicator to file overwrite
- TBool& aWithTimeStamp: inout: Indicator to time stamp
- TBool& aWithLineBreak: inout: Indicator to line break
- TBool& aWithEventRanking: inout: Indicator to event ranking
- TBool& aThreadIdToLogFile: inout: Indicator to thread id adding to
- end of the log file
- TBool& aCreateLogDir: inout: Indicator to directory creation
- TBool& aUnicode: inout: Indicator if log will be written to file in unicode format
-
- Return Values: None
-
- Errors/Exceptions: None
-
- Status: Proposal
-
--------------------------------------------------------------------------------
-*/
-void CStifLogger::OverwriteLoggerSettings( TLoggerSettings& aLoggerSettings,
- TName& aTestPath,
- TName& aTestFile,
- TLoggerType& aLoggerType,
- TOutput& aOutput,
- TBool& aOverWrite,
- TBool& aWithTimeStamp,
- TBool& aWithLineBreak,
- TBool& aWithEventRanking,
- TBool& aThreadIdToLogFile,
- TBool& aCreateLogDir,
- TBool& aUnicode )
- {
- // Which environment is in use
- TInt cpu( 0 );
-
- // Indicator is file type remove acceptable operation
- TBool removeFileType( EFalse );
-
- // Get environment
- HAL::Get( HALData::ECPU, cpu );
-
- // HW environment
- if ( cpu == HALData::ECPU_ARM )
- {
- TInt pathLen = aTestPath.Length() +
- aLoggerSettings.iHardwarePath.Length();
-
- // Check that path overwrite setting is defined and length is legal
- if( aLoggerSettings.iIsDefined.iHwPath && pathLen < KMaxName )
- {
- TName newPath;
- newPath = aLoggerSettings.iHardwarePath;
- // Check is '\' the last character
- TInt ret( 0 );
- ret = newPath.LocateReverse( 92 );
- // Is '\' character founded
- if( ret != KErrNotFound )
- {
- // Is '\' last character
- if( ret == ( newPath.Length() - 1 ) )
- {
- // delete last '\'
- newPath.Delete(
- ( aLoggerSettings.iHardwarePath.Length() -1 ), 1 );
- }
- }
- // Removes drive letter if given and appends implemented path
- TParse parse;
- parse.Set( aTestPath, NULL, NULL );
- // Path() return value starts with '\'
- newPath.Append( parse.Path() );
- aTestPath = newPath;
- }
- if( aLoggerSettings.iIsDefined.iHwFormat )
- {
- aLoggerType = aLoggerSettings.iHardwareFormat;
- // Remove file type if it is set
- removeFileType = ETrue;
- }
- if( aLoggerSettings.iIsDefined.iHwOutput )
- {
- aOutput = aLoggerSettings.iHardwareOutput;
- }
- }
-
- // Wins environment ( cpu == HALData::ECPU_X86 )
- else
- {
- TInt pathLen = aTestPath.Length() +
- aLoggerSettings.iEmulatorPath.Length();
-
- // Check that path overwrite setting is defined and length is legal
- if( aLoggerSettings.iIsDefined.iPath && pathLen < KMaxName )
- {
- TName newPath;
- newPath = aLoggerSettings.iEmulatorPath;
- // Check is '\' the last character
- TInt ret( 0 );
- ret = newPath.LocateReverse( 92 );
- // Is '\' character founded
- if( ret != KErrNotFound )
- {
- // Is '\' last character
- if( ret == ( newPath.Length() - 1 ) )
- {
- // delete last '\'
- newPath.Delete(
- ( aLoggerSettings.iEmulatorPath.Length() -1 ), 1 );
- }
- }
- // Removes drive letter if given and appends implemented path
- TParse parse;
- parse.Set( aTestPath, NULL, NULL );
- // Path() return value starts with '\'
- newPath.Append( parse.Path() );
- aTestPath = newPath;
- }
- if( aLoggerSettings.iIsDefined.iFormat )
- {
- aLoggerType = aLoggerSettings.iEmulatorFormat;
- // Remove file type if it is set
- removeFileType = ETrue;
- }
- if( aLoggerSettings.iIsDefined.iOutput )
- {
- aOutput = aLoggerSettings.iEmulatorOutput;
- }
- }
-
- // Rest of the overwrite values
- if( aLoggerSettings.iIsDefined.iOverwrite )
- {
- aOverWrite = aLoggerSettings.iOverwrite;
- }
- if( aLoggerSettings.iIsDefined.iTimeStamp )
- {
- aWithTimeStamp = aLoggerSettings.iTimeStamp;
- }
- if( aLoggerSettings.iIsDefined.iLineBreak )
- {
- aWithLineBreak = aLoggerSettings.iLineBreak;
- }
- if( aLoggerSettings.iIsDefined.iEventRanking )
- {
- aWithEventRanking = aLoggerSettings.iEventRanking;
- }
- if( aLoggerSettings.iIsDefined.iThreadId )
- {
- aThreadIdToLogFile = aLoggerSettings.iThreadId;
- }
- if( aLoggerSettings.iIsDefined.iCreateLogDir )
- {
- aCreateLogDir = aLoggerSettings.iCreateLogDirectories;
- }
- if( aLoggerSettings.iIsDefined.iUnicode )
- {
- aUnicode = aLoggerSettings.iUnicode;
- }
-
- // Remove file type if allowed and if file type is set to filename
- if( removeFileType )
- {
- // Remove file type '.XXX' from file name if exist
- if( aTestFile.Find( _L( "." ) ) )
- {
- TParse parse;
- parse.Set( aTestFile, NULL, NULL );
- // Type length
- TInt length( 0 );
- // '.XXX'
- length = parse.Ext().Length();
- // Delete type
- aTestFile.Delete ( aTestFile.Length()-length, length );
- }
- }
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 16 bit information.
-
- This log method accepts only one parameters
-
- Parameters: const TDesC aLogInfo: in: 8 bit data to be logged
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( const TDesC& aLogInfo )
- {
- // No text style info
- return Send( ENoStyle, aLogInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 8 bit information.
-
- This log method accepts only one parameters
-
- Parameters: const TDesC8 aLogInfo: in: 8 bit data to be logged
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( const TDesC8& aLogInfo )
- {
- // No text style info
- return Send( ENoStyle, aLogInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 16 bit information.
-
- There is also parameter to styling text information e.g. text color.
-
- Parameters: TInt aStyle: in: Logged text forming parameter
- const TDesC aLogInfo: in: 16 bit data to be logged
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( TInt aStyle, const TDesC& aLogInfo )
- {
- return Send( aStyle, aLogInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 8 bit information.
-
- There is also parameter to styling text information e.g. text color.
-
- Parameters: TInt aStyle: in: Logged text forming parameter
- const TDesC8 aLogInfo: in: 8 bit data to be logged
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( TInt aStyle, const TDesC8& aLogInfo )
- {
- return Send( aStyle, aLogInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 16 bit information.
-
- This log method accepts several parameters.
-
- Parameters: TRefByValue<const TDesC> aLogInfo: in: A templated class which
- encapsulates a reference to an object within a wrapper
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: TDesLoggerOverflowHandler called if logged information
- is over KMaxLogData
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( TRefByValue<const TDesC> aLogInfo,... )
- {
- VA_LIST list;
- VA_START( list, aLogInfo );
- TLogInfo logInfo;
-
- // Create overflow handler. If the log information size is over the
- // KMaxLogData rest of the information will cut.
- TDesLoggerOverflowHandler overFlowHandler( this, 1 );
-
- // Parse parameters
- logInfo.AppendFormatList( aLogInfo, list, &overFlowHandler );
-
- // No text style info
- return Send( ENoStyle, logInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 8 bit information.
-
- This log method accepts several parameters.
-
- Parameters: TRefByValue<const TDesC8> aLogInfo: in: A templated class which
- encapsulates a reference to an object within a wrapper
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: TDes8LoggerOverflowHandler called if logged information is
- over KMaxLogData
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( TRefByValue<const TDesC8> aLogInfo,... )
- {
- VA_LIST list;
- VA_START( list, aLogInfo );
- TLogInfo8 logInfo;
-
- // Create overflow handler. If the log information size is over the
- // KMaxLogData rest of the information will cut.
- TDes8LoggerOverflowHandler overFlowHandler( this, 1 );
-
- // Parse parameters
- logInfo.AppendFormatList( aLogInfo, list, &overFlowHandler );
-
- // No text style info
- return Send( ENoStyle, logInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 16 bit information.
-
- This log method accepts several parameters. There is also parameter to
- styling text information e.g. text color.
-
- Parameters: TInt aStyle: in: Logged text forming parameter
- TRefByValue<const TDesC> aLogInfo: in: A templated class
- which encapsulates a reference to an object
- within a wrapper
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: TDesOverflowHandler called if logged information is
- over KMaxLogData
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( TInt aStyle,
- TRefByValue<const TDesC> aLogInfo,... )
- {
- VA_LIST list;
- VA_START( list, aLogInfo );
- TLogInfo logInfo;
-
- // Create overflow handler. If the log information size is over the
- // KMaxLogData rest of the information will cut.
- TDesLoggerOverflowHandler overFlowHandler( this, 2 );
-
- // Parse parameters
- logInfo.AppendFormatList( aLogInfo, list, &overFlowHandler );
-
- return Send( aStyle, logInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: Log
-
- Description: Log a 8 bit information.
-
- This log method accepts several parameters. There is also parameter to
- styling text information e.g. text color.
-
- Parameters: TInt aStyle: in: Logged text forming parameter
- TRefByValue<const TDesC8> aLogInfo: in: A templated class
- which encapsulates a reference to an object
- within a wrapper
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: TDes8LoggerOverflowHandler called if logged information is
- over KMaxLogData
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::Log( TInt aStyle,
- TRefByValue<const TDesC8> aLogInfo,... )
- {
- VA_LIST list;
- VA_START( list, aLogInfo );
- TLogInfo8 logInfo;
-
- // Create overflow handler. If the log information size is over the
- // KMaxLogData rest of the information will cut.
- TDes8LoggerOverflowHandler overFlowHandler( this, 2 );
-
- // Parse parameters
- logInfo.AppendFormatList( aLogInfo, list, &overFlowHandler );
-
- return Send( aStyle, logInfo );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: WriteDelimiter
-
- Description: Log a 16 bit delimiter.
-
- Log a delimiters required locations to the log information.
- This will be used if parameters are not given when calling this method.
-
- Parameters: const TDesC& aDelimiter: in: Logged delimiter(e.g. '#' or 'XO')
- TInt aCount: in: Repeated count for delimiter
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: TDesLoggerOverflowHandler called if logged information
- is over KMaxLogData.
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::WriteDelimiter( const TDesC& aDelimiter, TInt aCount )
- {
- TLogInfo delimiter;
-
- // Create overflow handler. If the delimiter size expands over the
- // KMaxLogData the TDesLoggerOverflowHandler will call.
- TDesLoggerOverflowHandler overFlowHandler( this, 3 );
-
- // Create a delimiter
- for( TInt a = 0; a < aCount; a++ )
- {
- // If delimiter creation keeps under the KMaxLogData.
- // If not we use TDesLoggerOverflowHandler.
- if( ( a * aDelimiter.Length() ) < KMaxLogData )
- {
- delimiter.Append( aDelimiter );
- }
- // KMaxLogData is exceeded
- else
- {
- // If the title size is over the KMaxLogData default delimiter will
- // use. Use normal overflowhandler to print overflow information.
- TBuf<4> empty; // Not really used.
- overFlowHandler.Overflow( empty );
- delimiter.Copy(
- _L( "##################################################" ) );
- break;
- }
- }
-
- // No text style info
- return Send( ENoStyle, delimiter );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: WriteDelimiter
-
- Description: Log a 8 bit delimiter.
-
- Log a delimiters required locations to the log information.
-
- Parameters: const TDesC8& aDelimiter: in: Logged delimiter
- (e.g. '#' or 'XO')
- TInt aCount: in: Repeated count for delimiter
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: TDes8LoggerOverflowHandler called if logged information is
- over KMaxLogData.
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::WriteDelimiter( const TDesC8& aDelimiter, TInt aCount )
- {
- TLogInfo8 delimiter;
-
- // Create overflow handler. If the delimiter size expands over the
- // KMaxLogData the TDesLoggerOverflowHandler will call.
- TDes8LoggerOverflowHandler overFlowHandler( this, 3 );
-
- // Create a delimiter
- for( TInt a = 0; a < aCount; a++ )
- {
- // If delimiter creation keeps under the KMaxLogData.
- // If not we use TDesLoggerOverflowHandler.
- if( ( a * aDelimiter.Length() ) < KMaxLogData )
- {
- delimiter.Append( aDelimiter );
- }
- // KMaxLogData is exceeded
- else
- {
- // If the title size is over the KMaxLogData default delimiter will
- // use. Use normal overflowhandler to print overflow information.
- TBuf8<4> empty; // Not really used.
- overFlowHandler.Overflow( empty );
- delimiter.Copy(
- _L8( "##################################################" ) );
- break;
- }
- }
-
- // No text style info
- return Send( ENoStyle, delimiter );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: SaveData
-
- Description: Save file or data( 16 bit ).
-
- Used when is need to save file or data to storage e.g. web page.
-
- Parameters: TDesC& aData: in: Data to be saved
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::SaveData( TDesC& aData )
- {
- // No text style info
- return Send( ENoStyle, aData );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: SaveData
-
- Description: Save file or data( 8 bit ).
-
- Used when is need to save file or data to storage e.g. web page.
-
- Parameters: TDesC8& aData: in: Data to be saved
-
- Return Values: TInt: Symbian error code.
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::SaveData( TDesC8& aData )
- {
- // No text style info
- return Send( ENoStyle, aData );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: CreationResult
-
- Description: Return StifLogger creation result.
-
- Parameters: None
-
- Return Values: StifLogger creation result
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifLogger::CreationResult()
- {
-
- TOutput outputType;
- return iOutput->OutputCreationResult( outputType );
-
- }
-
-/*
--------------------------------------------------------------------------------
-
- Class: CStifLogger
-
- Method: OutputType
-
- Description: Get output type. Valid only if CreationResult returns KErrNone.
-
- Parameters: TOutput& aOutput
-
- Return Values: StifLogger creation result
-
- Errors/Exceptions: None
-
- Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CStifLogger::TOutput CStifLogger::OutputType()
- {
-
- TOutput outputType;
- iOutput->OutputCreationResult( outputType );
- return outputType;
-
- }
-
-// End of File