diff options
author | levine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1996-10-21 21:41:34 +0000 |
---|---|---|
committer | levine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1996-10-21 21:41:34 +0000 |
commit | a5fdebc5f6375078ec1763850a4ca23ec7fe6458 (patch) | |
tree | bcf0a25c3d45a209a6e3ac37b233a4812f29c732 /ace/Trace.h | |
download | ATCD-a5fdebc5f6375078ec1763850a4ca23ec7fe6458.tar.gz |
Initial revision
Diffstat (limited to 'ace/Trace.h')
-rw-r--r-- | ace/Trace.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ace/Trace.h b/ace/Trace.h new file mode 100644 index 00000000000..8943b7a8055 --- /dev/null +++ b/ace/Trace.h @@ -0,0 +1,77 @@ +/* -*- C++ -*- */ +// $Id$ + + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Trace.h +// +// = AUTHOR +// Doug Schmidt +// +// ============================================================================ + +#if !defined (ACE_TRACE_H) +#define ACE_TRACE_H + +class ACE_Export ACE_Trace + // = TITLE + // A C++ trace facility that keeps track of which methods are + // entered and exited. + // + // = DESCRIPTION + // This class uses C++ constructors and destructors to automate + // the ACE_Trace nesting. In addition, thread-specific storage + // is used to enable multiple threads to work correctly. +{ +public: + // = Initialization and termination methods. + + ACE_Trace (const char *n, int line = 0, const char *file = ""); + // Perform the first part of the trace, which prints out the string + // N, the LINE, and the ACE_FILE as the function is entered. + + ~ACE_Trace (void); + // Perform the second part of the trace, which prints out the NAME + // as the function is exited. + + // = Control the tracing level. + static void start_tracing (void); + // Enable the tracing facility. + + static void stop_tracing (void); + // Disable the tracing facility. + + static void set_nesting_indent (int indent); + // Change the nesting indentation level. + + void dump (void) const; + // Dump the state of an object. + +private: + // Keeps track of how deeply the call stack is nested (this is + // maintained in thread-specific storage to ensure correctness in + // multiple threads of control. + + const char *name_; + // Name of the method we are in. + + static int nesting_indent_; + // Keeps track of how far to indent per trace call. + + static int enable_tracing_; + // Is tracing enabled? + + // Default values. + enum + { + DEFAULT_INDENT = 3, + DEFAULT_TRACING = 1 + }; +}; + +#endif /* ACE_TRACE_H */ |