persistence/persistent_exceptions.hpp
#ifndef STLPLUS_PERSISTENT_EXCEPTIONS
#define STLPLUS_PERSISTENT_EXCEPTIONS
////////////////////////////////////////////////////////////////////////////////
// Author: Andy Rushton
// Copyright: (c) Southampton University 1999-2004
// (c) Andy Rushton 2004 onwards
// License: BSD License, see ../docs/license.html
// Exceptions thrown by persistence routines
////////////////////////////////////////////////////////////////////////////////
#include "persistence_fixes.hpp"
#include <stdexcept>
#include <string>
////////////////////////////////////////////////////////////////////////////////
namespace stlplus
{
////////////////////////////////////////////////////////////////////////////////
// exception thrown if you try to dump or restore an illegal polymorphic type
class persistent_illegal_type : public std::logic_error
{
public:
persistent_illegal_type(const std::string& type) ;
persistent_illegal_type(unsigned key) ;
~persistent_illegal_type(void) throw();
};
// exception thrown if a dump fails for any reason - but typically because the output stream couldn't take the data
class persistent_dump_failed : public std::runtime_error
{
public:
persistent_dump_failed(const std::string& message) ;
~persistent_dump_failed(void) throw();
};
// exception thrown if you try to restore from an out of date or unrecognised byte stream
class persistent_restore_failed : public std::runtime_error
{
public:
persistent_restore_failed(const std::string& message) ;
~persistent_restore_failed(void) throw();
};
////////////////////////////////////////////////////////////////////////////////
} // end namespace stlplus
#endif