diff options
| author | Robin Krahl <me@robin-krahl.de> | 2018-04-04 23:56:31 +0200 | 
|---|---|---|
| committer | Szczepan Zalega <szczepan@nitrokey.com> | 2018-04-10 08:14:20 +0200 | 
| commit | 45a0b1cecde0eeecf8b8be75ec24d1ecc3ad884f (patch) | |
| tree | 0a73643901f04e08304d3da500f0dfb1414b29cd | |
| parent | d0eb7e950ef6535e82ee307937f51b2d3de7d777 (diff) | |
| download | libnitrokey-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.
| -rw-r--r-- | NitrokeyManager.cc | 15 | ||||
| -rw-r--r-- | libnitrokey/NitrokeyManager.h | 1 | 
2 files changed, 16 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); diff --git a/libnitrokey/NitrokeyManager.h b/libnitrokey/NitrokeyManager.h index ca58d24..1f4cec4 100644 --- a/libnitrokey/NitrokeyManager.h +++ b/libnitrokey/NitrokeyManager.h @@ -80,6 +80,7 @@ char * strndup(const char* str, size_t maxlen);          bool connect_with_ID(const std::string id);          bool connect_with_path (std::string path);          bool connect(const char *device_model); +        bool connect(device::DeviceModel device_model);          bool connect();          bool disconnect();          bool is_connected() throw() ;  | 
