## NAME

ACE_Trace - A C++ trace facility that keeps track of which methods are entered and exited.

## SYNOPSIS

    #include <ace/Trace.h>

    class ACE_Trace
    {
      public:
        ACE_Trace (
            const ASYS_TCHAR *n,
            int line = 0,
            const ASYS_TCHAR *file = ASYS_TEXT ("")
            );
        ~ACE_Trace (void);
        static int is_tracing(void);
        static void start_tracing (void);
        static void stop_tracing (void);
        static void set_nesting_indent (int indent);
        void dump (void) const;
      private:
        const ASYS_TCHAR *name_;
        static int nesting_indent_;
        static int enable_tracing_;
        enum{ DEFAULT_INDENT = 3, DEFAULT_TRACING = 1 };
    };

## 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.

## Initialization and termination methods.

    ACE_Trace (
        const ASYS_TCHAR *n,
        int line = 0,
        const ASYS_TCHAR *file = ASYS_TEXT ("")
        );

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 int is_tracing(void);

Determine if tracing is enabled (return == 1) or not (== 0)

    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.

## AUTHOR

Doug Schmidt

## LIBRARY

ace