X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=libtest%2Ffatal.hpp;h=bb8cc938364b95076a3ed2ca038d43d65a4dbd21;hb=f47caf2833675cce0b62a6e4ffd6764c1490a8b4;hp=bc288afeb767cf72498ee86348364dc830c5039f;hpb=9139975f5fe7895259645117b1e0e9a6cb9c27cc;p=m6w6%2Flibmemcached diff --git a/libtest/fatal.hpp b/libtest/fatal.hpp index bc288afe..bb8cc938 100644 --- a/libtest/fatal.hpp +++ b/libtest/fatal.hpp @@ -42,6 +42,13 @@ #define __PRETTY_FUNCTION__ __func__ #endif +#define YATL_STRINGIFY(x) #x +#define YATL_TOSTRING(x) YATL_STRINGIFY(x) +#define YATL_AT __FILE__ ":" YATL_TOSTRING(__LINE__) +#define YATL_AT_PARAM __func__, AT +#define YATL_UNIQUE __FILE__ ":" YATL_TOSTRING(__LINE__) "_unique" +#define YATL_UNIQUE_FUNC_NAME __FILE__ ":" YATL_TOSTRING(__LINE__) "_unique_func" + #define LIBYATL_DEFAULT_PARAM __FILE__, __LINE__, __PRETTY_FUNCTION__ namespace libtest { @@ -56,6 +63,11 @@ public: return _error_message; } + const char* mesg() const throw() + { + return _error_message; + } + // The following are just for unittesting the exception class static bool is_disabled(); static void disable(); @@ -63,14 +75,33 @@ public: static uint32_t disabled_counter(); static void increment_disabled_counter(); + int line() + { + return _line; + } + + const char* file() + { + return _file; + } + + const char* func() + { + return _func; + } + private: char _error_message[BUFSIZ]; + char _mesg[BUFSIZ]; + int _line; + const char* _file; + const char* _func; }; class disconnected : std::runtime_error { public: - disconnected(const char *file, int line, const char *func, const char *instance, const in_port_t port, const char *format, ...); + disconnected(const char *file, int line, const char *func, const std::string&, const in_port_t port, const char *format, ...); const char* what() const throw() { @@ -84,10 +115,28 @@ public: static uint32_t disabled_counter(); static void increment_disabled_counter(); + int line() + { + return _line; + } + + const char* file() + { + return _file; + } + + const char* func() + { + return _func; + } + private: char _error_message[BUFSIZ]; in_port_t _port; char _instance[1024]; + int _line; + const char* _file; + const char* _func; };