bluetoothengine/btsap/inc/debug.h
changeset 0 f63038272f30
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btsap/inc/debug.h	Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2004-2005 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: 
+*     Central place for nice debug-type macros & functions
+*
+*/
+
+
+#ifndef BT_SAP_DEBUG_H
+#define BT_SAP_DEBUG_H
+
+#ifdef _DEBUG
+
+// Debugging options
+
+#define KBTSAP_TRACE_ERROR     0x00000001 // Print errors traces
+#define KBTSAP_TRACE_FUNCTIONS 0x00000002 // Print function traces
+#define KBTSAP_TRACE_STM       0x00000004 // Print state machine traces
+#define KBTSAP_TRACE_MEMORY    0x00000008 // Print memory traces
+#define KBTSAP_TRACE_INFO      0x00000010 // Print informational traces
+
+// Add desired tracing levels below
+const TInt KBTSapDebugMask = KBTSAP_TRACE_ERROR     |
+                             KBTSAP_TRACE_FUNCTIONS |
+                             KBTSAP_TRACE_STM       |
+                             KBTSAP_TRACE_MEMORY    |
+                             KBTSAP_TRACE_INFO;
+
+#ifdef __WINS__
+    // File logging for WINS
+    #define __FLOGGING__
+#else
+    // RDebug logging for target HW
+    #define __CLOGGING__
+#endif
+
+#ifdef __FLOGGING__
+
+#include <e32std.h>
+#include <f32file.h>
+#include <flogger.h>
+
+_LIT(KLogFile,"BTSapLog.txt");
+_LIT(KLogDir,"BT");
+
+inline void TraceMem()
+    {
+#ifdef MEMTRACE
+    TInt size;
+    User::Heap().AllocSize(size);
+    RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, _L("Memory usage: %d high: %d"), size, User::Heap().Size());
+#endif
+    }
+
+inline void BTSapPrintTrace(const TRefByValue<const TDesC8> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list,aFmt);
+    RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list);
+    TraceMem();
+    }
+
+inline void BTSapPrintTrace(const TRefByValue<const TDesC16> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list,aFmt);
+    RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list);
+    TraceMem();
+    }
+
+#else    // __CLOGGING__
+
+#include <e32svr.h>
+
+inline void BTSapPrintTrace(const TRefByValue<const TDesC16> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list,aFmt);
+    TInt tmpInt = VA_ARG(list, TInt);
+    TInt tmpInt2 = VA_ARG(list, TInt);
+    TInt tmpInt3 = VA_ARG(list, TInt);
+    VA_END(list);
+    RDebug::Print(aFmt, tmpInt, tmpInt2, tmpInt3);
+    }
+
+inline void BTSapPrintTrace(TRefByValue<const TDesC8> aFmt, ...)
+    {
+	VA_LIST list;
+	VA_START(list, aFmt);
+    TBuf8<256> buf8;
+	buf8.AppendFormatList(aFmt, list);
+
+    TBuf16<256> buf16(buf8.Length());
+    buf16.Copy(buf8);
+
+    TRefByValue<const TDesC> tmpFmt(_L("%S"));
+    RDebug::Print(tmpFmt, &buf16);
+    }
+
+#endif // __CLOGGING__
+
+inline void BTSapPrintHex(const TRefByValue<const TDesC8> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list, aFmt);
+    TDesC8* aValue = VA_ARG(list, TDesC8*);
+    VA_END(list);
+
+    TBuf8<85> buf8;
+    for (TInt i = 0; i < aValue->Length(); i ++)
+        {
+        if (buf8.Length() > 80) break;
+        buf8.AppendNumFixedWidth((*aValue)[i], EHex, 2);
+        buf8.Append(0x20);
+        }
+
+    BTSapPrintTrace(aFmt, &buf8);
+    }
+
+#define BTSAP_TRACE_OPT(a,p) { if((KBTSapDebugMask) & (a)) (p); }
+
+#else // NO DEBUG
+
+#define BTSAP_TRACE_OPT(a,p)
+
+#endif // _DEBUG
+
+#endif // BT_SAP_DEBUG_H
+
+// End of File