X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fstlplus%2Fpersistence%2Fpersistent.hpp;fp=src%2Fstlplus%2Fpersistence%2Fpersistent.hpp;h=7ddfe4ea5a0a32adcb27b4ebf089a3bcf854fda9;hb=6b0a0d0efafe34d48ab344fca3b479553bd4e62c;hp=0000000000000000000000000000000000000000;hpb=85783316365181491a3e3c0c63659972477cebba;p=chaz%2Fyoink diff --git a/src/stlplus/persistence/persistent.hpp b/src/stlplus/persistence/persistent.hpp new file mode 100644 index 0000000..7ddfe4e --- /dev/null +++ b/src/stlplus/persistence/persistent.hpp @@ -0,0 +1,37 @@ +#ifndef STLPLUS_PERSISTENT +#define STLPLUS_PERSISTENT +//////////////////////////////////////////////////////////////////////////////// + +// Author: Andy Rushton +// Copyright: (c) Southampton University 1999-2004 +// (c) Andy Rushton 2004-2009 +// 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 + { + public: + virtual void dump(dump_context&) const throw(persistent_dump_failed) = 0; + virtual void restore(restore_context&) throw(persistent_restore_failed) = 0; + virtual persistent* clone(void) const = 0; + virtual ~persistent(void) {} + }; + +} // end namespace stlplus + + //////////////////////////////////////////////////////////////////////////////// +#endif