X-Git-Url: http://git.squeep.com/?p=reservoir_sample;a=blobdiff_plain;f=notify.h;fp=notify.h;h=d9411c9ed327b06a974de377b92d7eea3d79242f;hp=0000000000000000000000000000000000000000;hb=694d004f3c2a521672d468a8bc77dc2b635ffd9f;hpb=6bd502bb5a3c61bb3b0cd76d613973346e8a5d90 diff --git a/notify.h b/notify.h new file mode 100644 index 0000000..d9411c9 --- /dev/null +++ b/notify.h @@ -0,0 +1,29 @@ +#ifndef NOTIFY_H_V4O5JY61 +#define NOTIFY_H_V4O5JY61 + +/* simple common notify hook */ + +typedef void (notify_fn_t)(unsigned int, const char *, ...); +extern notify_fn_t *notify __attribute__((format(printf, 2, 3))); + +#define NOTIFY_LEVEL_FATAL 0 +#define NOTIFY_LEVEL_ERROR 1 +#define NOTIFY_LEVEL_INFO 2 +#define NOTIFY_LEVEL_VERBOSE 3 +#define NOTIFY_LEVEL_DEBUG 4 +#define NOTIFY_LEVEL_LOCK 5 + +#define NOTIFY(__level__,__fmt__,...) do { if (notify) notify((__level__), __fmt__, ## __VA_ARGS__); } while (0) +#define NOTIFY_FATAL(fmt,...) NOTIFY(NOTIFY_LEVEL_FATAL, "@%s:%d/%s/" fmt "\n", __FILE__, __LINE__, __func__, ## __VA_ARGS__) +#define NOTIFY_ERROR(fmt,...) NOTIFY(NOTIFY_LEVEL_ERROR, "@%s:%d/%s/" fmt "\n", __FILE__, __LINE__, __func__, ## __VA_ARGS__) +#define NOTIFY_INFO(fmt,...) NOTIFY(NOTIFY_LEVEL_INFO, "@%s:%d/%s/" fmt "\n", __FILE__, __LINE__, __func__, ## __VA_ARGS__) +#define NOTIFY_VERBOSE(fmt,...) NOTIFY(NOTIFY_LEVEL_VERBOSE, "@%s:%d/%s/" fmt "\n", __FILE__, __LINE__, __func__, ## __VA_ARGS__) +#ifndef NDEBUG +#define NOTIFY_DEBUG(fmt,...) NOTIFY(NOTIFY_LEVEL_DEBUG, "@%s:%d/%s/" fmt "\n", __FILE__, __LINE__, __func__, ## __VA_ARGS__) +#define NOTIFY_DEBUG_LOCK(fmt,...) NOTIFY((NOTIFY_LEVEL_LOCK), "@%s:%d/%s/" fmt "\n", __FILE__, __LINE__, __func__, ## __VA_ARGS__) +#else /* !NDEBUG */ +#define NOTIFY_DEBUG(fmt,...) do { } while (0) +#define NOTIFY_DEBUG_LOCK(fmt,...) do { } while (0) +#endif /* !NDEBUG */ + +#endif /* NOTIFY_H_V4O5JY61 */