⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trace.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
// Trace.h,v 1.4 2004/11/19 13:34:46 elliott_c Exp#ifndef TRACE_H#define TRACE_H#include "ace/Log_Msg.h"// Listing 1 code/ch03class Trace{public:  Trace (const ACE_TCHAR *prefix,	 const ACE_TCHAR *name,	 int line,	 const ACE_TCHAR *file)    {      this->prefix_ = prefix;      this->name_   = name;      this->line_   = line;      this->file_   = file;      ACE_Log_Msg *lm = ACE_LOG_MSG;      if (lm->tracing_enabled ()          && lm->trace_active () == 0)        {          lm->trace_active (1);          ACE_DEBUG            ((LM_TRACE,              ACE_TEXT ("%s%*s(%t) calling %s in file `%s'")              ACE_TEXT (" on line %d\n"),              this->prefix_,              Trace::nesting_indent_ * lm->inc (),              ACE_TEXT (""),              this->name_,              this->file_,              this->line_));          lm->trace_active (0);        }    }  void setLine (int line)    {      this->line_ = line;    }  ~Trace (void)    {      ACE_Log_Msg *lm = ACE_LOG_MSG;      if (lm->tracing_enabled ()          && lm->trace_active () == 0)        {          lm->trace_active (1);          ACE_DEBUG            ((LM_TRACE,              ACE_TEXT ("%s%*s(%t) leaving %s in file `%s'")              ACE_TEXT (" on line %d\n"),              this->prefix_,              Trace::nesting_indent_ * lm->dec (),              ACE_TEXT (""),              this->name_,              this->file_,              this->line_));          lm->trace_active (0);        }    }private:  enum { nesting_indent_ = 3 };  const ACE_TCHAR *prefix_;  const ACE_TCHAR *name_;  const ACE_TCHAR *file_;  int line_;};// Listing 1// Listing 2 code/ch03#define TRACE_PREFIX       ACE_TEXT ("TRACE ")#if (ACE_NTRACE == 1)#    define TRACE(X)#    define TRACE_RETURN(V)     return V;#    define TRACE_RETURN_VOID()#else#    define TRACE(X)                           \            Trace ____ (TRACE_PREFIX,          \                        ACE_TEXT (X),          \                        __LINE__,              \                        ACE_TEXT (__FILE__))#    define TRACE_RETURN(V)                    \            do { ____.setLine(__LINE__); return V; } while (0)#    define TRACE_RETURN_VOID()                \            do { ____.setLine(__LINE__); } while (0)#endif// Listing 2//////////////////////////////////////////////////#if defined (__GNUC__) && (__GNUC__ >= 3 || __GNUC_MINOR__ > 95) && \    (!defined (VXWORKS) || !(__GNUC__ == 2 && __GNUC_MINOR__ == 96))// This stuff only works with g++ 2.96 and later...// But not with VxWorks g++ 2.96.// Listing 3 code/ch03#define DEBUG_PREFIX       ACE_TEXT ("DEBUG%I")#define INFO_PREFIX        ACE_TEXT ("INFO%I")#define NOTICE_PREFIX      ACE_TEXT ("NOTICE%I")#define WARNING_PREFIX     ACE_TEXT ("WARNING%I")#define ERROR_PREFIX       ACE_TEXT ("ERROR%I")#define CRITICAL_PREFIX    ACE_TEXT ("CRITICAL%I")#define ALERT_PREFIX       ACE_TEXT ("ALERT%I")#define EMERGENCY_PREFIX   ACE_TEXT ("EMERGENCY%I")#define MY_DEBUG(FMT, ...)     \        ACE_DEBUG(( LM_DEBUG,  \                    DEBUG_PREFIX FMT \                    __VA_ARGS__))#define MY_INFO(FMT, ...)     \        ACE_DEBUG(( LM_INFO,  \                    INFO_PREFIX FMT \                    __VA_ARGS__))#define MY_NOTICE(FMT, ...)     \        ACE_DEBUG(( LM_NOTICE,  \                    NOTICE_PREFIX FMT \                    __VA_ARGS__))#define MY_WARNING(FMT, ...)     \        ACE_DEBUG(( LM_WARNING,  \                    WARNING_PREFIX FMT \                    __VA_ARGS__))#define MY_ERROR(FMT, ...)     \        ACE_DEBUG(( LM_ERROR,  \                    ERROR_PREFIX FMT \                    __VA_ARGS__))#define MY_CRITICAL(FMT, ...)     \        ACE_DEBUG(( LM_CRITICAL,  \                    CRITICAL_PREFIX FMT \                    __VA_ARGS__))#define MY_ALERT(FMT, ...)     \        ACE_DEBUG(( LM_ALERT,  \                    ALERT_PREFIX FMT \                    __VA_ARGS__))#define MY_EMERGENCY(FMT, ...)     \        ACE_DEBUG(( LM_EMERGENCY,  \                    EMERGENCY_PREFIX FMT \                    __VA_ARGS__))// Listing 3#endif /* __GNUC__ */#endif /* TRACE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -