00001 #ifdef _MSC_VER
00002 #pragma warning(disable:4786)
00003 #endif
00004
00005 #ifdef HAVE_CONFIG_H
00006 #include <config.h>
00007 #endif
00008
00009 #include <sstream>
00010
00011 #include <utils/eoState.h>
00012 #include <utils/eoUpdater.h>
00013
00014 using namespace std;
00015
00016 void eoTimedStateSaver::operator()(void)
00017 {
00018 time_t now = time(0);
00019
00020 if (now >= last_time + interval)
00021 {
00022 last_time = now;
00023 ostringstream os;
00024 os << prefix << (now - first_time) << '.' << extension;
00025 state.save(os.str());
00026 }
00027 }
00028
00029 void eoCountedStateSaver::doItNow(void)
00030 {
00031 ostringstream os;
00032 os << prefix << counter << '.' << extension;
00033 state.save(os.str());
00034 }
00035
00036 void eoCountedStateSaver::operator()(void)
00037 {
00038 if (++counter % interval == 0)
00039 doItNow();
00040 }
00041
00042 void eoCountedStateSaver::lastCall(void)
00043 {
00044 if (saveOnLastCall)
00045 doItNow();
00046 }
00047
00048