22 #include <sys/types.h>
57 #define NUM_LOG_LEVELS 10
61 #define CONST_DIRENT_T struct dirent
63 #define CONST_DIRENT_T const struct dirent
66 #define SG_SET_LOCALE_C setlocale(LC_ALL, "C")
67 #define SG_RESET_LOCALE setlocale(LC_ALL, "")
71 #define SG_GCDEBUG(...) io->message(MSG_GCDEBUG, __FILE__, __LINE__, __VA_ARGS__)
72 #define SG_DEBUG(...) io->message(MSG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
73 #define SG_INFO(...) io->message(MSG_INFO, __FILE__, __LINE__, __VA_ARGS__)
74 #define SG_WARNING(...) io->message(MSG_WARN, __FILE__, __LINE__, __VA_ARGS__)
75 #define SG_ERROR(...) io->message(MSG_ERROR, __FILE__, __LINE__, __VA_ARGS__)
76 #define SG_UNSTABLE(func, ...) io->message(MSG_WARN, __FILE__, __LINE__, \
77 __FILE__ ":" func ": Unstable method! Please report if it seems to " \
78 "work or not to the Shogun mailing list. Thanking you in " \
79 "anticipation. " __VA_ARGS__)
81 #define SG_PRINT(...) io->message(MSG_MESSAGEONLY, __FILE__, __LINE__, __VA_ARGS__)
82 #define SG_NOTIMPLEMENTED io->not_implemented(__FILE__, __LINE__)
83 #define SG_DEPRECATED io->deprecated(__FILE__, __LINE__)
85 #define SG_PROGRESS(...) io->progress(__VA_ARGS__)
86 #define SG_ABS_PROGRESS(...) io->absolute_progress(__VA_ARGS__)
87 #define SG_DONE() io->done()
90 #define SG_SGCDEBUG(...) sg_io->message(MSG_GCDEBUG,__FILE__, __LINE__, __VA_ARGS__)
91 #define SG_SDEBUG(...) sg_io->message(MSG_DEBUG,__FILE__, __LINE__, __VA_ARGS__)
92 #define SG_SINFO(...) sg_io->message(MSG_INFO,__FILE__, __LINE__, __VA_ARGS__)
93 #define SG_SWARNING(...) sg_io->message(MSG_WARN,__FILE__, __LINE__, __VA_ARGS__)
94 #define SG_SERROR(...) sg_io->message(MSG_ERROR,__FILE__, __LINE__, __VA_ARGS__)
95 #define SG_SPRINT(...) sg_io->message(MSG_MESSAGEONLY,__FILE__, __LINE__, __VA_ARGS__)
96 #define SG_SPROGRESS(...) sg_io->progress(__VA_ARGS__)
97 #define SG_SABS_PROGRESS(...) sg_io->absolute_progress(__VA_ARGS__)
98 #define SG_SDONE() sg_io->done()
99 #define SG_SNOTIMPLEMENTED sg_io->not_implemented(__FILE__, __LINE__)
100 #define SG_SDEPRECATED sg_io->deprecated(__FILE__, __LINE__)
102 #define ASSERT(x) { if (!(x)) SG_SERROR("assertion %s failed in file %s line %d\n",#x, __FILE__, __LINE__);}
169 int32_t line,
const char *fmt, ... )
const;
182 const char* prefix=
"PROGRESS:\t");
196 const char* prefix=
"PROGRESS:\t");
214 "This function is deprecated and will be removed soon.\n");
349 if (!access(fname, R_OK))
352 if (!stat(fname, &s) && S_ISREG(s.st_mode))
386 if (refcount==0 || --refcount==0)
467 memcpy(ret,s.
start,len-1);
490 char* endptr = s.
end;
505 char* endptr = s.
end;
521 int32_t int_val = atoi(c_string);
534 return strtoul(s.
start,NULL,10);