persistence/persistent.hpp
#ifndef STLPLUS_PERSISTENT
#define STLPLUS_PERSISTENT
////////////////////////////////////////////////////////////////////////////////
// Author: Andy Rushton
// Copyright: (c) Southampton University 1999-2004
// (c) Andy Rushton 2004 onwards
// License: BSD License, see ../docs/license.html
// Interface class inherited by classes using the interface approach to polymorphism
////////////////////////////////////////////////////////////////////////////////
#include "persistence_fixes.hpp"
#include "persistent_exceptions.hpp"
////////////////////////////////////////////////////////////////////////////////
namespace stlplus
{
class dump_context;
class restore_context;
class persistent
{
// exceptions: persistent_dump_failed
public:
virtual void dump(dump_context&) const = 0;
// exceptions: persistent_restore_failed
virtual void restore(restore_context&) = 0;
virtual persistent* clone(void) const = 0;
virtual ~persistent(void) {}
};
} // end namespace stlplus
////////////////////////////////////////////////////////////////////////////////
#endif