00001
00002
00003 #ifndef RandomDump_h
00004 #define RandomDump_h
00005
00006 #include <sstream>
00007
00008 #include "Serializable.h"
00009
00010
00011 namespace BIE {
00012
00013
00019 class RandomDump: public Serializable
00020 {
00021 private:
00022
00023 string name;
00024 unsigned counter;
00025
00026 public:
00027
00028
00030 RandomDump(string prefix) : name(prefix), counter(0) {}
00031
00032
00034 void Dump()
00035 {
00036 ostringstream out;
00037 out << name << "." << counter++;
00038 BIEgen->dump_acg(out.str());
00039 }
00040
00041
00042 protected:
00043 RandomDump() {}
00044 private:
00045 friend class boost::serialization::access;
00046 template<class Archive>
00047 void serialize(Archive & ar, const unsigned int version) {
00048 this->pre_serialize(ar, version);
00049 try {
00050 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable);
00051 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00052 }
00053 try {
00054 ar & BOOST_SERIALIZATION_NVP(name);
00055 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00056 }
00057 try {
00058 ar & BOOST_SERIALIZATION_NVP(counter);
00059 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00060 }
00061 this->post_serialize(ar, version);
00062 }
00063
00064 };
00065 }
00066
00067 BIE_CLASS_TYPE_INFO(BIE::RandomDump)
00068 BIE_CLASS_EXPORT_KEY(BIE::RandomDump)
00069 #endif