#ifndef TIMEOUTEXCEPTION_H #define TIMEOUTEXCEPTION_H #include // 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