diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2016-08-09 17:42:12 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2016-08-09 18:35:38 +0200 |
commit | 709b3e4c3a7aac2565687579bff62601b141362f (patch) | |
tree | 2fef4f162e975ce8ed314c312009b0dd69e7a1b4 /include/LibraryException.h | |
parent | de47911eea52421c3a8307e7d9a390a4c9f710b2 (diff) | |
download | libnitrokey-1.0.tar.gz libnitrokey-1.0.tar.bz2 |
Merged library exceptions declarationv1.0
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'include/LibraryException.h')
-rw-r--r-- | include/LibraryException.h | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/include/LibraryException.h b/include/LibraryException.h index ef81624..5036320 100644 --- a/include/LibraryException.h +++ b/include/LibraryException.h @@ -1,12 +1,9 @@ -// -// Created by sz on 09.08.16. -// - #ifndef LIBNITROKEY_LIBRARYEXCEPTION_H #define LIBNITROKEY_LIBRARYEXCEPTION_H #include <exception> #include <cstdint> +#include <string> class LibraryException: std::exception { public: @@ -14,4 +11,44 @@ public: }; + +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"; + } + +}; + + + +class TooLongStringException : public LibraryException { +public: + virtual uint8_t exception_id() override { + return 200; + } + + std::size_t size_source; + std::size_t size_destination; + std::string message; + + 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() override { + //TODO add sizes and message data to final message + return "Too long string has been supplied as an argument"; + } + +}; + #endif //LIBNITROKEY_LIBRARYEXCEPTION_H |