* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
#include "debug.h"
#include "LString.h"
-class DebugTracer {
+///
+class Trace {
public:
+ ///
explicit
- DebugTracer(string const & s) : str(s) {
- lyxerr << string(depth, ' ') << "Trace begin : "
+ Trace(string const & s) : str(s) {
+ lyxerr << string(depth, ' ') << "TRACE IN: "
<< str << std::endl;
- ++depth;
+ depth += 2;
}
- ~DebugTracer() {
- --depth;
- lyxerr << string(depth, ' ') << "Trace end : "
+ ///
+ ~Trace() {
+ depth -= 2;
+ lyxerr << string(depth, ' ') << "TRACE OUT: "
<< str << std::endl;
}
private:
+ ///
string str;
+ ///
static int depth;
};
+// To avoid wrong usage:
+// Trace("BufferView::update"); // wrong
+// Trace t("BufferView::update"); // right
+// we add this macro:
+///
+#define Trace(x) unnamed_Trace;
+// Tip gotten from Bobby Schmidt's column in C/C++ Users Journal
#endif