Clean up exception classes.
[awesomized/libmemcached] / libtest / result / base.hpp
index 51ee995d4463cbf81a114cd817ff8d29c251a5d2..5f093f83c2ff747b1d6afea73d52befab9d153a3 100644 (file)
 
 #pragma once
 
+#include "libtest/exception.hpp"
+#include "libtest/error.h"
+
 namespace libtest {
 
-class __test_result : public std::exception
+class __test_result : public libtest::exception
 {
 public:
   __test_result(const char *file, int line, const char *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() const
-  {
-    return _line;
-  }
-
-  const char*  file() const
-  {
-    return _file;
-  }
-
-  const char* func() const
-  {
-    return _func;
-  }
-
-protected:
-  void init(va_list);
+  virtual test_return_t return_code() const= 0;
 
 private:
-  int _line;
-  const char*  _file;
-  const char* _func;
-  char* _error_message;
-  int _error_message_size;
 };
 
 } // namespace libtest