diff -r 14460bf2a402 -r f50f4094acd7 cbsref/csyrefplugins/csy27010/inc/CsyDebugLogger.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/csyrefplugins/csy27010/inc/CsyDebugLogger.h Tue Jul 06 15:36:38 2010 +0300 @@ -0,0 +1,141 @@ +// +// * Copyright 2004 Neusoft America Inc. +// * All rights reserved. +// * This component and the accompanying materials are made available +// * under the terms of the Eclipse Public License v1.0 +// * which accompanies this distribution, and is available +// * at the URL "http://www.eclipse.org/legal/epl-v10.html". +// * +// * Contributors: +// * Keith Collins (Neusoft America Inc.) original software development and additional code and modifications. +// * Thomas Gahagen (Neusoft America Inc.) additional code and modifications. +// * Zhen Yuan (Neusoft America Inc.) additional code and modifications. +// * +// * Description: This file defines the CCsyDebugLogger class for the CSY and the macros +// * to use for logging debug messages to either a serial port or a log file. +// + +// CsyDebugLogger.h + +/** @file CsyDebugLogger.h + * + */ + +#ifndef __CSYDEBUGLOGGER_H__ +#define __CSYDEBUGLOGGER_H__ + +#ifdef _DEBUG + +// To reduce debugging - comment out one or more of these defines + +#define __DEBUGLEVELCRITICAL__ // Critical logging (erroneous conditions) +#define __DEBUGLEVELMAJOR__ // Major (important data used in the Csy) +#define __DEBUGLEVELMINOR__ // Minor (important conditions) +#define __DEBUGLEVELDETAILED__ // Detailed (comments & func >> << logging) + +// Route for logging - select one of these +#define __DEBUGLOGFILE__ +//#define __DEBUGSERIALPORT__ + +#define LOGHEADER() CCsyDebugLogger::WriteHeader() +#else +#define LOGHEADER() +#endif + +#ifdef __DEBUGLEVELCRITICAL__ +#define _LOG_L1C1(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L1C2(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L1C3(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L1C1(AAA) +#define _LOG_L1C2(AAA, BBB) (void) BBB; +#define _LOG_L1C3(AAA, BBB, CCC) (void) BBB; (void) CCC; +#endif + +#ifdef __DEBUGLEVELMAJOR__ +#define _LOG_L2C1(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L2C2(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L2C3(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L2C1(AAA) +#define _LOG_L2C2(AAA, BBB) (void) BBB; +#define _LOG_L2C3(AAA, BBB, CCC) (void) BBB; (void) CCC; +#endif + +#ifdef __DEBUGLEVELMINOR__ +#define _LOG_L3C1(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L3C2(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L3C3(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L3C1(AAA) +#define _LOG_L3C2(AAA, BBB) (void) BBB; +#define _LOG_L3C3(AAA, BBB, CCC) (void) BBB; (void) CCC; +#endif + +#ifdef __DEBUGLEVELDETAILED__ +#define _LOG_L4C1(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L4C2(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L4C3(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L4C1(AAA) +#define _LOG_L4C2(AAA, BBB) (void) BBB; +#define _LOG_L4C3(AAA, BBB, CCC) (void) BBB; (void) CCC; +#endif + + + +// The following logging macros are the same as those above with the following exception: +// The arguments are removed from the code when the logging is removed. +// This is needed to remove warnings where otherwise unused variables are logged. + +#ifdef __DEBUGLEVELCRITICAL__ +#define _LOG_L1C1E(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L1C2E(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L1C3E(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L1C1E(AAA) +#define _LOG_L1C2E(AAA, BBB) +#define _LOG_L1C3E(AAA, BBB, CCC) +#endif + +#ifdef __DEBUGLEVELMAJOR__ +#define _LOG_L2C1E(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L2C2E(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L2C3E(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L2C1E(AAA) +#define _LOG_L2C2E(AAA, BBB) +#define _LOG_L2C3E(AAA, BBB, CCC) +#endif + +#ifdef __DEBUGLEVELMINOR__ +#define _LOG_L3C1E(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L3C2E(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L3C3E(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L3C1E(AAA) +#define _LOG_L3C2E(AAA, BBB) +#define _LOG_L3C3E(AAA, BBB, CCC) +#endif + +#ifdef __DEBUGLEVELDETAILED__ +#define _LOG_L4C1E(AAA) CCsyDebugLogger::Write(_L8(AAA)) +#define _LOG_L4C2E(AAA, BBB) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB) +#define _LOG_L4C3E(AAA, BBB, CCC) CCsyDebugLogger::WriteFormat(_L8(AAA),BBB,CCC) +#else +#define _LOG_L4C1E(AAA) +#define _LOG_L4C2E(AAA, BBB) +#define _LOG_L4C3E(AAA, BBB, CCC) +#endif + +#include + +class CCsyDebugLogger : public CBase + { +public: + static void WriteHeader(); + static void Write(const TDesC8& aText); + static void WriteFormat(TRefByValue aFmt, ...); + }; + +#endif // __CSYDEBUGLOGGER_H__ \ No newline at end of file