diff options
Diffstat (limited to 'src/exception.hpp')
| -rw-r--r-- | src/exception.hpp | 745 |
1 files changed, 0 insertions, 745 deletions
diff --git a/src/exception.hpp b/src/exception.hpp deleted file mode 100644 index d7f95b95..00000000 --- a/src/exception.hpp +++ /dev/null @@ -1,745 +0,0 @@ -// -// VMime library (http://vmime.sourceforge.net) -// Copyright (C) 2002-2004 Vincent Richard <[email protected]> -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// - -#ifndef VMIME_EXCEPTION_HPP_INCLUDED -#define VMIME_EXCEPTION_HPP_INCLUDED - - -#include "config.hpp" -#include "base.hpp" -#include "utility/path.hpp" - - -namespace vmime -{ - - -/** Base class for VMime exceptions. - */ - -class exception -{ -private: - - string m_what; - exception* m_other; - - exception(); - -public: - - exception(const string& what, const exception& other = NO_EXCEPTION); - virtual ~exception(); - - /** Return a description of the error. - * - * @return error message - */ - const string what() const throw(); - - /** Return the next exception in the chain (encapsuled exception). - * - * @return next exception in the chain - */ - const exception* other() const; - - /** Return a name identifying the exception. - * - * @return exception name - */ - virtual const string name() const; - -protected: - - static const exception NO_EXCEPTION; - - virtual exception* clone() const; -}; - - - -/** List of all VMime exceptions. */ - -namespace exceptions -{ - - -class bad_field_type : public vmime::exception -{ -public: - - bad_field_type(const exception& other = NO_EXCEPTION); - ~bad_field_type() throw(); - - exception* clone() const; - const string name() const; -}; - - -class charset_conv_error : public vmime::exception -{ -public: - - charset_conv_error(const exception& other = NO_EXCEPTION); - ~charset_conv_error() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_encoder_available : public vmime::exception -{ -public: - - no_encoder_available(const exception& other = NO_EXCEPTION); - ~no_encoder_available() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_such_parameter : public vmime::exception -{ -public: - - no_such_parameter(const string& name, const exception& other = NO_EXCEPTION); - ~no_such_parameter() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_such_field : public vmime::exception -{ -public: - - no_such_field(const exception& other = NO_EXCEPTION); - ~no_such_field() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_such_part : public vmime::exception -{ -public: - - no_such_part(const exception& other = NO_EXCEPTION); - ~no_such_part() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_such_mailbox : public vmime::exception -{ -public: - - no_such_mailbox(const exception& other = NO_EXCEPTION); - ~no_such_mailbox() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_such_address : public vmime::exception -{ -public: - - no_such_address(const exception& other = NO_EXCEPTION); - ~no_such_address() throw(); - - exception* clone() const; - const string name() const; -}; - - -class open_file_error : public vmime::exception -{ -public: - - open_file_error(const exception& other = NO_EXCEPTION); - ~open_file_error() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_factory_available : public vmime::exception -{ -public: - - no_factory_available(const exception& other = NO_EXCEPTION); - ~no_factory_available() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_platform_dependant_handler : public vmime::exception -{ -public: - - no_platform_dependant_handler(const exception& other = NO_EXCEPTION); - ~no_platform_dependant_handler() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** No expeditor specified. - */ - -class no_expeditor : public vmime::exception -{ -public: - - no_expeditor(const exception& other = NO_EXCEPTION); - ~no_expeditor() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** No recipient specified. - */ - -class no_recipient : public vmime::exception -{ -public: - - no_recipient(const exception& other = NO_EXCEPTION); - ~no_recipient() throw(); - - exception* clone() const; - const string name() const; -}; - - -class no_object_found : public vmime::exception -{ -public: - - no_object_found(const exception& other = NO_EXCEPTION); - ~no_object_found() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** There is no property with that name in the set. - */ - -class no_such_property : public vmime::exception -{ -public: - - no_such_property(const string& name, const exception& other = NO_EXCEPTION); - ~no_such_property() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Bad type specified when reading property. - */ - -class invalid_property_type : public vmime::exception -{ -public: - - invalid_property_type(const exception& other = NO_EXCEPTION); - ~invalid_property_type() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Bad argument was passed to the function. - */ - -class invalid_argument : public vmime::exception -{ -public: - - invalid_argument(const exception& other = NO_EXCEPTION); - ~invalid_argument() throw(); - - exception* clone() const; - const string name() const; -}; - - - -#if VMIME_HAVE_MESSAGING_FEATURES - - -/** Base class for exceptions thrown by the messaging module. - */ - -class messaging_exception : public vmime::exception -{ -public: - - messaging_exception(const string& what, const exception& other = NO_EXCEPTION); - ~messaging_exception() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Error while connecting to the server: this may be a DNS resolution error - * or a connection error (for example, time-out while connecting). - */ - -class connection_error : public messaging_exception -{ -public: - - connection_error(const exception& other = NO_EXCEPTION); - ~connection_error() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Server did not initiated the connection correctly. - */ - -class connection_greeting_error : public messaging_exception -{ -public: - - connection_greeting_error(const string& response, const exception& other = NO_EXCEPTION); - ~connection_greeting_error() throw(); - - const string& response() const; - - exception* clone() const; - const string name() const; - -private: - - string m_response; -}; - - -/** Error while giving credentials to the server (wrong username - * or password, or wrong authentication method). - */ - -class authentication_error : public messaging_exception -{ -public: - - authentication_error(const string& response, const exception& other = NO_EXCEPTION); - ~authentication_error() throw(); - - const string& response() const; - - exception* clone() const; - const string name() const; - -private: - - string m_response; -}; - - -/** Option not supported. - */ - -class unsupported_option : public messaging_exception -{ -public: - - unsupported_option(const exception& other = NO_EXCEPTION); - ~unsupported_option() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** No service available for this protocol. - */ - -class no_service_available : public messaging_exception -{ -public: - - no_service_available(const string& proto = "", const exception& other = NO_EXCEPTION); - ~no_service_available() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** The current state of the object does not permit to execute the - * operation (for example, you try to close a folder which is not open). - */ - -class illegal_state : public messaging_exception -{ -public: - - illegal_state(const string& state, const exception& other = NO_EXCEPTION); - ~illegal_state() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Folder not found (does not exist). - */ - -class folder_not_found : public messaging_exception -{ -public: - - folder_not_found(const exception& other = NO_EXCEPTION); - ~folder_not_found() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Message not found (does not exist). - */ - -class message_not_found : public messaging_exception -{ -public: - - message_not_found(const exception& other = NO_EXCEPTION); - ~message_not_found() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Operation not supported by the underlying protocol. - */ - -class operation_not_supported : public messaging_exception -{ -public: - - operation_not_supported(const exception& other = NO_EXCEPTION); - ~operation_not_supported() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** The operation timed out (time-out delay is elapsed). - */ - -class operation_timed_out : public messaging_exception -{ -public: - - operation_timed_out(const exception& other = NO_EXCEPTION); - ~operation_timed_out() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** The operation has been cancelled. - */ - -class operation_cancelled : public messaging_exception -{ -public: - - operation_cancelled(const exception& other = NO_EXCEPTION); - ~operation_cancelled() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Must call fetchMessage() or fetchHeader() before accessing - * the requested object. - */ - -class unfetched_object : public messaging_exception -{ -public: - - unfetched_object(const exception& other = NO_EXCEPTION); - ~unfetched_object() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** The service is not currently connected. - */ - -class not_connected : public messaging_exception -{ -public: - - not_connected(const exception& other = NO_EXCEPTION); - ~not_connected() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** The service is already connected (must disconnect before). - */ - -class already_connected : public messaging_exception -{ -public: - - already_connected(const exception& other = NO_EXCEPTION); - ~already_connected() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Illegal operation: cannot run this operation on the object. - */ - -class illegal_operation : public messaging_exception -{ -public: - - illegal_operation(const string& msg = "", const exception& other = NO_EXCEPTION); - ~illegal_operation() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Command error: operation failed (this is specific to the underlying protocol). - */ - -class command_error : public messaging_exception -{ -public: - - command_error(const string& command, const string& response, const string& desc = "", const exception& other = NO_EXCEPTION); - ~command_error() throw(); - - /** Return the name of the command which have thrown the exception. - * This is protocol-dependant. - * - * @return command name (protocol-dependant) - */ - const string& command() const; - - /** Return the invalid response line. - * The meaning is protocol-dependant. - * - * @return response line (protocol-dependant) - */ - const string& response() const; - - exception* clone() const; - const string name() const; - -private: - - string m_command; - string m_response; -}; - - -/** The server returned an invalid response. - */ - -class invalid_response : public messaging_exception -{ -public: - - invalid_response(const string& command, const string& response, const exception& other = NO_EXCEPTION); - ~invalid_response() throw(); - - /** Return the name of the command which have thrown the exception. - * This is protocol-dependant. - * - * @return command name (protocol-dependant) - */ - const string& command() const; - - /** Return the invalid response line. - * The meaning is protocol-dependant. - * - * @return response line (protocol-dependant) - */ - const string& response() const; - - exception* clone() const; - const string name() const; - -private: - - string m_command; - string m_response; -}; - - -/** Partial fetch is not supported by the underlying protocol. - */ - -class partial_fetch_not_supported : public messaging_exception -{ -public: - - partial_fetch_not_supported(const exception& other = NO_EXCEPTION); - ~partial_fetch_not_supported() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** The URL is malformed. - */ - -class malformed_url : public messaging_exception -{ -public: - - malformed_url(const string& error, const exception& other = NO_EXCEPTION); - ~malformed_url() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** Folder name is invalid. - */ - -class invalid_folder_name : public messaging_exception -{ -public: - - invalid_folder_name(const string& error = "", const exception& other = NO_EXCEPTION); - ~invalid_folder_name() throw(); - - exception* clone() const; - const string name() const; -}; - - -#endif // VMIME_HAVE_MESSAGING_FEATURES - - -#if VMIME_HAVE_FILESYSTEM_FEATURES - - -/** Base class for exceptions thrown by the filesystem features. - */ - -class filesystem_exception : public vmime::exception -{ -public: - - filesystem_exception(const string& what, const utility::path& path, const exception& other = NO_EXCEPTION); - ~filesystem_exception() throw(); - - /** Return the full path of the file have thrown the exception. - * - * @return full path of the file/directory - */ - const utility::path& path() const; - - exception* clone() const; - const string name() const; - -private: - - const utility::path m_path; -}; - - -/** File is not a directory. - */ - -class not_a_directory : public filesystem_exception -{ -public: - - not_a_directory(const utility::path& path, const exception& other = NO_EXCEPTION); - ~not_a_directory() throw(); - - exception* clone() const; - const string name() const; -}; - - -/** File not found. - */ - -class file_not_found : public filesystem_exception -{ -public: - - file_not_found(const utility::path& path, const exception& other = NO_EXCEPTION); - ~file_not_found() throw(); - - exception* clone() const; - const string name() const; -}; - - -#endif // VMIME_HAVE_FILESYSTEM_FEATURES - - -} // exceptions - - -} // vmime - - -#endif // VMIME_EXCEPTION_HPP_INCLUDED |
