00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __LOGGER_H__
00016 #define __LOGGER_H__
00017
00018 #include <SIBCUtil.h>
00019
00021
00023 class CSLLogger;
00025
00028
00033 typedef SI_Bool (*SLLoggerCallBack)( CSLLogger* in_pLogger, SI_Int in_nErrorType, SI_Void* in_pData);
00035
00037
00039 XSIEXPORT SI_Bool StdOnInit( CSLLogger *in_pLogger, SI_Int, SI_Void* in_pData );
00040 XSIEXPORT SI_Bool StdOnFatal( CSLLogger *in_pLogger, SI_Int, SI_Void* in_pData );
00041 XSIEXPORT SI_Bool StdOnError( CSLLogger *in_pLogger, SI_Int, SI_Void* in_pData );
00042 XSIEXPORT SI_Bool StdOnWarning( CSLLogger *in_pLogger, SI_Int, SI_Void* in_pData );
00043 XSIEXPORT SI_Bool StdOnVerbose( CSLLogger *in_pLogger, SI_Int, SI_Void* in_pData );
00044 XSIEXPORT SI_Bool StdOnTerm( CSLLogger *in_pLogger, SI_Int, SI_Void* in_pData );
00046
00049 class XSIEXPORT CSLLogger
00050 {
00051 public:
00052
00054
00063 CSLLogger
00064 (
00065 SLLoggerCallBack OnInitFunc = StdOnInit,
00066 SLLoggerCallBack OnFatalFunc = StdOnFatal,
00067 SLLoggerCallBack OnErrorFunc = StdOnError,
00068 SLLoggerCallBack OnWarningFunc = StdOnWarning,
00069 SLLoggerCallBack OnVerboseFunc = StdOnVerbose,
00070 SLLoggerCallBack OnTermFunc = StdOnTerm,
00071 SI_Void* in_pUserData = 0
00072 );
00073
00075 enum ELogType
00076 {
00077 SI_LOG_INIT = 0,
00078 SI_LOG_FATAL,
00079 SI_LOG_ERROR,
00080 SI_LOG_WARNING,
00081 SI_LOG_VERBOSE,
00082 SI_LOG_TERM
00083 };
00084
00086
00091 SI_Bool Log( ELogType in_Type, SI_Void* in_pData );
00092
00094 SI_Void* GetData();
00095
00097
00101 SI_Void* SetData( SI_Void* in_pData );
00102
00104
00109 SLLoggerCallBack SetCallBack( ELogType in_Callback, SLLoggerCallBack in_NewCallback );
00110
00112
00116 SLLoggerCallBack GetCallBack( ELogType in_Callback );
00117
00118
00119 private:
00120 SI_Void* m_pData;
00121
00122 SLLoggerCallBack m_pCallBacks[SI_LOG_TERM+1];
00123 };
00125
00126 #endif //__LOGGER_H__