diff -r 000000000000 -r bde4ae8d615e os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/inc/DataLogger.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/inc/DataLogger.h	Fri Jun 15 03:10:57 2012 +0200
@@ -0,0 +1,287 @@
+// Copyright (c) 1997-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 file contains the definition of the class CDataLogger
+// This file comment is for DOxygen only and is ignored by EDoc.
+// 
+//
+
+/**
+ @test
+*/
+
+#ifndef __DATALOGGER_H__
+#define __DATALOGGER_H__
+
+#include <e32base.h>
+#include <flogger.h>
+#include <ecom/test_bed/dataformat.h>
+#include <ecom/test_bed/defaultlogoutput.h>
+
+/**
+	@internalAll
+	Comments : Handles the transformation of input data into text suitable 
+		for output to a permanent store and the placing of that 
+		data in the store.
+ */
+
+
+class CDataLogger : public CBase
+	{
+public:
+/**
+	@fn				static CDataLogger* NewL(TLoggingInfo* aLogInfo)
+	Intended Usage	: Standardized safe construction which leaves nothing on the cleanup stack.
+	@leave  		KErrNoMemory.	
+	@since			7.0
+	@param			aLogInfo The logging configuration information
+	@return			CDataLogger* A pointer to the newly created class.
+	@pre 			None
+	@post			Nothing is left on the CleanupStack
+ */
+	
+	static CDataLogger* NewL(TLoggingInfo* aLogInfo);
+
+/**
+	@fn				static CDataLogger* NewLC(TLoggingInfo* aLogInfo)
+	Intended Usage	: Standardized safe construction which leaves CDataLogger* on the cleanup stack.
+	@leave  		KErrNoMemory.	
+	@since			7.0
+	@param			aLogInfo The logging configuration information
+	@return			CDataLogger* A pointer to the newly created class.
+	@pre 			None
+	@post			CDataLogger is on the CleanupStack
+ */
+	
+	static CDataLogger* NewLC(TLoggingInfo* aLogInfo);
+
+/**
+	@fn				 ~CDataLogger()
+	Intended Usage	: Standardized virtual destruction method 
+	@since			7.0
+ */
+	
+	~CDataLogger();
+
+/**
+	@fn				IMPORT_C void DumpMemoryBlock(const TUint8* aAddress, TInt aLength)
+	Intended Usage	:	Logs a block of memory to file in hexadecimal and ASCII format.
+					For example:
+					
+	@code
+	0000 : 40 fd 8f 01 38 fd 8f 01 21 5f 00 10 61 00 74 00 : @...8...!_..a.t.
+	0010 : 61 55 ff 00 48 fd 8f 01 ac fd 8f 01 ac fd 8f 01 : aU..H...........
+	0020 : 21 88 00 60 90 41 ff 00 01 00 00 00 24 1f 7b 00 : !..`.A......$.{.
+	0030 : 61 00 74 00 72 00 65 00 34 fd 8f 01 23 00 f1 77 : a.t.r.e.4...#..w
+	0040 : 23 00 00 00 38 00                               : #...8.          
+	@endcode
+
+	@since			7.0
+	@param			aAddress The address of the start of the block to be logged
+	@param			aLength The number of bytes to be logged
+	@pre 			None
+	@post			The specified block of memory is output to file in hex and ASCII format
+ */
+	
+	IMPORT_C void DumpMemoryBlock(const TUint8* aAddress, TInt aLength);
+
+/**
+	@fn				IMPORT_C void LogInformation(const TDesC16& aComment)
+	Intended Usage	:	Add the specified comment to the log file. Wide descriptor version
+	Error Condition	:	
+	@since			7.0
+	@param			aComment The text to be logged
+	@pre 			None
+	@post			The specified text is added to the log file
+ */
+	
+	IMPORT_C void LogInformation(const TDesC16& aComment);
+
+/**
+	@fn				IMPORT_C void LogInformation(const TDesC8& aComment)
+	Intended Usage	:	Add the specified comment to the log file. Narrow descriptor 
+	version
+	Error Condition	:	
+	@since			7.0
+	@param			aComment The text to be logged
+	@pre 			None
+	@post			The specified text is added to the log file
+ */
+	
+	IMPORT_C void LogInformation(const TDesC8& aComment);
+
+/**
+	@fn				IMPORT_C void LogInformationWithParameters(TRefByValue<const TDesC16> aFormat, ...)
+	Intended Usage	:	Add the specified comment to the log file. Wide descriptor version
+	Error Condition	:	
+	@since			7.0
+	@param			aFormat The text to be formatted and logged
+	@param			...	An argument set
+	@pre 			None
+	@post			The specified text is formatted and added to the log file
+ */
+	
+	IMPORT_C void LogInformationWithParameters(TRefByValue<const TDesC16> aFormat, ...);
+
+/**
+	@fn				IMPORT_C void LogInformationWithParameters(TRefByValue<const TDesC8> aFormat, ...)
+	Intended Usage	:	Add the specified comment to the log file. Narrow 
+					descriptor version
+	Error Condition	:	
+	@since			7.0
+	@param			aFormat The text to be formatted and logged
+	@param			...	An argument set
+	@pre 			None
+	@post			The specified text is formatted and added to the log file
+ */
+	
+	IMPORT_C void LogInformationWithParameters(TRefByValue<const TDesC8> aFormat, ...);
+
+/**
+	@fn				IMPORT_C void ReportInformation(const TDesC& aComment)
+	Intended Usage	:	Add the specified comment to the report file
+	Error Condition	:	
+	@since			7.0
+	@param			aComment The text to be logged
+	@pre 			None
+	@post			The specified text is added to the report file
+ */
+	
+	IMPORT_C void ReportInformation(const TDesC& aComment);
+
+/**
+	@fn				IMPORT_C void ReportInformationWithParameters(TRefByValue<const TDesC> aFormat, ...)
+	Intended Usage	:	Add the specified comment to the report file
+	Error Condition	:	
+	@since			7.0
+	@param			aFormat The text to be formatted and logged
+	@param			...	An argument set
+	@pre 			None
+	@post			The specified text is formatted and added to the log file
+ */
+	
+	IMPORT_C void ReportInformationWithParameters(TRefByValue<const TDesC> aFormat, ...);
+
+private:
+/**
+	@fn				CDataLogger()
+	Intended Usage	: Constructor
+	@since			7.0
+ */
+	
+	CDataLogger();
+
+/**
+	@fn				void ConstructL(TLoggingInfo* aLogInfo)
+	Intended Usage	: Completes the safe construction of the CDataLogger object
+	@leave  		KErrNoMemory.
+	@since			7.0
+	@param			aLogInfo The logging configuration information
+	@pre 			First phase of construction is complete
+	@post			CDatalogger is fully constructed
+ */
+	
+	void ConstructL(TLoggingInfo* aLogInfo);
+
+/**
+	@fn				void SetupRDebugL(TBool aRequest)
+	Intended Usage	:	
+	Error Condition	:	
+	@since			7.0
+	@param			TBool aRequest " "
+	@pre 			Called only from ConstructL()
+	@post			iDebug is set up for debug outputting or not.
+ */
+	
+	void SetupRDebugL(TBool aRequest);
+
+/**
+	@fn				void Log(MLogOutput* aLogOutput, const TDesC16& aMessage)
+	Intended Usage	:	Helper function which will log out a descriptor.  The destination for
+	logging depends whether an alternative logger was supplied by the user at construction.
+	Descriptors to be logged are broken up into maximum lengths of 150 as this is more 
+	manageable and is the limit supported by RFileLogger.  Wide descriptor version.
+	@since			7.0
+	@param			aLogOutput The logging mechanism to use
+	@param			aMessage The descriptor to log
+	@pre 			This CDataLogger is constructed
+	@post			The message is logged to the destination
+ */
+	
+	void Log(MLogOutput* aLogOutput, const TDesC16& aMessage);
+
+/**
+	@fn				void SetupLoggingL(TLoggingInfo* aLogInfo)
+	Intended Usage	:
+	Error Condition	:
+	@since			7.0
+	@param			aLogInfo The user supplied logging configuration information
+	@pre 			Called from ConstructL()
+	@post			Logging output objects are configured.
+ */
+	
+	void SetupLoggingL(TLoggingInfo* aLogInfo);
+
+private:
+/** A do nothing base class for debug logging */
+	class TNullDebugPrint
+		{
+		public:
+			virtual void Print(const TDesC&);
+		};
+
+/** An override class for debug logging to RDebug */
+	NONSHARABLE_CLASS(TDebugPrint) : public TNullDebugPrint
+		{
+		public:
+			/** Print the output to RDebug */
+			void Print(const TDesC& aMessage);
+		};
+/** The class instance */
+	
+	TNullDebugPrint* iDebug;
+
+/** The logging style to be used (plain text, HTML or custom). */
+	
+	TLoggingStyle	iLogStyle;
+/** The logging formats to be used if iLogStyle is HTML or custom. */
+	
+	TLogFormat		iLogFormat;
+/** Provides the file logging facilities*/
+	
+	MLogOutput*		iLogOutput;
+/** Provides the reporting facilities*/
+	
+	MLogOutput*		iReportOutput;
+/** Pointer to a default log output if the user doesn't supply one */
+	
+	CDefaultLogOutput*	iDefaultLogOutput;
+/** Pointer to a default report output if the user doesn't supply one */
+	
+	CDefaultLogOutput*	iDefaultReportOutput;
+/** Provides the file reporting facilities*/
+	
+	RFileLogger		iReportFlogger;
+/** Provides the area for formatting log and report data */
+	
+	HBufC*			iFormatBuf;
+/** Make the test State Accessor a friend */
+	friend class TDataLogger_StateAccessor;
+	};
+
+inline void CDataLogger::TNullDebugPrint::Print(const TDesC&)
+	{
+	// Do nothing
+	}
+
+#endif