00001
00002
00012
00013
00014 #ifndef __LOGGER_H__
00015 #define __LOGGER_H__
00016
00017 #include <SIBCUtil.h>
00018
00020
00022 class CSLLogger;
00024
00026
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
00048
00050 class XSIEXPORT CSLLogger
00051 {
00052 public:
00053
00064 CSLLogger
00065 (
00066 SLLoggerCallBack OnInitFunc = StdOnInit,
00067 SLLoggerCallBack OnFatalFunc = StdOnFatal,
00068 SLLoggerCallBack OnErrorFunc = StdOnError,
00069 SLLoggerCallBack OnWarningFunc = StdOnWarning,
00070 SLLoggerCallBack OnVerboseFunc = StdOnVerbose,
00071 SLLoggerCallBack OnTermFunc = StdOnTerm,
00072 SI_Void* in_pUserData = 0
00073 );
00074
00077 enum ELogType
00078 {
00079 SI_LOG_INIT = 0,
00080 SI_LOG_FATAL,
00081 SI_LOG_ERROR,
00082 SI_LOG_WARNING,
00083 SI_LOG_VERBOSE,
00084 SI_LOG_TERM
00085 };
00086
00093 SI_Bool Log( ELogType in_Type, SI_Void* in_pData );
00094
00097 SI_Void* GetData();
00098
00104 SI_Void* SetData( SI_Void* in_pData );
00105
00112 SLLoggerCallBack SetCallBack( ELogType in_Callback, SLLoggerCallBack in_NewCallback );
00113
00119 SLLoggerCallBack GetCallBack( ELogType in_Callback );
00120
00121
00122 private:
00123 SI_Void* m_pData;
00124
00125 SLLoggerCallBack m_pCallBacks[SI_LOG_TERM+1];
00126 };
00128
00129 #endif //__LOGGER_H__