diff -r 630d2f34d719 -r 07a122eea281 telephonyprotocols/rawipnif/inc/bttlog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/rawipnif/inc/bttlog.h Wed Sep 01 12:40:21 2010 +0100 @@ -0,0 +1,142 @@ +// Copyright (c) 2002-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: +// Defines logger for RawIP NIF. +// +// + +/** + @file +*/ + +#ifndef BTTLOG_H__ +#define BTTLOG_H__ + +#include + +#if defined(__FLOG_ACTIVE) || defined(__DEBUGRAWIPSERIALPORT__) +// Uncomment any of these macros if you want logging. +// -> BTT_LOG_1 : For general logging +// -> BTT_LOG_2 : For error and warning logging +// -> BTT_LOG_3 : For IP packet information +#define __BTT_LOG_1__ 1 +//#define __BTT_LOG_2__ 1 +//#define __BTT_LOG_3__ 1 +#endif + +#ifdef __BTT_LOG_1__ +#define _LOG_L1C1(AAA) iTheLogger->Write(AAA) +#define _LOG_L1C2(AAA, BBB) iTheLogger->WriteFormat(AAA, BBB) +#define _LOG_L1C3(AAA, BBB, CCC) iTheLogger->WriteFormat(AAA, BBB, CCC) +#define _LOG_L1C4(AAA, BBB, CCC, DDD) iTheLogger->WriteFormat(AAA, BBB, CCC, DDD) +#define _LOG_L1C5(AAA, BBB, CCC, DDD, EEE) iTheLogger->WriteFormat(AAA, BBB, CCC, DDD, EEE) +#else +#define _LOG_L1C1(AAA) +#define _LOG_L1C2(AAA, BBB) +#define _LOG_L1C3(AAA, BBB, CCC) +#define _LOG_L1C4(AAA, BBB, CCC, DDD) +#define _LOG_L1C5(AAA, BBB, CCC, DDD, EEE) +#endif // __BTT_LOG_1__ + +#ifdef __BTT_LOG_2__ +#define _LOG_L2C1(AAA) iTheLogger->Write(AAA) +#define _LOG_L2C2(AAA, BBB) iTheLogger->WriteFormat(AAA, BBB) +#define _LOG_L2C3(AAA, BBB, CCC) iTheLogger->WriteFormat(AAA, BBB, CCC) +#define _LOG_L2C4(AAA, BBB, CCC, DDD) iTheLogger->WriteFormat(AAA, BBB, CCC, DDD) +#define _LOG_L2C5(AAA, BBB, CCC, DDD, EEE) iTheLogger->WriteFormat(AAA, BBB, CCC, DDD, EEE) +#else +#define _LOG_L2C1(AAA) +#define _LOG_L2C2(AAA, BBB) +#define _LOG_L2C3(AAA, BBB, CCC) +#define _LOG_L2C4(AAA, BBB, CCC, DDD) +#define _LOG_L2C5(AAA, BBB, CCC, DDD, EEE) +#endif // __BTT_LOG_2__ + +#ifdef __BTT_LOG_3__ +#define _LOG_L3C1(AAA) iTheLogger->Write(AAA) +#define _LOG_L3C2(AAA, BBB) iTheLogger->WriteFormat(AAA, BBB) +#define _LOG_L3C3(AAA, BBB, CCC) iTheLogger->WriteFormat(AAA, BBB, CCC) +#define _LOG_L3C4(AAA, BBB, CCC, DDD) iTheLogger->WriteFormat(AAA, BBB, CCC, DDD) +#define _LOG_L3C5(AAA, BBB, CCC, DDD, EEE) iTheLogger->WriteFormat(AAA, BBB, CCC, DDD, EEE) +#else +#define _LOG_L3C1(AAA) +#define _LOG_L3C2(AAA, BBB) +#define _LOG_L3C3(AAA, BBB, CCC) +#define _LOG_L3C4(AAA, BBB, CCC, DDD) +#define _LOG_L3C5(AAA, BBB, CCC, DDD, EEE) +#endif // __BTT_LOG_3__ + +#ifdef __BTT_LOG_1__ +#ifndef __BTT_LOGGING__ +#define __BTT_LOGGING__ +#endif +#endif + +#ifdef __BTT_LOG_2__ +#ifndef __BTT_LOGGING__ +#define __BTT_LOGGING__ +#endif +#endif + +#ifdef __BTT_LOG_3__ +#ifndef __BTT_LOGGING__ +#define __BTT_LOGGING__ +#endif +#endif + +#ifdef __BTT_LOGGING__ +#define _BTT_LEAVEIFERROR(a) iTheLogger->VerboseLeaveL(__FILE__, __LINE__, a) +#define _BTT_PANIC(CAT, CODE) iTheLogger->VerbosePanic(__FILE__, __LINE__, CODE, (TText8*)#CODE, CAT) +#else +#define _BTT_LEAVEIFERROR(a) User::LeaveIfError(a) +#define _BTT_PANIC(CAT, CODE) User::Panic(CAT, CODE) +#endif // __BTT_LOGGING__ + +/** + * static class containing methods for logging + * text to a logfile. + */ +class CBttLogger : public CBase + { +public: + static CBttLogger* NewL(const TDesC8& aTag, const TDesC8& aFileName, const TUint32 aInstanceId); + ~CBttLogger(); + +public: + void Write(const TDesC8& aText); + void WriteFormat(TRefByValue aFmt, ...); + void VerboseLeaveL(char* aFile, TInt aLine, TInt aReason); + void VerbosePanic(char* aFile, + TInt aLine, + TInt aPanicCode, + TText8* aPanicName, + const TDesC& aPanicCategory); + +protected: + CBttLogger(); + void ConstructL(const TDesC8& aSubDir, const TDesC8& aFileName, const TUint32 aInstanceId); + +private: + class TLogIgnoreOverflow8 : public TDes8Overflow + { + public: + void Overflow(TDes8& /*aDes*/) { } + }; + +private: // owned + + TUint32 iInstanceId; + __FLOG_DECLARATION_MEMBER; + }; + +#endif // BTTLOG_H__