22 unsigned timestamp_levels;
26 } globus_debug_handle_t;
30 const char * env_name,
31 const char * level_names,
32 globus_debug_handle_t * handle);
34 #define GlobusDebugThreadId() globus_thread_self()
37 #define GlobusDebugDefine(module_name) \
38 extern globus_debug_handle_t globus_i_##module_name##_debug_handle; \
39 void globus_i_##module_name##_debug_printf(const char * fmt, ...) \
43 if(!globus_i_##module_name##_debug_handle.file) \
47 if(globus_i_##module_name##_debug_handle.thread_ids) \
51 buf, "%lu::%s", (unsigned long) globus_thread_self().dummy, fmt);\
52 vfprintf(globus_i_##module_name##_debug_handle.file, buf, ap); \
56 vfprintf(globus_i_##module_name##_debug_handle.file, fmt, ap); \
60 void globus_i_##module_name##_debug_time_printf(const char * fmt, ...) \
64 globus_abstime_t current_time; \
66 if(!globus_i_##module_name##_debug_handle.file) \
69 GlobusTimeAbstimeGetCurrent(current_time); \
71 if(globus_i_##module_name##_debug_handle.thread_ids) \
73 globus_thread_t __self = GlobusDebugThreadId(); \
74 sprintf(buf, "%lu:%lu.%.9lu::%s", \
75 (unsigned long) __self.dummy, \
76 (unsigned long) current_time.tv_sec, \
77 (unsigned long) current_time.tv_nsec, \
79 vfprintf(globus_i_##module_name##_debug_handle.file, buf, ap); \
83 sprintf(buf, "%lu.%.9lu::%s", \
84 (unsigned long) current_time.tv_sec, \
85 (unsigned long) current_time.tv_nsec, \
87 vfprintf(globus_i_##module_name##_debug_handle.file, buf, ap); \
91 void globus_i_##module_name##_debug_fwrite( \
92 const void *ptr, size_t size, size_t nmemb) \
94 if(globus_i_##module_name##_debug_handle.file) \
95 fwrite(ptr, size, nmemb, \
96 globus_i_##module_name##_debug_handle.file); \
98 globus_debug_handle_t globus_i_##module_name##_debug_handle
101 #define GlobusDebugDeclare(module_name) \
102 extern void globus_i_##module_name##_debug_printf(const char *, ...); \
103 extern void globus_i_##module_name##_debug_time_printf(const char *, ...);\
104 extern void globus_i_##module_name##_debug_fwrite( \
105 const void *ptr, size_t size, size_t nmemb); \
106 extern globus_debug_handle_t globus_i_##module_name##_debug_handle
128 #define GlobusDebugInit(module_name, levels) \
130 #module_name "_DEBUG", \
132 &globus_i_##module_name##_debug_handle)
135 #define GlobusDebugDestroy(module_name) \
138 if(globus_i_##module_name##_debug_handle.using_file) \
140 fclose(globus_i_##module_name##_debug_handle.file); \
142 globus_i_##module_name##_debug_handle.file = GLOBUS_NULL; \
148 #define GlobusDebugMyPrintf(module_name, message) \
149 globus_i_##module_name##_debug_printf message
150 #define GlobusDebugMyTimePrintf(module_name, message) \
151 globus_i_##module_name##_debug_time_printf message
153 #define GlobusDebugMyFwrite(module_name, buffer, size, count) \
154 globus_i_##module_name##_debug_fwrite((buffer), (size), (count))
156 #define GlobusDebugMyFile(module_name) \
157 (globus_i_##module_name##_debug_handle.file)
168 #define GlobusDebugTrue(module_name, level) \
169 (globus_i_##module_name##_debug_handle.levels & (level))
171 #define GlobusDebugTimeTrue(module_name, level) \
172 (globus_i_##module_name##_debug_handle.timestamp_levels & (level))
179 #define GlobusDebugPrintf(module_name, level, message) \
182 if(GlobusDebugTrue(module_name, level)) \
184 if(!GlobusDebugTimeTrue(module_name, level)) \
186 GlobusDebugMyPrintf(module_name, message); \
190 GlobusDebugMyTimePrintf(module_name, message); \
195 #define GlobusDebugFwrite(module_name, level, buffer, size, count) \
198 if(GlobusDebugTrue(module_name, level)) \
200 GlobusDebugMyFwrite(module_name, buffer, size, count); \
206 #define GlobusDebugThreadId() 0
207 #define GlobusDebugDeclare(module_name)
208 #define GlobusDebugDefine(module_name)
209 #define GlobusDebugInit(module_name, levels) do {} while(0)
210 #define GlobusDebugDestroy(module_name) do {} while(0)
211 #define GlobusDebugPrintf(module_name, level, message) do {} while(0)
212 #define GlobusDebugFwrite(module_name, level, buffer, size, count) \
214 #define GlobusDebugMyPrintf(module_name, message) do {} while(0)
215 #define GlobusDebugMyTimePrintf(module_name, message) do {} while(0)
216 #define GlobusDebugMyFwrite(module_name, buffer, size, count) do {} while(0)
217 #define GlobusDebugMyFile(module_name) (stderr)
218 #define GlobusDebugTrue(module_name, level) 0
219 #define GlobusDebugTimeTrue(module_name, level) 0
int globus_bool_t
Boolean type.
Definition: globus_types.h:78