From 709b3e4c3a7aac2565687579bff62601b141362f Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 9 Aug 2016 17:42:12 +0200 Subject: Merged library exceptions declaration Signed-off-by: Szczepan Zalega --- include/LibraryException.h | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) (limited to 'include/LibraryException.h') 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 #include +#include 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 -- cgit v1.2.1