dosservices/tsrc/public/basic/dosservertestplugin/inc/Siftrace.h
changeset 0 4e1aa6a622a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dosservices/tsrc/public/basic/dosservertestplugin/inc/Siftrace.h	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,198 @@
+/*
+* Copyright (c) 2007 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:  Declaration and implementation of SIF trace macros
+*
+*/
+
+
+#ifndef SIFTRACE_H
+#define SIFTRACE_H
+
+// Additional Lint configuration options are defined here.
+//lint -e1714 Member function not referenced.
+//   - CTFTestTimer, CTFActiveTest, copy constructors, assignment operators
+//lint -e1526 Member function not defined.
+//   - Copy constructors, assignment operators
+//lint -e714  Symbol not referenced
+//   - uid, LibEntryL
+//lint -e1711 Class has a virtual function but is not inherited
+//   - Inherited in the project that implements the test cases
+//lint -e755  Macro not referenced
+//   - Some trace macros
+//lint -e769  Enumeration constant not referenced
+//   - Panic codes are not referenced in WINS
+//lint -e1716 Virtual member function not referenced
+//   - Referenced b the project that implements the test cases
+//lint -esym(960, 69) Variable number of arguments
+//   - Log writer functions contain ellipsis
+//lint -esym(960, 54) Null statement by itself
+//   - When COMPONENT_TRACE is not enabled
+//lint -esym(960, 59) Left brace expected for if, else, for, do and while
+//   - TRACE_ASSERT macro
+//lint -e1924 C-style case
+//   - From _L macros
+//lint -e666 Expression with side effects
+//   - From TEST_CASE_TRACE
+
+// INCLUDES
+#include <e32svr.h>
+
+// PC-LINT OPTIONS
+// Removes null statement not in line by itself warnings from 
+// COMPONENT_TRACE macros
+//lint -esym(960,54)
+
+// Removes "area too small" pointer cast warnings.
+//lint -e826
+
+// Member function not referenced (copy constructors / assignment operators)
+//lint -e1714
+
+// Member function not defined (copy constructors / assignment operators)
+//lint -e1526
+
+// Global macro not referenced
+//lint -e755
+
+// Symbol not referenced (uid)
+//lint -e714
+
+// Global enumeration constant not referenced
+//lint -e769
+
+// Virtual member not referenced
+//lint -e1716
+
+// Expression with side effects passed to macro
+//lint -e666
+
+// Enumeration not referenced
+//lint -e758
+
+// Declaration could be moved from header to module
+//lint -e759
+
+
+// CONSTANTS
+// MACROS
+#ifdef _DEBUG
+
+    inline void TraceAssertFunc( const TDesC8& aFile, TInt aLine )
+        {
+        HBufC* buffer = HBufC::New( aFile.Length() + 1 );
+        HBufC* date = HBufC::New( 32 );
+        HBufC* time = HBufC::New( 32 );
+        if ( buffer != NULL && date != NULL && time != NULL )
+            {
+            buffer->Des().Copy( aFile );
+            date->Des().Copy( _L8( __DATE__ ) );
+            time->Des().Copy( _L8( __TIME__ ) );
+            RDebug::Print( _L( "Assertion failed: file=%s, line=%d, compiled=%s %s" ), buffer->Des().PtrZ(), aLine, date->Des().PtrZ(), time->Des().PtrZ() );
+            }
+        else
+            {
+            RDebug::Print( _L( "Assertion and memory allocation failed" ) );
+            }
+        delete buffer;
+        delete date;
+        delete time;
+        }
+
+    inline void ThisFileFunc( const TDesC8& aFile )
+        {
+        HBufC* buffer = HBufC::New( aFile.Length() + 1 );
+        HBufC* date = HBufC::New( 32 );
+        HBufC* time = HBufC::New( 32 );
+        if ( buffer != NULL && date != NULL && time != NULL )
+            {
+            buffer->Des().Copy( aFile );
+            date->Des().Copy( _L8( __DATE__ ) );
+            time->Des().Copy( _L8( __TIME__ ) );
+            RDebug::Print( _L( "File=%s, compiled=%s %s" ), buffer->Des().PtrZ(), date->Des().PtrZ(), time->Des().PtrZ() );
+            }
+        delete buffer;
+        delete date;
+        delete time;
+        }
+
+    #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE_THIS_FILE ThisFileFunc( _L8( __FILE__ ) )
+
+    #else //#ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE_THIS_FILE
+
+    #endif //#ifdef COMPONENT_TRACE_FLAG
+
+    #define TRACE_ASSERT( a ) if ( !( a ) ) TraceAssertFunc( _L8( __FILE__ ), __LINE__ )
+    #define TRACE_ASSERT_RETURN( a ) if ( !( ( a ) == KErrNone ) ) TraceAssertFunc( _L8( __FILE__ ), __LINE__ )
+    #define TRACE_ASSERT_ALWAYS TraceAssertFunc( _L8( __FILE__ ), __LINE__ )
+
+    #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE( a ) RDebug::Print a 
+
+    #else // #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE( a )
+
+    #endif //#ifdef COMPONENT_TRACE_FLAG
+
+	#ifdef TEST_CASE_TRACE_FLAG
+
+		#define TEST_CASE_TRACE( a ) \
+		    RDebug::Print a; \
+			Logger().Write a; \
+		    Logger().EndLine()
+
+	#else //#ifdef TEST_CASE_TRACE_FLAG
+
+		#define TEST_CASE_TRACE( a ) \
+		    Logger().Write a; \
+		    Logger().EndLine()
+
+	#endif //#ifdef TEST_CASE_TRACE_FLAG
+
+    #ifdef API_TRACE_FLAG
+
+        #define API_TRACE( a ) RDebug::Print a
+
+    #else //#ifdef API_TRACE_FLAG
+
+        #define API_TRACE( a )
+
+    #endif //#ifdef API_TRACE_FLAG
+
+#else // #ifdef _DEBUG
+
+    #define TRACE_ASSERT( a )
+    #define TRACE_ASSERT_RETURN( a ) a
+    #define TRACE_ASSERT_ALWAYS
+	#define TEST_CASE_TRACE( a )
+    #define COMPONENT_TRACE( a )
+    #define API_TRACE( a )
+    #define COMPONENT_TRACE_THIS_FILE
+
+#endif //#ifdef _DEBUG
+
+
+
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+
+#endif //#ifndef ccftrace.h
+
+//  End of File