diff options
| author | a1xd <[email protected]> | 2021-09-22 20:49:04 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-09-22 20:49:04 -0400 |
| commit | 8a4b6f57758338d5537d4671184099a4728a8cdd (patch) | |
| tree | df36529a344d5d21ff11f5ba021ec80afb4b68a4 /common/rawaccel-error.hpp | |
| parent | Merge pull request #87 from matthewstrasiotto/streamer_mode (diff) | |
| parent | improve converter + docs (diff) | |
| download | rawaccel-8a4b6f57758338d5537d4671184099a4728a8cdd.tar.xz rawaccel-8a4b6f57758338d5537d4671184099a4728a8cdd.zip | |
Merge pull request #105 from a1xd/1.5.x
v1.5
Diffstat (limited to 'common/rawaccel-error.hpp')
| -rw-r--r-- | common/rawaccel-error.hpp | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/common/rawaccel-error.hpp b/common/rawaccel-error.hpp index cdbe1e5..a9cb7b8 100644 --- a/common/rawaccel-error.hpp +++ b/common/rawaccel-error.hpp @@ -1,11 +1,12 @@ #pragma once -#include <stdexcept> +#include <system_error> +#include <string> namespace rawaccel { - class error : public std::runtime_error { - using std::runtime_error::runtime_error; + class error : public std::runtime_error { + using std::runtime_error::runtime_error; }; class io_error : public error { @@ -14,7 +15,25 @@ namespace rawaccel { class install_error : public io_error { public: - install_error() : io_error("Raw Accel driver is not installed, run installer.exe") {} + install_error() : + io_error("Raw Accel is not installed, run installer.exe") {} + }; + + class sys_error : public io_error { + public: + sys_error(const char* msg, DWORD code = GetLastError()) : + io_error(build_msg(code, msg)) {} + + static std::string build_msg(DWORD code, const char* msg) + { + std::string ret = + std::system_error(code, std::system_category(), msg).what(); + ret += " ("; + ret += std::to_string(code); + ret += ")"; + return ret; + } + }; } |