First public contribution.
1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Panic and logging functions common to both the DirectGDI adaptation layer and
15 // associated modules/interfaces.
19 #ifndef DIRECTGDIPANICS_H
20 #define DIRECTGDIPANICS_H
22 #include <graphics/directgdipanics.inl>
31 #ifndef SYMBIAN_PANIC_CATEGORY
32 #error SYMBIAN_PANIC_CATEGORY not defined.
35 /** Helper macros for the assert and panic macros.
37 #define GRAPHICS_SOURCE_FILENAME(sourceFileName) _LIT(KSourceFileName, sourceFileName);
38 #define GRAPHICS_ASSERT_CONDITION(condition) _LIT(KPanicCondition, condition);
39 #define GRAPHICS_LOG_MESSAGE(literalMessage) _LIT(KLogMessage, # literalMessage);
41 #define GRAPHICS_ASSERT_ALWAYS(condition, panicCode) \
44 GRAPHICS_SOURCE_FILENAME(__FILE__); \
45 GRAPHICS_ASSERT_CONDITION(#condition); \
46 DirectGdi::PanicWithDebugLog(SYMBIAN_PANIC_CATEGORY, panicCode, KSourceFileName, __LINE__, &KPanicCondition); \
49 #define GRAPHICS_PANIC_ALWAYS(panicCode) \
51 GRAPHICS_SOURCE_FILENAME(__FILE__); \
52 DirectGdi::PanicWithDebugLog(SYMBIAN_PANIC_CATEGORY, panicCode, KSourceFileName, __LINE__, NULL); \
55 #define GRAPHICS_LOG_ALWAYS(message) \
57 GRAPHICS_SOURCE_FILENAME(__FILE__);\
58 GRAPHICS_LOG_MESSAGE(message); \
59 DirectGdi::Log(KSourceFileName, __LINE__, KLogMessage); \
62 #define GRAPHICS_LOGD_ALWAYS(message) \
64 GRAPHICS_SOURCE_FILENAME(__FILE__);\
65 DirectGdi::Log(KSourceFileName, __LINE__, message); \
69 Define "debug only" macros ONLY when this is a debug build.
72 #define GRAPHICS_LOG_DEBUG(literalMessage) GRAPHICS_LOG_ALWAYS(literalMessage) // Paste parameter literally to log
73 #define GRAPHICS_LOGD_DEBUG(TDesCRefMessage) GRAPHICS_LOGD_ALWAYS(TDesCRefMessage) // Treat message as const TDesC&
74 #define GRAPHICS_ASSERT_DEBUG(condition, panicCode) GRAPHICS_ASSERT_ALWAYS(condition, panicCode)
75 #define GRAPHICS_PANIC_DEBUG(panicCode) GRAPHICS_PANIC_ALWAYS(panicCode)
77 #define GRAPHICS_LOG_DEBUG(literalMessage)
78 #define GRAPHICS_LOGD_DEBUG(TDesCRefMessage)
79 #define GRAPHICS_ASSERT_DEBUG(condition, panicCode)
80 #define GRAPHICS_PANIC_DEBUG(panicCode)
84 // Cannot enable DirectGDI calltrace unless in debug mode.
86 #undef ENABLE_DIRECTGDI_CALLTRACE
89 #ifdef ENABLE_DIRECTGDI_CALLTRACE
90 #define GRAPHICS_TRACE(functionName) RDebug::Print(_L(functionName));
91 #define GRAPHICS_TRACE1(functionName, p) RDebug::Printf(functionName, p);
92 #define GRAPHICS_TRACE2(functionName, p1, p2) RDebug::Printf(functionName, p1, p2);
94 #define GRAPHICS_TRACE(functionName)
95 #define GRAPHICS_TRACE1(functionName, p)
96 #define GRAPHICS_TRACE2(functionName, p1, p2)
99 #endif // DIRECTGDIPANICS_H