summaryrefslogtreecommitdiff
path: root/NitrokeyManager.cc
diff options
context:
space:
mode:
authorRobin Krahl <me@robin-krahl.de>2018-04-04 23:56:31 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2018-04-10 08:14:20 +0200
commit45a0b1cecde0eeecf8b8be75ec24d1ecc3ad884f (patch)
tree0a73643901f04e08304d3da500f0dfb1414b29cd /NitrokeyManager.cc
parentd0eb7e950ef6535e82ee307937f51b2d3de7d777 (diff)
downloadlibnitrokey-45a0b1cecde0eeecf8b8be75ec24d1ecc3ad884f.tar.gz
libnitrokey-45a0b1cecde0eeecf8b8be75ec24d1ecc3ad884f.tar.bz2
Add a NitrokeyManager::connect overload for enum
Identifying the model to connect to by the first character of a string is not intuitive. This patch adds an overload for the connect function that accepts a device::DeviceModel enum value, providing a cleaner interface.
Diffstat (limited to 'NitrokeyManager.cc')
-rw-r--r--NitrokeyManager.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/NitrokeyManager.cc b/NitrokeyManager.cc
index db0c0a9..48196a9 100644
--- a/NitrokeyManager.cc
+++ b/NitrokeyManager.cc
@@ -273,6 +273,21 @@ using nitrokey::misc::strcpyT;
return device->connect();
}
+ bool NitrokeyManager::connect(device::DeviceModel device_model) {
+ const char *model_string;
+ switch (device_model) {
+ case device::DeviceModel::PRO:
+ model_string = "P";
+ break;
+ case device::DeviceModel::STORAGE:
+ model_string = "S";
+ break;
+ default:
+ throw std::runtime_error("Unknown model");
+ }
+ return connect(model_string);
+ }
+
shared_ptr<NitrokeyManager> NitrokeyManager::instance() {
static std::mutex mutex;
std::lock_guard<std::mutex> lock(mutex);