36 lines
700 B
C++
36 lines
700 B
C++
#ifndef TIMEOUTEXCEPTION_H
|
|
#define TIMEOUTEXCEPTION_H
|
|
|
|
#include <exception>
|
|
|
|
// SOURCE: https://stackoverflow.com/a/8152888
|
|
|
|
class TimeoutException: public std::exception
|
|
{
|
|
public:
|
|
explicit TimeoutException(const char* message, int timeout) : TimeoutException(std::string(message), timeout)
|
|
{
|
|
}
|
|
|
|
explicit TimeoutException(const std::string& message, int timeout) : msg(message), m_timeout(timeout)
|
|
{
|
|
if(!msg.length())
|
|
msg = "Timeout reached (" + std::to_string(m_timeout) + ")";
|
|
}
|
|
|
|
virtual ~TimeoutException() throw ()
|
|
{
|
|
}
|
|
|
|
virtual const char* what() const throw ()
|
|
{
|
|
return msg.c_str();
|
|
}
|
|
|
|
protected:
|
|
std::string msg;
|
|
int m_timeout;
|
|
};
|
|
|
|
#endif // TIMEOUTEXCEPTION_H
|