/Src/Dependencies/Boost/boost/archive/archive_exception.hpp
http://hadesmem.googlecode.com/ · C++ Header · 97 lines · 55 code · 13 blank · 29 comment · 1 complexity · 8d28cff3b21e82fadaa23994fc80b99b MD5 · raw file
- #ifndef BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP
- #define BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP
- // MS compatible compilers support #pragma once
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- # pragma once
- #endif
- /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
- // archive/archive_exception.hpp:
- // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
- // Use, modification and distribution is subject to the Boost Software
- // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- // See http://www.boost.org for updates, documentation, and revision history.
- #include <exception>
- #include <boost/assert.hpp>
- #include <string>
- #include <boost/config.hpp>
- #include <boost/preprocessor/empty.hpp>
- #include <boost/archive/detail/decl.hpp>
- // note: the only reason this is in here is that windows header
- // includes #define exception_code _exception_code (arrrgghhhh!).
- // the most expedient way to address this is be sure that this
- // header is always included whenever this header file is included.
- #if defined(BOOST_WINDOWS)
- #include <excpt.h>
- #endif
- #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
- namespace boost {
- namespace archive {
- //////////////////////////////////////////////////////////////////////
- // exceptions thrown by archives
- //
- class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) archive_exception :
- public virtual std::exception
- {
- public:
- typedef enum {
- no_exception, // initialized without code
- other_exception, // any excepton not listed below
- unregistered_class, // attempt to serialize a pointer of an
- // an unregistered class
- invalid_signature, // first line of archive does not contain
- // expected string
- unsupported_version,// archive created with library version
- // subsequent to this one
- pointer_conflict, // an attempt has been made to directly
- // serialize an object which has
- // already been serialzed through a pointer.
- // Were this permited, the archive load would result
- // in the creation of an extra copy of the obect.
- incompatible_native_format, // attempt to read native binary format
- // on incompatible platform
- array_size_too_short,// array being loaded doesn't fit in array allocated
- input_stream_error, // error on input stream
- invalid_class_name, // class name greater than the maximum permitted.
- // most likely a corrupted archive or an attempt
- // to insert virus via buffer overrun method.
- unregistered_cast, // base - derived relationship not registered with
- // void_cast_register
- unsupported_class_version, // type saved with a version # greater than the
- // one used by the program. This indicates that the proggram
- // needs to be rebuilt.
- multiple_code_instantiation, // code for implementing serialization for some
- // type has been instantiated in more than one module.
- output_stream_error // error on input stream
- } exception_code;
- protected:
- std::string m_msg;
- public:
- exception_code code;
- archive_exception(
- exception_code c,
- const char * e1 = NULL,
- const char * e2 = NULL
- );
- ~archive_exception() throw ();
- virtual const char *what( ) const throw();
- protected:
- archive_exception();
- };
- }// namespace archive
- }// namespace boost
- #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
- #endif //BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP