37 #ifdef AGGREGPACKING_SERIALIZATION
47 namespace aggregpacking {
52 #ifdef AGGREGPACKING_DEBUG
53 #define LOG_DEBUG1(msg1) std::cout<<__FILE__<<": "<<__LINE__<<": "<<msg1<<"\n";
57 #define LOG_DEBUG2(msg1,msg2) std::cout<<__FILE__<<": "<<__LINE__<<": "<<msg1<<" "<<msg2<<"\n";
60 #define LOG_DEBUG3(msg1,msg2,msg3) std::cout<<__FILE__<<": "<<__LINE__<<": "<<msg1<<" "<<msg2<<" "<<msg3<<"\n";
63 #define LOG_DEBUG4(msg1,msg2,msg3,msg4) std::cout<<__FILE__<<": "<<__LINE__<<": "<<msg1<<" "<<msg2<<" "<<msg3<<" "<<msg4<<"\n";
66 #define LOG_DEBUG5(msg1,msg2,msg3,msg4,msg5) std::cout<<__FILE__<<": "<<__LINE__<<": "<<msg1<<" "<<msg2<<" "<<msg3<<" "<<msg4<<" "<<msg5<<"\n";
69 #define LOG_DEBUG(msg) LOG_DEBUG1(msg)
72 #define LOG_DEBUG1(msg1)
74 #define LOG_DEBUG2(msg1,msg2)
75 #define LOG_DEBUG3(msg1,msg2,msg3)
76 #define LOG_DEBUG4(msg1,msg2,msg3,msg4)
77 #define LOG_DEBUG5(msg1,msg2,msg3,msg4,msg5)
78 #define LOG_DEBUG(msg)
84 #define __S2(x) __S1(x)
85 #define __AGGREGPACKING_CERR std::cerr<<__FILE__<<": "<<__LINE__<<": "
86 #define __AGGREGPACKING_THROW throw std::runtime_error(std::string(__FILE__)+": "+__S2(__LINE__))
90 #define LOG_ERROR1(msg1) __AGGREGPACKING_CERR<<msg1<<"\n"; __AGGREGPACKING_THROW;
93 #define LOG_ERROR2(msg1,msg2) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<"\n"; __AGGREGPACKING_THROW;
96 #define LOG_ERROR3(msg1,msg2,msg3) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<" "<<msg3<<"\n"; __AGGREGPACKING_THROW;
99 #define LOG_ERROR4(msg1,msg2,msg3,msg4) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<" "<<msg3<<" "<<msg4<<"\n"; __AGGREGPACKING_THROW;
102 #define LOG_ERROR5(msg1,msg2,msg3,msg4,msg5) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<" "<<msg3<<" "<<msg4<<" "<<msg5<<"\n"; __AGGREGPACKING_THROW;
105 #define LOG_ERROR(msg) LOG_ERROR1(msg)
108 #define LOG_WARN1(msg1) __AGGREGPACKING_CERR<<msg1<<"\n";
111 #define LOG_WARN2(msg1,msg2) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<"\n";
114 #define LOG_WARN3(msg1,msg2,msg3) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<" "<<msg3<<"\n";
117 #define LOG_WARN4(msg1,msg2,msg3,msg4) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<" "<<msg3<<" "<<msg4<<"\n";
120 #define LOG_WARN5(msg1,msg2,msg3,msg4,msg5) __AGGREGPACKING_CERR<<msg1<<" "<<msg2<<" "<<msg3<<" "<<msg4<<" "<<msg5<<"\n";
123 #define LOG_WARN(msg) LOG_WARN1(msg)
129 #ifdef AGGREGPACKING_SERIALIZATION
133 bool initFile(ofstream& f,
const string& fName,
const string& memoizeDb);
138 bool initFile(ifstream& f,
const string& fName,
const string& memoizeDb);
141 template <
typename T>
142 void saveObject(
const T& t,
const string& fName,
const string& memoizeDb) {
144 if (!
initFile(f,fName,memoizeDb))
return;
150 template <
typename T>
151 bool loadObject(T& t,
const string& fName,
const string& memoizeDb) {
153 if (!
initFile(f,fName,memoizeDb))
return false;
156 if (s != t.getClassName()) {
LOG_ERROR2(t.getClassName(),
"wrong indentification class name"); }
#define LOG_ERROR2(msg1, msg2)
Error log taking 2 argument.
Definition: utils.hpp:93
void saveObject(const T &t, const string &fName, const string &memoizeDb)
Auxiliary template function for saving objects to files.
Definition: utils.hpp:142
bool loadObject(T &t, const string &fName, const string &memoizeDb)
Auxiliary template function for lading objects from files.
Definition: utils.hpp:151
bool initFile(ofstream &f, const string &fName, const string &fileName)
Init file for ostream.
Definition: utils.cpp:39