13 #include "GUIObserver.h"
14 #include "GUISubject.h"
15 #include "eC_Semaphore.h"
16 #include "GUIConfig.h"
18 #include "GUIComponentManager.h"
22 class eC_PlatformFile;
29 #define GUILOG(Level, Message) GUILOG_##Level(Message)
35 #if (GUI_TRACE_LEVEL == GUI_TRACE_DEBUG)
36 #define GUILOG_GUI_TRACE_DEBUG(Message) CGUIComponentManager::GetInstance().GetTrace().Log("DEBUG: ", Message)
37 #define GUILOG_GUI_TRACE_WARNING(Message) CGUIComponentManager::GetInstance().GetTrace().Log("WARNING: ", Message)
38 #define GUILOG_GUI_TRACE_ERROR(Message) CGUIComponentManager::GetInstance().GetTrace().Log("ERROR: ", Message,eC_String(__FILE__), eC_String(__LINE__))
39 #ifdef GUILIANI_USE_EXCEPTIONS
40 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) { CGUIComponentManager::GetInstance().GetTrace().Log("ERROR: ", ErrorMessage,eC_String(__FILE__), eC_String(__LINE__)); throw Exception; }
42 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) {}
44 #elif (GUI_TRACE_LEVEL == GUI_TRACE_WARNING)
45 #define GUILOG_GUI_TRACE_DEBUG(Message) {}
46 #define GUILOG_GUI_TRACE_WARNING(Message) CGUIComponentManager::GetInstance().GetTrace().Log("WARNING: ", Message)
47 #define GUILOG_GUI_TRACE_ERROR(Message) CGUIComponentManager::GetInstance().GetTrace().Log("ERROR: ", Message)
48 #ifdef GUILIANI_USE_EXCEPTIONS
49 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) { CGUIComponentManager::GetInstance().GetTrace().Log("ERROR: ", ErrorMessage); throw Exception; }
51 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) {}
54 #elif (GUI_TRACE_LEVEL == GUI_TRACE_ERROR)
55 #define GUILOG_GUI_TRACE_DEBUG(Message) {}
56 #define GUILOG_GUI_TRACE_WARNING(Message) {}
57 #define GUILOG_GUI_TRACE_ERROR(Message) CGUIComponentManager::GetInstance().GetTrace().Log("ERROR: ", Message)
58 #ifdef GUILIANI_USE_EXCEPTIONS
59 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) { CGUIComponentManager::GetInstance().GetTrace().Log("ERROR: ", ErrorMessage); throw Exception; }
61 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) {}
64 #else // Trace is switched off
65 #define GUILOG_GUI_TRACE_DEBUG(Message) {}
66 #define GUILOG_GUI_TRACE_WARNING(Message) {}
67 #define GUILOG_GUI_TRACE_ERROR(Message) {}
68 #ifdef GUILIANI_USE_EXCEPTIONS
69 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) {throw Exception;}
71 #define GUILOG_THROW_EXCEPTION(Exception, ErrorMessage) {}
79 #if (GUI_TRACE_LEVEL == GUI_TRACE_OFF)
80 #define GUI_REG_STDOUT_TRACE() {}
81 #define GUI_REG_FILE_TRACE(FILE) {}
82 #define GUI_REG_DEBUGGER_TRACE() {}
84 #define GUI_REG_STDOUT_TRACE() CGUIComponentManager::GetInstance().GetTrace().CreateStdOutTrace();
85 #define GUI_REG_FILE_TRACE(FILE) CGUIComponentManager::GetInstance().GetTrace().CreateFileTrace(FILE);
86 #define GUI_REG_DEBUGGER_TRACE() CGUIComponentManager::GetInstance().GetTrace().CreateDebuggerTrace();
97 #define GUILOGMETHODENTRY CGUIComponentManager::GetInstance().GetTrace().Log("GUILOGMETHODENTRY: ", "Method "+eC_String(__FUNCTION__)+" called. Timestamp: "+GETTIMER.GetTime()+"ms \n", eC_String(__FILE__), eC_String(__LINE__));
105 #define GUILOGMESSAGE(Message) CGUIComponentManager::GetInstance().GetTrace().Log("INFO: ", Message)
216 const eC_String& rkLogStr,
217 const eC_String& rkOutputStr,
218 const eC_String& rkFileName =
"",
219 const eC_String& rkLineNumber =
"");
245 GUITRACE_NOT_ACTIVE = 0,
272 CFileTrace(
const eC_String& rkTraceFileName);
274 virtual void OnNotification(
const eC_String& rkTraceString);
288 CFileTrace(
const CFileTrace& kSource);
295 CFileTrace& operator=(
const CFileTrace& kSource);
297 eC_File* m_pkTraceFile;
331 CDebuggerTrace(
const CDebuggerTrace& kSource);
338 CDebuggerTrace& operator=(
const CDebuggerTrace& kSource);
374 CStdOutTrace* m_pkStdOutTrace;
375 CFileTrace* m_pkFileTrace;
376 CDebuggerTrace* m_pkDebuggerTrace;