00001
00002
00003 #ifndef CHECKPOINTMANAGER_H
00004 #define CHECKPOINTMANAGER_H
00005
00006 #include <iostream>
00007 #include <ctime>
00008
00009 #include "SaveManager.h"
00010
00011 #include "Serializable.h"
00012
00013
00015 class CheckpointManager: public Serializable
00016 {
00017 public:
00019 CheckpointManager(SaveManager &sm) {}
00021 virtual ~CheckpointManager() {};
00023 virtual void checkpoint(std::ostream &out) = 0;
00025 virtual void setInterval(uint64 iterations) = 0;
00027 virtual void setTimer(time_t seconds) = 0;
00029 virtual void setCheckpointNow() = 0;
00030
00031
00032 protected:
00033 CheckpointManager() {}
00034 private:
00035 friend class boost::serialization::access;
00036 template<class Archive>
00037 void serialize(Archive & ar, const unsigned int version) {
00038 this->pre_serialize(ar, version);
00039 try {
00040 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable);
00041 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00042 }
00043 this->post_serialize(ar, version);
00044 }
00045
00046 };
00047 BIE_CLASS_EXPORT_KEY(CheckpointManager)
00048 #endif