diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/ctsydispatchlayer/exportinc/ltsylogger.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/ctsydispatchlayer/exportinc/ltsylogger.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,109 @@ +// 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: +// CommsDebugUtil logging support for the CTSY Dispatcher. +// + + + + +/** + @file + @internalAll +*/ + +#ifndef __LTSYLOGGER_H_ +#define __LTSYLOGGER_H_ + +#include + +#ifdef _DEBUG + +#include +_LIT8(KTsySubSystem, "tsy"); +_LIT8(KTsyCompnt, "ctsydis"); + + /** Regular logging macro */ + #define LOG(format, ARGS...) \ + { \ + RFileLogger::WriteFormat(KTsySubSystem, KTsyCompnt, format, ##ARGS); \ + } + + /** Macros to log function entry and exit */ + //#define TSYLOGENTRYEXIT(aFunc) TLogEntryExit __logger((aFunc), KTsyCompnt) + + //#define TSYLOGENTRYEXITARGS(aFunc, aFmt, ARGS...) TLogEntryExit __logger((aFunc), KTsyCompnt, (aFmt), ##ARGS); + + #define TSYLOGENTRYEXIT /*lint -save -e40*/ TLogEntryExit __logger(TPtrC8((const TUint8*)__PRETTY_FUNCTION__), KTsyCompnt)/*lint -restore*/ + + // N.B. The function name does not need to be specified + #define TSYLOGENTRYEXITARGS(aFmt, ARGS...) /*lint -save -e40*/ TLogEntryExit __logger(TPtrC8((const TUint8*)__PRETTY_FUNCTION__), KTsyCompnt, (aFmt), ##ARGS)/*lint -restore*/ + + #define TSYLOGSETEXITERR(aErr) __logger.SetExitErrorCode( aErr ) + + +/** +Automatic class that logs function entry and exit +*/ +class TLogEntryExit + { +public: + IMPORT_C TLogEntryExit(const TDesC8& aFnName, const TDesC8& aLayer); + IMPORT_C TLogEntryExit(const TDesC8& aFnName, const TDesC8& aLayer, TRefByValue aFmt, ...); + IMPORT_C TLogEntryExit(const TDesC8& aFnName, const TDesC8& aLayer, TRefByValue aFmt, ...); + IMPORT_C ~TLogEntryExit(); + inline TInt SetExitErrorCode(TInt aErr); +private: + TPtrC8 iFnName; + TPtrC8 iLayer; + TInt iErr; + }; // class TLogEntryExit + +/** +Set the error that will be logged at function exit + +@param aErr error code to log +@return the given error code. This is to allow to pipe the function call +*/ +TInt TLogEntryExit::SetExitErrorCode(TInt aErr) + { + return iErr = aErr; + } + + + +#else // _DEBUG + + #define LOG(format, ARGS...) + #define TSYLOGENTRYEXIT + #define TSYLOGENTRYEXITARGS(aFunc, aFmt, ARGS...) + #define TSYLOGSETEXITERR(aErr) aErr // So that we don't lose the return code in UREL! + + +/** +Stub class for urel builds, required for exports. +*/ +class TLogEntryExit + { +public: + IMPORT_C TLogEntryExit(const TDesC8& aFnName, const TDesC8& aLayer); + IMPORT_C TLogEntryExit(const TDesC8& aFnName, const TDesC8& aLayer, TRefByValue aFmt, ...); + IMPORT_C TLogEntryExit(const TDesC8& aFnName, const TDesC8& aLayer, TRefByValue aFmt, ...); + IMPORT_C ~TLogEntryExit(); + }; + + + +#endif // _DEBUG + +#endif // __LTSYLOGGER_H_