From 7d14daf1d5fce4d09471a3abe2aca49cf7680816 Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Wed, 2 Dec 2020 05:25:19 -0500 Subject: embed version info into assemblies check app versions against lib, lib against driver add an 'about' dialog which displays version details, accessible from menu refactor error handling + add check for negative offset --- wrapper/wrapper_io.cpp | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'wrapper/wrapper_io.cpp') diff --git a/wrapper/wrapper_io.cpp b/wrapper/wrapper_io.cpp index 0f257bf..4b77174 100644 --- a/wrapper/wrapper_io.cpp +++ b/wrapper/wrapper_io.cpp @@ -3,11 +3,10 @@ #include #include "wrapper_io.hpp" -void wrapper_io::writeToDriver(const settings& args) -{ - try +auto with_managed_ex = [](auto fn) { + try { - write(args); + fn(); } catch (const install_error&) { @@ -17,20 +16,25 @@ void wrapper_io::writeToDriver(const settings& args) { throw gcnew DriverIOException(gcnew String(e.what())); } +}; + +void wrapper_io::writeToDriver(const settings& args) +{ + with_managed_ex([&] { + write(args); + }); } void wrapper_io::readFromDriver(settings& args) { - try - { + with_managed_ex([&] { args = read(); - } - catch (const install_error&) - { - throw gcnew DriverNotInstalledException(); - } - catch (const std::system_error& e) - { - throw gcnew DriverIOException(gcnew String(e.what())); - } + }); +} + +void wrapper_io::getDriverVersion(version_t& ver) +{ + with_managed_ex([&] { + ver = get_version(); + }); } -- cgit v1.2.3