networkprotocolmodules/common/supldevlogger/src/supldevlogger.cpp
changeset 45 15a2125aa2f3
parent 40 18280709ae43
child 49 5f20f71a57a3
child 51 95c570bf4a05
--- a/networkprotocolmodules/common/supldevlogger/src/supldevlogger.cpp	Fri Jun 11 15:06:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,479 +0,0 @@
-// Copyright (c) 2008-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:
-// System
-// 
-//
-
-/**
- @file
- @internalTechnology
- 
-*/
-
-#include <e32base.h>
-#include <e32debug.h>
-#include <flogger.h>
-
-// Component
-#include "supldevlogger.h"
-
-
-const TInt KSuplDevLogMaxBufSize = 300;
-_LIT(KTimeFormat, "%H:%T:%S.%C");
-_LIT(KSuplDevLogFolder, "lbs");
-_LIT(KSuplDevLogFile,"lbs.txt");
-_LIT(KSuplDevLogError, "Error: ");
-_LIT(KSuplDevLogWarning, "Warning: ");
-_LIT(KSuplDevLogSep," | ");
-
-const TInt KSuplHexDumpWidth=16;
-_LIT(KSuplFirstFormatString,"%04x : ");
-_LIT(KSuplSecondFormatString,"%02x ");
-_LIT(KSuplThirdFormatString,"%c");
-_LIT(KSuplThreeSpaces,"   ");
-_LIT(KSuplTwoSpaces,"  ");
-const TText KSuplFullStopChar='.';
-
-// Declare structures which will hold variables on the heap.
-typedef struct
-	{
-	TTime currentTime;
-	TBuf16<32> cTimeStr;
-	TFileName dirName;
-	TInt16 pos;
-	TUint64 procId;
-	TUint32 stackUsage;
-	} 
-TCreateLog16;
-
-typedef struct
-	{
-	TTime currentTime;
-	TBuf8<32> cTimeStr8;
-	TBuf16<32> cTimeStr;
-	TFileName dirName;
-	TInt pos;
-	TUint64 procId;
-	TUint32 stackUsage;
-	} 
-TCreateLog8;
-
-typedef struct
-	{
-	RThread localThread;
-	RProcess localProcess;	
-	TFileName fName;
-	TInt16 pos;
-	}
-TMessageProcessName;
-
-//#define ENABLE_SUPL_DEV_LOGGER_RDEBUG
-//-----------------------------------------------------------------------------
-// SuplDevLogger
-//-----------------------------------------------------------------------------
-
-/** Static function, one parameter, overwrite the previous log
-@param aFmt TDes string reference 
-*/
-EXPORT_C void SuplDevLogger::OverWrite(const TDesC16& aFmt)
-	{
-	TInt stackInt = 0;
-	
-	// Grab some meory off the heap, give up if no memory available.
-	RFileLogger *logger = new RFileLogger;
-	if (logger == NULL)
-		return;
-
-	RBuf16 txt;
-	TInt err = txt.Create(KSuplDevLogMaxBufSize);
-	if (err != KErrNone)
-		{
-		delete logger;
-		return;
-		}
-
-	err = logger->Connect();
-	if (err == KErrNone)		
-		{
-		CreateLogTxt(ELogNormal, ELogP5, &stackInt, txt);
-		txt.Append(aFmt.Left(KSuplDevLogMaxBufSize - txt.Length()));
-		
-		logger->CreateLog(KSuplDevLogFolder, KSuplDevLogFile, EFileLoggingModeOverwrite);
-		logger->SetDateAndTime(EFalse, EFalse);
-		logger->Write(txt);
-		
-		#ifdef ENABLE_SUPL_DEV_LOGGER_RDEBUG
-		txt.Append(_L("\n\r"));
-		RDebug::RawPrint(txt);
-		#endif		
-		}
-	logger->Close();
-
-	// Free up heap space
-	txt.Close();
-	delete logger;
-	}
-
-/** Static function, one parameter
-@param aPrior Log entry priority
-@param aFmt TDes string reference 
-*/
-EXPORT_C void SuplDevLogger::Write(TSuplLogType aType, TSuplLogPriority aPrior, TRefByValue<const TDesC16> aFmt, ...)
-	{
-	TInt stackInt = 0;
-	
-	// Grab space on the heap for varibles we are going to need here.
-	RFileLogger *logger = new RFileLogger;
-	if (logger == NULL)
-		{
-		return;
-		}
-
-	TInt err = logger->Connect();	
-	if (err == KErrNone)
-		{
-		VA_LIST list;
-		VA_START(list, aFmt);
-		RBuf16 strList;
-		err = strList.Create(KSuplDevLogMaxBufSize);
-
-		if (err == KErrNone)
-			{
-			strList.FormatList(aFmt, list);
-			VA_END(list);
-
-			RBuf16 txt;
-			err = txt.Create(KSuplDevLogMaxBufSize);
-			if (err == KErrNone)
-				{
-				CreateLogTxt(aType, aPrior, &stackInt, txt);
-				txt.Append(strList.Left(KSuplDevLogMaxBufSize - txt.Length()));
-
-				logger->CreateLog(KSuplDevLogFolder, KSuplDevLogFile, EFileLoggingModeAppend);
-				logger->SetDateAndTime(EFalse, EFalse);
-				logger->Write(txt);
-				
-				#ifdef ENABLE_SUPL_DEV_LOGGER_RDEBUG
-				txt.Append(_L("\n\r"));
-				RDebug::RawPrint(txt);
-				#endif
-
-				txt.Close();
-				}
-			strList.Close();
-			}
-		}
-		
-	logger->Close();
-	delete logger;
-	}
-
-/** Static function to dump the hex data
-@param aPrior Log entry priority
-@param aPtr TUnit8 pointer to hex data
-@param aLen length of hex data
-*/
-EXPORT_C void SuplDevLogger::HexDump(TSuplLogPriority aPrior, const TUint8 *aPtr, TInt aLen)
-	{
-	TInt stackInt = 0;
-	
-	if (aPtr==NULL)     // nothing to do
-		return;
-
-	RFileLogger* logger = new RFileLogger;
-	if (logger == NULL)
-		return;
-
-	TInt err = logger->Connect();
-	logger->CreateLog(KSuplDevLogFolder, KSuplDevLogFile, EFileLoggingModeAppend);
-	logger->SetDateAndTime(EFalse, EFalse);
-	
-	RBuf buf;
-	err = buf.Create(KSuplDevLogMaxBufSize);
-	if (err == KErrNone)
-		{
-		RBuf8 temp;
-		err= temp.Create(KSuplDevLogMaxBufSize);		
-		if (err == KErrNone)
-			{
-			RBuf8 prefix;
-			if (prefix.Create(KSuplDevLogMaxBufSize) == KErrNone)
-				{
-				CreateLogTxt(ELogNormal, aPrior, &stackInt, prefix);
-				
-				TInt i=0;
-				while (aLen>0)
-					{
-					TInt n=(aLen>KSuplHexDumpWidth ? KSuplHexDumpWidth : aLen);
-					buf.Copy(prefix);
-					buf.AppendFormat(KSuplFirstFormatString,i);
-					
-					TInt j;
-					for (j=0; j<n; j++)
-						buf.AppendFormat(KSuplSecondFormatString,aPtr[i+j]);
-						
-					while (j++<KSuplHexDumpWidth)
-						buf.Append(KSuplThreeSpaces);
-						
-					buf.Append(KSuplTwoSpaces);
-					for (j=0; j<n; j++)
-						buf.AppendFormat(KSuplThirdFormatString,(aPtr[i+j]<32 || aPtr[i+j]>126) ? KSuplFullStopChar : aPtr[i+j]);
-
-					logger->Write(buf);
-					
-					#ifdef ENABLE_SUPL_DEV_LOGGER_RDEBUG
-					buf.Append(_L("\n\r"));
-					RDebug::RawPrint(buf);
-					#endif				
-					
-					buf.SetLength(0);
-					temp.SetLength(0);
-					aLen-=n;
-					i+=n;
-					}
-				prefix.Close();
-				}
-			temp.Close();
-			}
-		buf.Close();
-		}  //end if buf created ok	
-
-	logger->Close();
-	delete logger;
-	}   
-	
-/** private function, create common log text
-@param aPrior Log entry priority
-@param aBuf The log prefix buffer
-@internalTechnology
-*/
-void SuplDevLogger::CreateLogTxt(TSuplLogType aType, TSuplLogPriority aPrior, TInt* aStackPtr, TDes16& aBuf)
-	{
-	// Grab space on the heap for all the varibles we are going to need here.
-	TCreateLog16* vars = new TCreateLog16;
-	if (vars == NULL)
-		return;
-
-	vars->currentTime.UniversalTime();
-	TRAPD(err, vars->currentTime.FormatL(vars->cTimeStr, KTimeFormat));
-	if (err)
-		{
-		User::Panic(KSuplDevLogger, KErrNoMemory);
-		}
-	
-	vars->dirName = RProcess().FileName();	
-	vars->pos = vars->dirName.LocateReverse('\\') + 1;
-	TPtr16 fileName = vars->dirName.MidTPtr(vars->pos);
-	vars->procId = RProcess().Id();
-	
-	aBuf.Append(vars->cTimeStr);
-	aBuf.Append(KSuplDevLogSep);
-
-	aBuf.Append(fileName);
-	aBuf.Append(KSuplDevLogSep);
-	
-	aBuf.AppendFormat(_L16("%LX"),vars->procId);
-	aBuf.Append(KSuplDevLogSep);
-	
-	aBuf.AppendFormat(_L16("P%d"),aPrior);
-	aBuf.Append(KSuplDevLogSep);
-
-	aBuf.AppendFormat(_L16("%08X"), aStackPtr);
-	aBuf.Append(KSuplDevLogSep);
-
-	if (aType == ELogError)
-		{
-		aBuf.Append(KSuplDevLogError);
-		}
-	else if (aType == ELogWarning)
-		{
-		aBuf.Append(KSuplDevLogWarning);
-		}
-
-	delete vars;
-	}
-
-/** Static function, one parameter, overwrite the previous log
-@param aFmt TDes string reference 
-*/
-EXPORT_C void SuplDevLogger::OverWrite(const TDesC8& aFmt)
-	{
-	TInt stackInt = 0;
-	
-	RFileLogger* logger = new RFileLogger;
-	if (logger == NULL)
-		return;
-
-	TInt err = logger->Connect();
-	if (err == KErrNone)
-		{
-		RBuf8 txt;
-		err = txt.Create(KSuplDevLogMaxBufSize);
-
-		if (err == KErrNone)
-			{
-			CreateLogTxt(ELogNormal, ELogP5, &stackInt, txt);
-			txt.Append(aFmt.Left(KSuplDevLogMaxBufSize - txt.Length()));
-
-			logger->CreateLog(KSuplDevLogFolder, KSuplDevLogFile, EFileLoggingModeOverwrite);
-			logger->SetDateAndTime(EFalse, EFalse);
-			logger->Write(txt);
-			
-			#ifdef ENABLE_SUPL_DEV_LOGGER_RDEBUG
-			txt.Append(_L("\n\r"));
-			RDebug::RawPrint(txt);
-			#endif
-
-			txt.Close();
-			}
-		} // end if logger connect ok
-		
-	logger->Close();
-	delete logger;
-	}
-
-/** Static function, one parameter
-@param aPrior Log entry priority
-@param aFmt Log entry
-*/
-EXPORT_C void SuplDevLogger::Write(TSuplLogType aType, TSuplLogPriority aPrior, TRefByValue<const TDesC8> aFmt, ...)
-	{
-	TInt stackInt = 0;
-	
-	RFileLogger* logger = new RFileLogger;
-	if (logger == NULL)
-		return;
-
-	TInt err = logger->Connect();
-	if (err == KErrNone)
-		{
-		VA_LIST list;
-		VA_START(list, aFmt);
-
-		RBuf8 strList;
-		err = strList.Create(KSuplDevLogMaxBufSize);
-		if (err == KErrNone)
-			{
-			strList.FormatList(aFmt, list);
-			VA_END(list);
-
-			RBuf8 txt;
-			err = txt.Create(KSuplDevLogMaxBufSize);
-			
-			if (err == KErrNone)
-				{
-				CreateLogTxt(aType, aPrior, &stackInt, txt);
-				txt.Append(strList.Left(KSuplDevLogMaxBufSize - txt.Length()));
-
-				logger->CreateLog(KSuplDevLogFolder, KSuplDevLogFile, EFileLoggingModeAppend);
-				logger->SetDateAndTime(EFalse, EFalse);
-				logger->Write(txt);
-				
-				#ifdef ENABLE_SUPL_DEV_LOGGER_RDEBUG
-				txt.Append(_L("\n\r"));
-				RDebug::RawPrint(txt);
-				#endif
-
-				txt.Close();
-				}
-
-			strList.Close();
-			} // end if strList memory alloc'd ok
-			
-		} // end if logger connected ok
-
-	logger->Close();
-	delete logger;
-	}
-
-/** private function, create common log text
-@param aPrior Log entry priority
-@param aBuf The log prefix buffer
-@internalTechnology
-*/
-void SuplDevLogger::CreateLogTxt(TSuplLogType aType, TSuplLogPriority aPrior, TInt* aStackPtr, TDes8& aBuf)
-	{
-	// Grab space on the heap for all the varibles we are going to need here.
-	TCreateLog8* vars = new TCreateLog8;
-	if (vars == NULL)
-		{
-		return;
-		}
-
-	vars->currentTime.UniversalTime();	
-	TRAPD(err, vars->currentTime.FormatL(vars->cTimeStr, KTimeFormat));
-	if (err)
-		{
-		User::Panic(KSuplDevLogger, KErrNoMemory);
-		}
-	vars->cTimeStr8.Copy(vars->cTimeStr);
-	
-	vars->dirName = RProcess().FileName();
-	vars->pos = vars->dirName.LocateReverse('\\') + 1;
-	TPtr fileName = vars->dirName.MidTPtr(vars->pos);
-	vars->procId = RProcess().Id();
-	
-	aBuf.Append(vars->cTimeStr8);
-	aBuf.Append(KSuplDevLogSep);
-
-	aBuf.Append(fileName);
-	aBuf.Append(KSuplDevLogSep);
-	
-	aBuf.AppendFormat(_L8("%LX"),vars->procId);
-	aBuf.Append(KSuplDevLogSep);
-	
-	aBuf.AppendFormat(_L8("P%d"),aPrior);
-	aBuf.Append(KSuplDevLogSep);
-	
-	aBuf.AppendFormat(_L8("%08X"), aStackPtr);
-	aBuf.Append(KSuplDevLogSep);
-	
-	if (aType == ELogError)
-		{
-		aBuf.Append(KSuplDevLogError);
-		}
-	else if (aType == ELogWarning)
-		{
-		aBuf.Append(KSuplDevLogWarning);
-		}
-
-	delete vars;
-	}
-
-/**
- This function uses the message to get the process and thread information in
- order to get the process name for the log file
- @param aMessage Client\server message about to be completed
- @param aName Contains the filename of the process to which this message belongs
-**/
-EXPORT_C void SuplDevLogger::GetMessageProcessName(const RMessage2& aMessage, TFileName& aName)
-	{
-	TMessageProcessName* vars = new TMessageProcessName;
-	if (vars == 0)
-		return;
-
-	//Get the thread and process information
-	if (aMessage.Client(vars->localThread) != KErrNone)
-		return;
-
-	vars->localThread.Process(vars->localProcess);
-
-	aName = vars->localProcess.FileName();
-	vars->pos = aName.LocateReverse('\\') + 1;
-	aName = aName.Mid(vars->pos);
-
-	delete vars;
-
-	return;
-	}