00001
00002
00003
00004
00005 #ifndef xmog_tracer_inc
00006 #define xmog_tracer_inc
00007
00008
00009 #include "xmog.h"
00010
00046
00052 enum xmog_trace_facility
00053 {
00054 TraceNothing = 0,
00055 TraceJvm = 1,
00056 TraceThread = 2,
00057 TraceJni = 4,
00058 TraceRemote = 8,
00059 TraceAll = 15,
00060 TraceEverything = 15
00061 };
00062
00063
00069 enum xmog_trace_level
00070 {
00071 TraceDisabled = 0,
00072 TraceErrors = 1,
00073 TraceError = 1,
00074 TraceWarnings = 2,
00075 TraceInfo = 3,
00076 TraceFinest = 4,
00077 TraceVerbose = 4,
00078 TraceUnconditional = 5
00079 };
00080
00081
00091 typedef void (JNICALL *XMOG_TRACE)( FILE * fpTrace, int traceLevel, const char * format, va_list args );
00092
00108 extern "C" XMOG_DECLSPEC void JNICALL traceOutputDebugString( FILE * fpTrace, int traceLevel, const char * format, va_list args );
00109
00125 extern "C" XMOG_DECLSPEC void JNICALL traceEventLog( FILE * fpTrace, int traceLevel, const char * format, va_list args );
00126
00127
00136 class XMOG_DECLSPEC xmog_tracer
00137 {
00138 public:
00139
00148 static void JNICALL traceOutputDebugString( FILE * fpTrace, int traceLevel, const char * format, va_list args );
00149
00158 static void JNICALL traceEventLog( FILE * fpTrace, int traceLevel, const char * format, va_list args );
00159
00168 virtual void trace( int fac, xmog_trace_level level, const char * format, ... ) = 0;
00169
00178 virtual void trace( xmog_trace_facility fac, xmog_trace_level level, const char * format, ... ) = 0;
00179 };
00180
00181
00182 class xmog_inout_tracer
00183 {
00184 public:
00185
00186 xmog_inout_tracer( xmog_tracer * tracer, int fac, xmog_trace_level level, const char * name );
00187
00188 ~xmog_inout_tracer();
00189
00190 private:
00191
00192 xmog_tracer * tracer_;
00193
00194 int fac_;
00195
00196 xmog_trace_level level_;
00197
00198 const char * name_;
00199 };
00200
00201 #endif