
modifié : include/ArrayTree/ArrayTreeBuilder.tpp modifié : include/ArrayTree/Border.hpp modifié : include/ArrayTree/GraphWalker.tpp modifié : include/ArrayTree/Leader.hpp modifié : include/ArrayTree/Leader.tpp modifié : include/ArrayTree/Weight.hpp modifié : include/ArrayTree/Weight.tpp modifié : include/ArrayTree/triskeleArrayTreeBase.hpp modifié : include/ArrayTree/triskeleArrayTreeBase.tpp modifié : include/IImage.hpp modifié : include/IImage.tpp modifié : include/Tree.hpp modifié : include/Tree.tpp modifié : include/TreeBuilder.hpp modifié : include/XMLTree/XMLTreeBuilder.hpp modifié : include/triskeleBase.hpp modifié : include/triskeleDealThreads.hpp modifié : include/triskeleDealThreads.tpp modifié : include/triskeleDebug.hpp modifié : include/triskeleGdalGetType.hpp nouveau fichier : src/IImage.cpp modifié : src/QuadTree/QuadTreeBuilder.cpp modifié : src/Tree.cpp modifié : src/testMain.cpp modifié : src/triskeleDebug.cpp
79 lines
1.9 KiB
C++
79 lines
1.9 KiB
C++
#ifndef _TRISKELE_DEBUG_HPP
|
|
#define _TRISKELE_DEBUG_HPP
|
|
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <string>
|
|
#include <sstream>
|
|
#include <boost/date_time/posix_time/posix_time.hpp>
|
|
|
|
#ifdef DISABLE_LOG
|
|
|
|
#ifndef DEF_LOG
|
|
#define DEF_LOG(name, expr)
|
|
#endif
|
|
#ifndef LOG
|
|
#define LOG(expr) {}
|
|
#endif
|
|
|
|
#ifndef DEBUG
|
|
#define DEBUG(expr) {}
|
|
#endif
|
|
|
|
#else
|
|
|
|
#ifndef DEF_LOG
|
|
#define DEF_LOG(name, expr) ::triskele::Log log (name); { if (triskele::debug) cerr << expr << endl << flush; }
|
|
#endif
|
|
|
|
#ifndef LOG
|
|
#define LOG(expr) { if (triskele::debug) cerr << log << "| " << expr << endl << flush; }
|
|
#endif
|
|
|
|
#ifndef DEBUG
|
|
#define DEBUG(expr) { if (triskele::debug) cerr << expr << endl << flush; }
|
|
#endif
|
|
|
|
#endif
|
|
|
|
namespace triskele {
|
|
|
|
extern bool debug;
|
|
|
|
using namespace std;
|
|
|
|
// =======================================
|
|
|
|
inline std::string getLocalTimeStr () {
|
|
using namespace boost::posix_time;
|
|
using namespace std;
|
|
ptime now = second_clock::second_clock::local_time ();
|
|
stringstream ss;
|
|
auto date = now.date ();
|
|
auto time = now.time_of_day ();
|
|
ss << setfill ('0') << "["
|
|
<< setw (2) << static_cast<int> (date.month ()) << "/" << setw (2) << date.day ()
|
|
<< "] " << setw (2)
|
|
<< time.hours () << ":" << setw (2) << time.minutes ();
|
|
return ss.str();
|
|
}
|
|
|
|
// ========================================
|
|
using namespace std;
|
|
|
|
class Log {
|
|
static unsigned int indent;
|
|
string functName;
|
|
public:
|
|
Log (const string &functName) : functName (functName) { ++indent; if (triskele::debug) cerr << *this << "> "; }
|
|
~Log () { if (triskele::debug) cerr << *this << "<" << endl << flush; --indent; }
|
|
friend inline ostream &operator << (ostream &out, const Log &log) {
|
|
return out << getLocalTimeStr () << setw (3) << setw ((log.indent % 20)*2) << "" << log.functName;
|
|
}
|
|
};
|
|
|
|
// ========================================
|
|
}//namespace triskele
|
|
|
|
#endif //_TRISKELE_DEBUG_HPP
|