X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fresult%2Fbase.hpp;h=51ee995d4463cbf81a114cd817ff8d29c251a5d2;hb=d9db3f534bc38ea22e83e5529ff93aea4150ab19;hp=1859c22a925c39fc2a978eb3f04aae7e383e3ea5;hpb=858824dce02bade6464c404beef41da9321d58ef;p=m6w6%2Flibmemcached diff --git a/libtest/result/base.hpp b/libtest/result/base.hpp index 1859c22a..51ee995d 100644 --- a/libtest/result/base.hpp +++ b/libtest/result/base.hpp @@ -2,7 +2,7 @@ * * Data Differential YATL (i.e. libtest) library * - * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * Copyright (C) 2012-2013 Data Differential, http://datadifferential.com/ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -43,32 +43,44 @@ class __test_result : public std::exception public: __test_result(const char *file, int line, const char *func); - __test_result( const __test_result& other ) : - _line(other._line), - _file(other._file), - _func(other._func) + __test_result( const __test_result& ); + + virtual ~__test_result() throw(); + + virtual const char* what() const throw() { + if (_error_message) + { + return _error_message; + } + + return ""; } - int line() + int line() const { return _line; } - const char* file() + const char* file() const { return _file; } - const char* func() + const char* func() const { return _func; } +protected: + void init(va_list); + private: int _line; const char* _file; const char* _func; + char* _error_message; + int _error_message_size; }; } // namespace libtest