37 unsigned timestamp_levels;
41} globus_debug_handle_t;
45 const char * env_name,
46 const char * level_names,
47 globus_debug_handle_t * handle);
49#define GlobusDebugThreadId() globus_thread_self()
52#define GlobusDebugDefine(module_name) \
53 extern globus_debug_handle_t globus_i_##module_name##_debug_handle; \
54 void globus_i_##module_name##_debug_printf(const char * fmt, ...) \
58 if(!globus_i_##module_name##_debug_handle.file) \
62 if(globus_i_##module_name##_debug_handle.thread_ids) \
66 buf, "%lu::%s", (unsigned long) globus_thread_self().dummy, fmt);\
67 vfprintf(globus_i_##module_name##_debug_handle.file, buf, ap); \
71 vfprintf(globus_i_##module_name##_debug_handle.file, fmt, ap); \
75 void globus_i_##module_name##_debug_time_printf(const char * fmt, ...) \
79 globus_abstime_t current_time; \
81 if(!globus_i_##module_name##_debug_handle.file) \
84 GlobusTimeAbstimeGetCurrent(current_time); \
86 if(globus_i_##module_name##_debug_handle.thread_ids) \
88 globus_thread_t __self = GlobusDebugThreadId(); \
89 sprintf(buf, "%lu:%lu.%.9lu::%s", \
90 (unsigned long) __self.dummy, \
91 (unsigned long) current_time.tv_sec, \
92 (unsigned long) current_time.tv_nsec, \
94 vfprintf(globus_i_##module_name##_debug_handle.file, buf, ap); \
98 sprintf(buf, "%lu.%.9lu::%s", \
99 (unsigned long) current_time.tv_sec, \
100 (unsigned long) current_time.tv_nsec, \
102 vfprintf(globus_i_##module_name##_debug_handle.file, buf, ap); \
106 void globus_i_##module_name##_debug_fwrite( \
107 const void *ptr, size_t size, size_t nmemb) \
109 if(globus_i_##module_name##_debug_handle.file) \
110 fwrite(ptr, size, nmemb, \
111 globus_i_##module_name##_debug_handle.file); \
113 globus_debug_handle_t globus_i_##module_name##_debug_handle
116#define GlobusDebugDeclare(module_name) \
117 extern void globus_i_##module_name##_debug_printf(const char *, ...); \
118 extern void globus_i_##module_name##_debug_time_printf(const char *, ...);\
119 extern void globus_i_##module_name##_debug_fwrite( \
120 const void *ptr, size_t size, size_t nmemb); \
121 extern globus_debug_handle_t globus_i_##module_name##_debug_handle
143#define GlobusDebugInit(module_name, levels) \
145 #module_name "_DEBUG", \
147 &globus_i_##module_name##_debug_handle)
150#define GlobusDebugDestroy(module_name) \
153 if(globus_i_##module_name##_debug_handle.using_file) \
155 fclose(globus_i_##module_name##_debug_handle.file); \
157 globus_i_##module_name##_debug_handle.file = GLOBUS_NULL; \
163#define GlobusDebugMyPrintf(module_name, message) \
164 globus_i_##module_name##_debug_printf message
165#define GlobusDebugMyTimePrintf(module_name, message) \
166 globus_i_##module_name##_debug_time_printf message
168#define GlobusDebugMyFwrite(module_name, buffer, size, count) \
169 globus_i_##module_name##_debug_fwrite((buffer), (size), (count))
171#define GlobusDebugMyFile(module_name) \
172 (globus_i_##module_name##_debug_handle.file)
183#define GlobusDebugTrue(module_name, level) \
184 (globus_i_##module_name##_debug_handle.levels & (level))
186#define GlobusDebugTimeTrue(module_name, level) \
187 (globus_i_##module_name##_debug_handle.timestamp_levels & (level))
194#define GlobusDebugPrintf(module_name, level, message) \
197 if(GlobusDebugTrue(module_name, level)) \
199 if(!GlobusDebugTimeTrue(module_name, level)) \
201 GlobusDebugMyPrintf(module_name, message); \
205 GlobusDebugMyTimePrintf(module_name, message); \
210#define GlobusDebugFwrite(module_name, level, buffer, size, count) \
213 if(GlobusDebugTrue(module_name, level)) \
215 GlobusDebugMyFwrite(module_name, buffer, size, count); \
221#define GlobusDebugThreadId() 0
222#define GlobusDebugDeclare(module_name)
223#define GlobusDebugDefine(module_name)
224#define GlobusDebugInit(module_name, levels) do {} while(0)
225#define GlobusDebugDestroy(module_name) do {} while(0)
226#define GlobusDebugPrintf(module_name, level, message) do {} while(0)
227#define GlobusDebugFwrite(module_name, level, buffer, size, count) \
229#define GlobusDebugMyPrintf(module_name, message) do {} while(0)
230#define GlobusDebugMyTimePrintf(module_name, message) do {} while(0)
231#define GlobusDebugMyFwrite(module_name, buffer, size, count) do {} while(0)
232#define GlobusDebugMyFile(module_name) (stderr)
233#define GlobusDebugTrue(module_name, level) 0
234#define GlobusDebugTimeTrue(module_name, level) 0
int globus_bool_t
Boolean type.
Definition: globus_types.h:93