aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2016-08-09 15:33:26 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2016-08-09 18:34:00 +0200
commitba4d36c38c0017415129a5674c0f7133e6d76f9d (patch)
tree8f96d247300f66df1ec5bf5cba3e56db903509a4 /include
parent9d6e045a3143f8eb31c5033c9c4be59cc2f73336 (diff)
downloadlibnitrokey-ba4d36c38c0017415129a5674c0f7133e6d76f9d.tar.gz
libnitrokey-ba4d36c38c0017415129a5674c0f7133e6d76f9d.tar.bz2
Return error on invalid slot
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'include')
-rw-r--r--include/InvalidSlotException.h31
-rw-r--r--include/LibraryException.h17
-rw-r--r--include/TooLongStringException.h10
3 files changed, 54 insertions, 4 deletions
diff --git a/include/InvalidSlotException.h b/include/InvalidSlotException.h
new file mode 100644
index 0000000..e97d993
--- /dev/null
+++ b/include/InvalidSlotException.h
@@ -0,0 +1,31 @@
+//
+// Created by sz on 09.08.16.
+//
+
+#ifndef LIBNITROKEY_INVALIDSLOTEXCEPTION_H
+#define LIBNITROKEY_INVALIDSLOTEXCEPTION_H
+
+
+#include <cstdint>
+#include <string>
+#include "LibraryException.h"
+
+
+class InvalidSlotException : public LibraryException {
+public:
+ virtual uint8_t exception_id() override {
+ return 201;
+ }
+
+public:
+ uint8_t slot_selected;
+
+ InvalidSlotException(uint8_t slot_selected) : slot_selected(slot_selected) {}
+
+ virtual const char *what() const throw() override {
+ return "Wrong slot selected";
+ }
+
+};
+
+#endif //LIBNITROKEY_INVALIDSLOTEXCEPTION_H
diff --git a/include/LibraryException.h b/include/LibraryException.h
new file mode 100644
index 0000000..ef81624
--- /dev/null
+++ b/include/LibraryException.h
@@ -0,0 +1,17 @@
+//
+// Created by sz on 09.08.16.
+//
+
+#ifndef LIBNITROKEY_LIBRARYEXCEPTION_H
+#define LIBNITROKEY_LIBRARYEXCEPTION_H
+
+#include <exception>
+#include <cstdint>
+
+class LibraryException: std::exception {
+public:
+ virtual uint8_t exception_id()= 0;
+};
+
+
+#endif //LIBNITROKEY_LIBRARYEXCEPTION_H
diff --git a/include/TooLongStringException.h b/include/TooLongStringException.h
index 3a9244b..58f5801 100644
--- a/include/TooLongStringException.h
+++ b/include/TooLongStringException.h
@@ -8,11 +8,13 @@
#include <cstdint>
#include <string>
-#include <exception>
+#include "LibraryException.h"
-class TooLongStringException : public std::exception {
+class TooLongStringException : public LibraryException {
public:
- static const std::uint8_t exception_id = 200;
+ virtual uint8_t exception_id() override {
+ return 200;
+ }
std::size_t size_source;
std::size_t size_destination;
@@ -21,7 +23,7 @@ public:
TooLongStringException(size_t size_source, size_t size_destination, const std::string &message = "") : size_source(
size_source), size_destination(size_destination), message(message) {}
- virtual const char *what() const throw() {
+ virtual const char *what() const throw() override {
//TODO add sizes and message data to final message
return "Too long string has been supplied as an argument";
}