commsfwsupport/commselements/meshmachine/inc/mm_log.h
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwsupport/commselements/meshmachine/inc/mm_log.h	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,115 @@
+// Copyright (c) 2007-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:
+// mesh machine logging
+// 
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+
+
+#ifndef SYMBIAN_MM_LOG_H
+#define SYMBIAN_MM_LOG_H
+
+#include <elements/nm_log.h>
+
+namespace MeshMachine
+{
+class TNodeContextBase;
+class CNodeActivityBase;
+
+class Logging
+    {
+public:
+    // These are used in the btrace/utrace log output as the SubCategory/Schema
+    enum TLogEntryType
+        {
+        ELogBinary = KBinary,   // Binary dump = 0
+        ELogInfo = KText,       // Text output = 1
+        
+        ELogContext,            // = 2
+        ELogActivity,           // = 3
+        };
+
+private:
+    enum
+        {
+        KPrimaryFilter = 195
+        };
+
+public:
+	IMPORT_C static void Printf(const TDesC8& aSubTag, TRefByValue<const TDesC8> aFmt, ...);
+	IMPORT_C static void Printf(const TDesC8& aSubTag, TRefByValue<const TDesC8> aFmt, VA_LIST& aList);
+
+	IMPORT_C static void LogContext(const TDesC8& aSubTag, const TNodeContextBase& aContext);
+	IMPORT_C static void LogContext(const TDesC8& aSubTag, const TNodeContextBase& aContext, const TDesC8& aText);
+	IMPORT_C static void LogActivity(const TDesC8& aSubTag, const CNodeActivityBase* aActivity, const TNodeContextBase* aContext);
+	IMPORT_C static void LogActivity(const TDesC8& aSubTag, const CNodeActivityBase* aActivity, const TNodeContextBase* aContext, const TDesC8& aText);
+	};
+	
+	
+} // namespace MeshMachine
+
+
+#ifdef SYMBIAN_TRACE_ENABLE
+
+_LIT8(KMeshMachineSubTag, "meshmachine");
+
+// Node Messages general logging
+#define MESH_LOG(logArgs) MeshMachine::Logging::Printf logArgs ;
+
+
+#define MESH_LOG_ACTIVITY(subTag, activity, context) \
+    MeshMachine::Logging::LogActivity(subTag, activity, context)
+
+#define MESH_LOG_ACTIVITY_EXT(subTag, activity, context, logTxt) \
+    { \
+    Messages::TLogTextBuf _logTxtBuf; \
+    _logTxtBuf.AppendFormatIgnoreOverflow logTxt ; \
+    MeshMachine::Logging::LogActivity(subTag, activity, context, _logTxtBuf); \
+    }
+
+    
+// context = TNodeContextBase
+#define MESH_LOG_CONTEXT(subTag, context) \
+    MeshMachine::Logging::LogContext(subTag, context, _logTxtBuf)
+
+#define MESH_LOG_CONTEXT_EXT(subTag, context, logTxt) \
+    { \
+    Messages::TLogTextBuf _logTxtBuf; \
+    _logTxtBuf.AppendFormatIgnoreOverflow logTxt ; \
+    MeshMachine::Logging::LogContext(subTag, context, _logTxtBuf); \
+    }
+	
+
+
+#else
+// !SYMBIAN_TRACE_ENABLE
+
+#define MESH_LOG(logArgs)
+
+#define MESH_LOG_ACTIVITY(subTag, activity, context)
+#define MESH_LOG_ACTIVITY_EXT(subTag, activity, context, logTxt)
+#define MESH_LOG_CONTEXT(subTag, context)
+#define MESH_LOG_CONTEXT_EXT(subTag, context, logTxt)
+
+#endif
+// SYMBIAN_TRACE_ENABLE
+
+
+#endif
+// SYMBIAN_MM_LOG_H
+