lyx_mirror/src/tracer.h

54 lines
1010 B
C
Raw Normal View History

// -*- C++ -*-
/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
#ifndef TRACER_H
#define TRACER_H
#ifdef __GNUG__
#pragma interface
#endif
#include "debug.h"
#include "LString.h"
///
class Trace {
public:
///
explicit
Trace(string const & s) : str(s) {
lyxerr << string(depth, ' ') << "TRACE IN: "
<< str << std::endl;
depth += 2;
}
///
~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