--- /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